A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Kubernetes

Curso de Kubernetes

Marcos Lilljedahl

Marcos Lilljedahl

Deployments y replica sets

15/33
Recursos

Aportes 16

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

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.

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.

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

鈥淭his 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

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.

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

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 鈥"

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

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.

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

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

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.

Entendido y unos conceptos claros.

Excelente curso!

Excelente 馃槂

repasando 馃槂