No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

18 Días
10 Hrs
42 Min
48 Seg

Deployments y replica sets

15/33
Recursos

Aportes 20

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para los que llegan hasta aquí usen play with K8s las instrucciones para hacer las replicas es crear los deployments de la siguiente manera:

kubectl create deployment <nombre> --image=<imagen> -- <comando>

Para este caso:

kubectl create deployment pingpong --image=alpine -- ping 1.1.1.1

Luego revisan que este haya sido creado de la manera correcta:

kubectl get pods
$ NAME                       		READY   STATUS    RESTARTS   AGE
pingpong-<XXXXXXXXXXX>   1/1         Running   0          	82s

una vez creado el deployment pueden realizar las replicas OJO: utilizar el nombre del servicio sin el código que le subsigue:

kubectl scale deployments/pingpong --replicas <numero>

Espero les sirva

Existe una relacion entre los deployments y los replicasets.

El DEPLOYMENT es un construct, una estructura, del mas alto nivel que va a permitir escalar nuestros pods, hacer rolling upgrades y hacer rollbacks.

Multiples deployments pueden entrar en juego para generar un canary deployment (ej: dos versiones de una aplicacion con la 1 corriendo con 5 pods, promovemos un pod a la version 2, enviamos un poco de trafico revisando las metricas para ver que este todo bien, y mandamos otro pod para ver que todo funcione bien y asi hasta que esten todos. Si algo falla, se hace rollback)

El deployment permite hacer este workflow pero delega al replicaset la creacion y el scaling de los pods.

El REPLICASET es un construct del mas low level que se asegura de que haya una cantidad de pods definida corriendo en un determinado momento. Es raro que lo modifiquemos directamente, sino a traves del deployment.

Yo estoy siguiendo el curso con minikube y es verdad que con la versión actual de kubernetes sucede lo siguiente:

“This helps. kubectl run only creates pods and services. Deployments do not get created automatically.”

Para poder crear el deployment tal como se está haciendo en el curso he usado el siguiente comndo:
kubectl create deployment pingpong --image=alpine -- ping 1.1.1.1

Después se podrá ejecutar el comando:
kubectl scale deploy/pingpong --replicas 8

disculpa no seria mas facil en vez de estar poniendo esos comandos q al fin y akabo recordarlos seria casi dificil… por que mejor no creas archivos .yaml con esas intrucciones de crear pods services deployment ingress y mas cosas y asi subes los yaml a un repositorio para nosotros y asi nos queda de ayuda bueno es una sugerencia mia tal vez no sea la correcta.

Dejo por aca un resumen de las definiciones vistas en esta clase:
.
Deployment: Es la unidad de mas alto nivel que podemos gestionar en nuestro cluster de K8S y nos va a permitir escalar nuestros pods, hacer rolling upgrades, rollbacks, etc.
.
Los deployments delegan toda la creación y scaling de los pods a los Replicaset.
.

Canary Deployment: Es un término que se utiliza cuando se quiere hacer un deployment de una nueva versión de tu código, pero se quiere hacer una transición controlada entre la versión X a la versión Y. Consiste en hacer el deploy de esta nueva versión y enviar un % del tráfico general (early adopters) e ir midiendo el comportamiento de esta nueva versión, adicionalmente K8S permite ir analizando los health checks necesarios para decidir si continuar con esta transición o realizar un rollback a la versión anterior que sigue en funcionamiento.


.
Replicaset: Se encargan de la creación y scaling de los pods y se aseguran de que se tenga una cantidad de pods definida y corriendo en un momento determinado. Es raro que el replicaset se utilice directamente ya que normalment se especifica toda la información pertinente al replicaset en el deployment.

El recurso (adminsitrado por k8s) deployment permite establecer polizas de desplegado como bluegreen deployment, rollbacks, canary deployment o a/b testing .
El recurso (administrado por k8s) replicaset controla el número de instancias de un pod por lo tanto se le delega la responsabilidad del escalado.

Buen día, siendo sincero, siento que Marcos explica todo muy rápido y sin contar una historia dentro del aprendizaje, intenté seguir el ritmo pero nada… solo veo conceptos y comandos aislados. Por lo cual buscare mas contenido en otro sitio y ya al final volveré solo para realizar un repaso.

CREANDO PODS CON KUBECTL

#Crear deployment
kubectl create deployment <name> --image=<image> <comand>

#Escalar pods
kubectl scale deploy/<name> --replicas <number>

#Ver pods
kubectl get pods

#Ver todos los servicios kubernetes
kubectl get all

#Ver log de pods
kubectl describe pods

A diciembre 2021 play-with-kubernets tiene este error al crear pods " Warning FailedScheduling 17m …"

Estoy realizando los pasos en play-with-kubernetes, pero, es normal que al realizar el kubectl get all, solamente me aparezca el pod y el servicio? Es decir, no me aparece ni el deployment ni el replicaset

Es necesario crearlo de esta manera, como dice el compañero Jair Aguilar Peña

kubectl create deployment pingpong --image=alpine – ping 1.1.1.1

De lo contrario, no podemos escalarlo, si hicimos el comando kubectl run, en la anterior clase

JIC , en lugar de hacer un kubectl run --dry-run, se puede ejecutar la opcion kubectl create deploy --dry-run=client -o yaml. Es el mismo comando pero actualizado

Explicais en el curso los concepto de affinity? Estaria muy bien un tutorial explicando diferentes casos practicos.

Como --dry-run está deprecado lo mejor es correr el comando así:

kubectl run --dry-run=server pingpong --image alpine ping 1.1.1.1 -o yaml

Entendido y unos conceptos claros.

Encantando hasta ahora con el curso

Una de las mejores clases porque aquí se unen la mayoría de los coneceptos mensionados con anterioridad.

si utilizo un archivo yml con la especificacion del deployment, y luego quisiera obtener el manifest de ese deployment, como lo podria hacer?

Excelente curso!

Excelente 😃

repasando 😃