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:s6 [28/02/2022 12:03] – mate | info:cursos:pue:devops2022:s6 [09/03/2022 07:43] (actual) – mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | = DevOps Sesión 6 (2022-02-28) | + | = DevOps Sesión 6 (2022-02-28) |
| == Documentación relacionada | == Documentación relacionada | ||
| ==== lab1 | ==== lab1 | ||
| + | <callout type=" | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| Línia 8: | Línia 9: | ||
| * lab-docker/ | * lab-docker/ | ||
| * cluster 3 nodos k8s (1 master, 2 workers | * cluster 3 nodos k8s (1 master, 2 workers | ||
| + | </ | ||
| + | |||
| == Clase | == Clase | ||
| === k8s | === k8s | ||
| - | * 2-Despliegue de Aplicaciones Kubernetes/ | + | <callout type=" |
| + | 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| * masters no ejecutan contenedores por defecto (al contrario que swarm) | * masters no ejecutan contenedores por defecto (al contrario que swarm) | ||
| * orquestados que soporta diferentes runtimes | * orquestados que soporta diferentes runtimes | ||
| Línia 50: | Línia 55: | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| - | ==== lab1 | + | |
| + | ==== lab | ||
| + | <callout type=" | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| * https:// | * https:// | ||
| * '' | * '' | ||
| - | * '' | + | * deplegamos un pod y miramos:< |
| - | * '' | + | kubectl get pod -o wide |
| - | * '' | + | kubectl describe pod nodehelloworld.example.com</ |
| - | * '' | + | * montamos el servicio al POD (que permite relacionarse con el exterior)< |
| - | * información del servicio: | + | kubectl get service'' |
| - | * '' | + | kubectl describe service nodehelloworld-service</ |
| - | * '' | + | * acceder a un contenedor:< |
| - | * '' | + | * logs: <code bash>kubectl logs nodehelloworld.example.com</ |
| - | * '' | + | |
| * eventos del cluster: '' | * eventos del cluster: '' | ||
| - | * eliminar: | + | * eliminar |
| - | * '' | + | kubectl delete pod -f / |
| - | * o '' | + | kubectl delete service nodehelloworld-service</ |
| - | * '' | + | |
| * '' | * '' | ||
| * Visual Studio Code, extensiones para facilitar los yaml | * Visual Studio Code, extensiones para facilitar los yaml | ||
| Línia 74: | Línia 80: | ||
| * u otros... ¿? | * u otros... ¿? | ||
| - | ==== lab2 | + | ==== lab |
| + | <callout type=" | ||
| * 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/ | ||
| + | </ | ||
| * '' | * '' | ||
| * mala práctica: '' | * mala práctica: '' | ||
| Línia 96: | Línia 104: | ||
| kubectl delete service helloworld-controller-service</ | kubectl delete service helloworld-controller-service</ | ||
| - | ==== prev-lab 3 (labels) | + | === labels |
| * '' | * '' | ||
| * '' | * '' | ||
| Línia 102: | Línia 110: | ||
| * todo se relaciona con etiquetas | * todo se relaciona con etiquetas | ||
| * restricciones (documentación) | * restricciones (documentación) | ||
| - | ==== lab-3 (labels) | + | ==== lab (labels) |
| + | <callout type=" | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| * 2-Despliegue de Aplicaciones Kubernetes/ | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| * desplegar un pod:< | * desplegar un pod:< | ||
| Línia 117: | Línia 127: | ||
| kubectl delete pods -l 'env in (production, | kubectl delete pods -l 'env in (production, | ||
| + | ==== lab | ||
| + | * [[https:// | ||
| + | * < | ||
| + | kind: Pod | ||
| + | metadata: | ||
| + | name: nginx | ||
| + | spec: | ||
| + | containers: | ||
| + | - name: nginx | ||
| + | image: nginx: | ||
| + | ports: | ||
| + | - containerPort: | ||
| + | * <code bash> | ||
| + | kube expose pod nginx --type=NodePort nginx-service # no funciona, falta una etiqueta | ||
| + | kube label pods nginx app=miapp | ||
| + | kubectl expose pod nginx --type=NodePort nginx-service # el servicio se engancha a través de la etiqueta | ||
| + | kubectl describe service nginx-service</ | ||
| + | * mirar **EndPoints** para ver que el servicio está relacionado con POD | ||
| + | * si hay varias etiquetas, relaciona con todas | ||
| + | * el **kubectl expose** hace el enganche entre el pod y el service que crea a través de **labels(parte pod)-selector(parte service)** y del **containerPort(parte pod)-targetPort(parte service)**. Estos valores los has de setear tu si pasas toda la inforación en el .yml | ||
| + | ==== lab | ||
| + | <callout type=" | ||
| + | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | * 2-Despliegue de Aplicaciones Kubernetes/ | ||
| + | </ | ||
| + | * despliegue POD desde CLI (demo):< | ||
| + | * desplegamos 2 contenedores:< | ||
| + | kubectl exec twocontainers -c shell -i -t -- bash # muestra la información del POD (y los dos contenedores) | ||
| + | </ | ||
| + | * para acceder a uno de los contenedores de ese pod, hay que usar el parámetro **-c**:< | ||
| + | * los contenedores no tienen IP propia, se hablan a través de localhost | ||
| + | * '' | ||
| + | * uso: concepto de sidecars container | ||
| + | * un pod no está **RUNNIG** si no están todos los contenedores arriba | ||
| - | |||
| - | == TODO | ||
| - | <callout type=" | ||