Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| info:cursos:pue:devops2022:s7 [02/03/2022 12:55] – mate | info:cursos:pue:devops2022:s7 [09/03/2022 07:39] (actual) – mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | = DevOps Sesión 7 (2022-03-02) | + | = DevOps Sesión 7 (2022-03-02) |
| == Documentación relacionada | == Documentación relacionada | ||
| + | <callout type=" | ||
| * lpi-devops-study-master -> documentación estudio | * lpi-devops-study-master -> documentación estudio | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| + | |||
| == Clase | == Clase | ||
| * **~/ | * **~/ | ||
| Línia 15: | Línia 18: | ||
| === deployment | === deployment | ||
| + | <callout type=" | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| * [[https:// | * [[https:// | ||
| * desplegamos:< | * desplegamos:< | ||
| Línia 59: | Línia 64: | ||
| kubectl delete service helloworld-deployment-service | kubectl delete service helloworld-deployment-service | ||
| kubectl get service, | kubectl get service, | ||
| - | * estrategias de update: | + | === estrategias de update: |
| - | | + | <callout type=" |
| - | * [[https:// | + | 2-Despliegue de Aplicaciones Kubernetes/Seminario kubernetes Troubleshooting |
| - | * rollingupdate | + | 2-Despliegue de Aplicaciones Kubernetes/ |
| - | * actualización continua. Se crean los de la nueva versión, y cuando estén listos, va eliminando los viejos. | + | </ |
| - | * maxSurge: | + | |
| - | * maxUnavailable | + | * rollingupdate |
| - | * recreate | + | * actualización continua. Se crean los de la nueva versión, y cuando estén listos, va eliminando los viejos. |
| - | * los PODs se eliminan antes de que los nuevos se creen. | + | * maxSurge: |
| - | * se cae el servicio y se levanta. | + | * maxUnavailable |
| - | * para aplicaciones sin estado | + | * recreate |
| - | * Canary: | + | * los PODs se eliminan antes de que los nuevos se creen. |
| - | * despliegue progresivo, sustituyendo 1 a 1 y siguiendo si todo va bien | + | * se cae el servicio y se levanta. |
| - | * Blue-Green | + | * para aplicaciones sin estado |
| - | * se despliegan las 2 versiones y el servicio cambia de una a otra | + | * Canary: |
| - | * se elimina la versión anterior | + | * despliegue progresivo, sustituyendo 1 a 1 y siguiendo si todo va bien |
| - | * 2-Despliegue de Aplicaciones Kubernetes/ | + | * Blue-Green |
| - | | + | * se despliegan las 2 versiones y el servicio cambia de una a otra |
| - | * estrategia de pruebas de diferentes propotipos | + | * se elimina la versión anterior |
| + | * A/B | ||
| + | * estrategia de pruebas de diferentes propotipos | ||
| * HPA = Horizontal Pod autoscaler | * HPA = Horizontal Pod autoscaler | ||
| - | | + | |
| === namespaces | === namespaces | ||
| - | * 2-Despliegue de Aplicaciones Kubernetes/ | + | <callout type=" |
| + | 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| * Los namespaces (espacios de nombres) en Kubernetes permiten establecer un nivel adicional de separación entre los contenedores que comparten los recursos de un clúster. | * Los namespaces (espacios de nombres) en Kubernetes permiten establecer un nivel adicional de separación entre los contenedores que comparten los recursos de un clúster. | ||
| * colisión de nombres | * colisión de nombres | ||
| Línia 108: | Línia 117: | ||
| </ | </ | ||
| - | === descubrimiento (Kubernetes service discovery | + | === descubrimiento (Kubernetes service discovery) |
| - | | + | <callout type=" |
| + | 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| * Cada vez que se crea un nuevo servicio se crea un registro de tipo A con el nombre **< | * Cada vez que se crea un nuevo servicio se crea un registro de tipo A con el nombre **< | ||
| * Para cada puerto nombrado se crea un registro SRV del tipo **_nombre-puerto._nombre-protocolo.my-svc.my-namespace.svc.cluster.local** que resuelve el número del puerto y al CNAME: **servicio.namespace.svc.cluster.local** | * Para cada puerto nombrado se crea un registro SRV del tipo **_nombre-puerto._nombre-protocolo.my-svc.my-namespace.svc.cluster.local** que resuelve el número del puerto y al CNAME: **servicio.namespace.svc.cluster.local** | ||
| Línia 128: | Línia 139: | ||
| === Healthcheck | === Healthcheck | ||
| - | * 2-Despliegue de Aplicaciones Kubernetes/ | + | <callout type=" |
| + | 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| * Los Healthchecks son un mecanismo fundamental para cargas productivas. Es el principal mecanismo por el cual Kubernetes va a saber si nuestros Pods están funcionando correctamente o no. | * Los Healthchecks son un mecanismo fundamental para cargas productivas. Es el principal mecanismo por el cual Kubernetes va a saber si nuestros Pods están funcionando correctamente o no. | ||
| * por CLI (o comando) o por HTTPGets | * por CLI (o comando) o por HTTPGets | ||
| Línia 173: | Línia 186: | ||
| ==== lab | ==== lab | ||
| - | * 2-Despliegue de Aplicaciones Kubernetes/ | + | <callout type=" |
| - | | + | 2-Despliegue de Aplicaciones Kubernetes/ |
| + | </ | ||
| + | <code yaml> | ||
| kind: Deployment | kind: Deployment | ||
| metadata: | metadata: | ||
| Línia 201: | Línia 216: | ||
| initialDelaySeconds: | initialDelaySeconds: | ||
| timeoutSeconds: | timeoutSeconds: | ||
| - | * <code bash> | + | <code bash> |
| kubectl get pod | kubectl get pod | ||
| Línia 211: | Línia 226: | ||
| ==== lab | ==== lab | ||
| - | * 2-Despliegue de Aplicaciones Kubernetes/ | + | <callout type=" |
| - | | + | 2-Despliegue de Aplicaciones Kubernetes/ |
| + | </ | ||
| + | <code bash> | ||
| kubectl describe pod hc | kubectl describe pod hc | ||
| kubectl apply -f / | kubectl apply -f / | ||
| Línia 232: | Línia 249: | ||
| * '' | * '' | ||
| * centralizar | * centralizar | ||
| - | == TODO | ||
| - | <callout type=" | ||