informatica:sistemas_operativos:cursos:docker_a_fondo_introduccion_kubernetes
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:sistemas_operativos:cursos:docker_a_fondo_introduccion_kubernetes [2024/03/07 14:20] – [Resumen comandos] tempwin | informatica:sistemas_operativos:cursos:docker_a_fondo_introduccion_kubernetes [2024/03/07 15:49] (actual) – [Conceptos avanzados de Docker] tempwin | ||
|---|---|---|---|
| Línea 235: | Línea 235: | ||
| * Añadiendo una sentencia '' | * Añadiendo una sentencia '' | ||
| + | **Tienes un StatefulSet con 3 pods. El StatefulSet define una plantilla de PVC. Luego se desescala el StatefulSeta dos pods. ¿Qué ocurre con el PVC del tercer pod, con la configuración por defecto del StatefulSet? | ||
| + | |||
| + | * Se elimina automáticamente | ||
| + | * Se mantiene (**correcto**) | ||
| + | * El desescalado da error, ya que hay que eliminar manualmente el PVC antes | ||
| + | |||
| + | **Un desarrollador necesita conectarse a la BBDD de desarrollo, pero no conoce la cadena de conexión. Actualmente hay un pod que usa dicha cadena de conexión. El YAML del pod es como sigue:** | ||
| + | |||
| + | <code yaml> | ||
| + | apiVersion: v1 | ||
| + | kind: Pod | ||
| + | metadata: | ||
| + | name: client | ||
| + | spec: | ||
| + | containers: | ||
| + | - name: app | ||
| + | image: acme-org/ | ||
| + | env: | ||
| + | - name: DB_CONSTR | ||
| + | valueFrom: | ||
| + | - secretKeyRef: | ||
| + | name: db-data | ||
| + | key: constr | ||
| + | </ | ||
| + | |||
| + | **¿Qué le indicas al desarrollador para que pueda ver la cadena de conexión? | ||
| + | |||
| + | * Que pregunte al departamento de seguridad | ||
| + | * Que ejecute el comando '' | ||
| + | * Que ejecute el comando '' | ||
| + | * Que mire los logs del pod | ||
| + | * Que mire los logs del nodo | ||
| + | * Que abra una sesión interactiva con el pod y ejecute el comando '' | ||
| + | * '' | ||
| + | |||
| + | **¿Todos los pods de un StatefulSet tienen que tener la misma plantilla? | ||
| + | |||
| + | * Para nada, para crear pods idénticos se usa el Deployment | ||
| + | * Sí, porque un StatefulSet crea siempre pods idénticos (**correcto**) | ||
| + | * Sólo si no usan volúmenes persistentes | ||
| + | * El StatefulSet no crea pods, crea estados. | ||
| + | |||
| + | **¿Es posible configurar un StatefulSet para que elimine un PVC cuando el StatefulSet es desescalado? | ||
| + | |||
| + | * Sí, con la opción whenScaled a Delete (**correcto**) | ||
| + | * No, porque los PVCs son eliminados automáticamente cuando se elimina un pod | ||
| + | * No, solo puedes configurar que se borren los PVCs al eliminar el StatefulSet entero | ||
| + | * No, los PVCs siempre deben ser eliminados manualmente | ||
| + | |||
| + | **¿Puedes exponer MySQL a través de NodePort?** | ||
| + | |||
| + | * No, debes usar Ingress | ||
| + | * No, debes usar un servicio ExternalName | ||
| + | * No, debes usar un servicio LoadBalancer | ||
| + | * No, debes usar un servicio ClusterIP | ||
| + | * Sí (**correcto**) | ||
| ===== Resumen comandos ===== | ===== Resumen comandos ===== | ||
| Línea 319: | Línea 375: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| Dockerfile: | Dockerfile: | ||
| Línea 405: | Línea 465: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| * '' | * '' | ||
| * '' | * '' | ||
| Línea 444: | Línea 508: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| Creación de un pod de forma declarativa: | Creación de un pod de forma declarativa: | ||
| Línea 624: | Línea 692: | ||
| metadata: | metadata: | ||
| name: mysecret | name: mysecret | ||
| + | </ | ||
| + | |||
| + | Comando inicial de un contenedor: | ||
| + | |||
| + | <code yaml> | ||
| + | apiVersion: v1 | ||
| + | kind: Pod | ||
| + | metadata: | ||
| + | name: command | ||
| + | spec: | ||
| + | containers: | ||
| + | - name: main | ||
| + | image: alpine | ||
| + | command: | ||
| + | - /bin/ls | ||
| + | restartPolicy: | ||
| + | </ | ||
| + | |||
| + | Servicio NodePort: | ||
| + | |||
| + | <code yaml> | ||
| + | apiVersion: v1 | ||
| + | kind: Service | ||
| + | metadata: | ||
| + | name: hello | ||
| + | spec: | ||
| + | selector: | ||
| + | app: hello | ||
| + | ports: | ||
| + | - name: http | ||
| + | port: 8080 | ||
| + | targetPort: http | ||
| + | type: NodePort | ||
| + | </ | ||
| + | |||
| + | Servicio LoadBalancer: | ||
| + | |||
| + | <code yaml> | ||
| + | apiVersion: v1 | ||
| + | kind: Service | ||
| + | metadata: | ||
| + | name: hello | ||
| + | spec: | ||
| + | selector: | ||
| + | app: hello | ||
| + | ports: | ||
| + | - name: http | ||
| + | port: 8080 | ||
| + | targetPort: http | ||
| + | type: LoadBalancer | ||
| + | </ | ||
| + | |||
| + | |||
| + | Recurso Ingress: | ||
| + | |||
| + | <code yaml> | ||
| + | apiVersion: networking.k8s.io/ | ||
| + | kind: Ingress | ||
| + | metadata: | ||
| + | labels: | ||
| + | app: demo-ingress | ||
| + | name: demo-ingress | ||
| + | annotations: | ||
| + | ingress.kubernetes.io/ | ||
| + | spec: | ||
| + | rules: | ||
| + | - http: | ||
| + | paths: | ||
| + | - path: /api | ||
| + | pathType: ImplementationSpecific | ||
| + | backend: | ||
| + | service: | ||
| + | name: apisvc | ||
| + | port: | ||
| + | number: 80 | ||
| + | - path: /hello | ||
| + | pathType: ImplementationSpecific | ||
| + | backend: | ||
| + | service: | ||
| + | name: hellosvc | ||
| + | port: | ||
| + | number: 80 | ||
| + | </ | ||
| + | |||
| + | Recurso Ingress con hosts virtuales: | ||
| + | |||
| + | <code yaml> | ||
| + | apiVersion: networking.k8s.io/ | ||
| + | kind: Ingress | ||
| + | metadata: | ||
| + | name: hello-ingress | ||
| + | spec: | ||
| + | rules: | ||
| + | - host: dev.campusmvp.es | ||
| + | http: | ||
| + | paths: | ||
| + | - pathType: Prefix | ||
| + | path: "/ | ||
| + | backend: | ||
| + | service: | ||
| + | name: hellosvc | ||
| + | port: | ||
| + | name: http | ||
| </ | </ | ||
informatica/sistemas_operativos/cursos/docker_a_fondo_introduccion_kubernetes.1709817615.txt.gz · Última modificación: por tempwin
