Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

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] mateinfo: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) k8s
 == Documentación relacionada == Documentación relacionada
 +<callout type="info" icon="true">
   * lpi-devops-study-master -> documentación estudio   * lpi-devops-study-master -> documentación estudio
   * 2-Despliegue de Aplicaciones Kubernetes/1-Laboratorio kubernetes Curso-DevOps.txt   * 2-Despliegue de Aplicaciones Kubernetes/1-Laboratorio kubernetes Curso-DevOps.txt
   * 2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf   * 2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf
   * 2-Despliegue de Aplicaciones Kubernetes/2-Laboratorios basicos kubernetes .pdf   * 2-Despliegue de Aplicaciones Kubernetes/2-Laboratorios basicos kubernetes .pdf
 +</callout>
 +
 == Clase == Clase
   * **~/.kube/config**: credenciales para conectar con el cluster   * **~/.kube/config**: credenciales para conectar con el cluster
Línia 15: Línia 18:
  
 === deployment === deployment
 +<callout type="info" icon="true">
   * 2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf pàg 37   * 2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf pàg 37
   * 2-Despliegue de Aplicaciones Kubernetes/kubernetes-curso/deployment   * 2-Despliegue de Aplicaciones Kubernetes/kubernetes-curso/deployment
 +</callout>
   * [[https://kubernetes.io/es/docs/concepts/workloads/controllers/deployment/]]   * [[https://kubernetes.io/es/docs/concepts/workloads/controllers/deployment/]]
   * desplegamos:<code bash>kubectl apply -f /vagrant/kubernetes-curso/deployment/helloworld.yml --record   * desplegamos:<code bash>kubectl apply -f /vagrant/kubernetes-curso/deployment/helloworld.yml --record
Línia 59: Línia 64:
 kubectl delete service helloworld-deployment-service kubectl delete service helloworld-deployment-service
 kubectl get service,deployment</code> kubectl get service,deployment</code>
-  * estrategias de update: +=== estrategias de update: 
-    2-.../Seminario kubernetes Troubleshooting  Deployments Applications.pdf pag 41 +<callout type="info" icon="true"> 
-    * [[https://kubernetes.io/es/docs/concepts/workloads/controllers/deployment/#estrategia]] +2-Despliegue de Aplicaciones Kubernetes/Seminario kubernetes Troubleshooting  Deployments Applications.pdf pag 41 
-    * rollingupdate +2-Despliegue de Aplicaciones Kubernetes/Laboratorio-deployment-strategies/deployment-blue-green 
-      * actualización continua. Se crean los de la nueva versión, y cuando estén listos, va eliminando los viejos. +</callout> 
-      * maxSurge: +  * [[https://kubernetes.io/es/docs/concepts/workloads/controllers/deployment/#estrategia]] 
-      * 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/Laboratorio-deployment-strategies/deployment-blue-green +  * Blue-Green 
-    * A/B +    * 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
-    * defines max y mínimos y hasta donde puede ampliar los PODs+  * defines max y mínimos y hasta donde puede ampliar los PODs 
 === namespaces === namespaces
-  * 2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf, pág 176+<callout type="info" icon="true"> 
 +2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf, pág 176 
 +</callout>
   * 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:
 </code> </code>
  
-=== descubrimiento (Kubernetes service discovery +=== descubrimiento (Kubernetes service discovery
-  2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf, pág 132+<callout type="info" icon="true"> 
 +2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf, pág 132 
 +</callout>
   * Cada vez que se crea un nuevo servicio se crea un registro de tipo A con el nombre **<servicio>.<namespace>.svc.cluster.local**   * Cada vez que se crea un nuevo servicio se crea un registro de tipo A con el nombre **<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**   * 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/1-Laboratorios Kubernetes 2020.pdf, pág 84+<callout type="info" icon="true"> 
 +2-Despliegue de Aplicaciones Kubernetes/1-Laboratorios Kubernetes 2020.pdf, pág 84 
 +</callout>
   * 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/k8-for-devs-master/healthchecks +<callout type="info" icon="true"> 
-  <code yaml>apiVersion: apps/v1+2-Despliegue de Aplicaciones Kubernetes/k8-for-devs-master/healthchecks 
 +</callout> 
 +<code yaml>apiVersion: apps/v1
 kind: Deployment kind: Deployment
 metadata: metadata:
Línia 201: Línia 216:
           initialDelaySeconds: 10           initialDelaySeconds: 10
           timeoutSeconds: 10</code>           timeoutSeconds: 10</code>
-  * <code bash>kubectl apply -f /vagrant/k8-for-devs-master/healthchecks/healcheck.yaml+<code bash>kubectl apply -f /vagrant/k8-for-devs-master/healthchecks/healcheck.yaml
 kubectl get pod kubectl get pod
  
Línia 211: Línia 226:
  
 ==== lab ==== lab
-  * 2-Despliegue de Aplicaciones Kubernetes/2-Laboratorios basicos kubernetes .pdf pág 7 +<callout type="info" icon="true"> 
-  <code bash>kubectl apply -f /vagrant/kubernetes-labs2/healthz/pod.yaml+2-Despliegue de Aplicaciones Kubernetes/2-Laboratorios basicos kubernetes .pdf pág 7 
 +</callout> 
 +<code bash>kubectl apply -f /vagrant/kubernetes-labs2/healthz/pod.yaml
 kubectl describe pod hc kubectl describe pod hc
 kubectl apply -f /vagrant/kubernetes-labs2/healthz/badpod.yaml kubectl apply -f /vagrant/kubernetes-labs2/healthz/badpod.yaml
Línia 232: Línia 249:
   * ''kubectl logs --previous=true'': mostrar logs de pods/contenedores anteriores   * ''kubectl logs --previous=true'': mostrar logs de pods/contenedores anteriores
     * centralizar     * centralizar
-== TODO 
-<callout type="info" icon="true"></callout> 
  • info/cursos/pue/devops2022/s7.1646254509.txt.gz
  • Darrera modificació: 02/03/2022 12:55
  • per mate