El examen de Desarrollador de Aplicaciones Certificado de Kubernetes (CKAD) está diseñado para validar las habilidades y conocimientos de los desarrolladores en la creación, configuración y gestión de aplicaciones en Kubernetes. Este módulo te guiará a través de los conceptos clave, las habilidades prácticas y los recursos necesarios para prepararte y aprobar el examen CKAD.
Objetivos del Módulo
- Comprender el formato y los requisitos del examen CKAD.
- Familiarizarse con los dominios de conocimiento cubiertos en el examen.
- Practicar con ejemplos y ejercicios prácticos que reflejan las tareas del examen.
- Proporcionar recursos adicionales para la preparación del examen.
- Formato del Examen CKAD
El examen CKAD es un examen práctico basado en tareas que evalúa tu capacidad para realizar tareas en un entorno de Kubernetes. A continuación, se presentan los detalles clave del examen:
- Duración: 2 horas.
- Formato: Basado en tareas prácticas.
- Entorno: Se realiza en un entorno de Kubernetes en vivo.
- Puntuación mínima para aprobar: 66%.
- Idiomas disponibles: Inglés.
Dominios de Conocimiento
El examen CKAD cubre los siguientes dominios de conocimiento, cada uno con un peso específico:
Dominio de Conocimiento | Peso (%) |
---|---|
Diseño y Construcción de Aplicaciones | 20% |
Exposición de Aplicaciones | 20% |
Configuración | 15% |
Observabilidad | 15% |
Servicios y Redes | 20% |
Persistencia | 10% |
- Diseño y Construcción de Aplicaciones
Conceptos Clave
- Pods y Contenedores: Comprender cómo definir y gestionar Pods y contenedores.
- Deployments: Crear y gestionar Deployments para aplicaciones escalables.
- ConfigMaps y Secrets: Utilizar ConfigMaps y Secrets para gestionar la configuración de las aplicaciones.
Ejemplo Práctico
apiVersion: v1 kind: Pod metadata: name: my-app spec: containers: - name: my-container image: nginx ports: - containerPort: 80
Explicación:
apiVersion: v1
: Especifica la versión de la API de Kubernetes.kind: Pod
: Define el tipo de recurso como un Pod.metadata
: Proporciona metadatos como el nombre del Pod.spec
: Define las especificaciones del Pod, incluyendo los contenedores y sus configuraciones.
Ejercicio Práctico
Tarea: Crea un Deployment llamado nginx-deployment
con 3 réplicas utilizando la imagen nginx
.
Solución:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80
- Exposición de Aplicaciones
Conceptos Clave
- Servicios: Crear y gestionar servicios para exponer aplicaciones.
- Tipos de Servicios: ClusterIP, NodePort, LoadBalancer.
- Ingress: Configurar Ingress para gestionar el acceso HTTP/HTTPS a las aplicaciones.
Ejemplo Práctico
apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 80 type: ClusterIP
Explicación:
kind: Service
: Define el tipo de recurso como un Servicio.selector
: Selecciona los Pods con la etiquetaapp: my-app
.ports
: Define los puertos del servicio y el puerto de destino en los Pods.
Ejercicio Práctico
Tarea: Crea un Ingress que dirija el tráfico HTTP a un servicio llamado my-service
en el puerto 80.
Solución:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress spec: rules: - host: myapp.example.com http: paths: - path: / pathType: Prefix backend: service: name: my-service port: number: 80
- Configuración
Conceptos Clave
- ConfigMaps: Almacenar datos de configuración en un ConfigMap.
- Secrets: Almacenar datos sensibles en un Secret.
- Variables de Entorno: Pasar variables de entorno a los contenedores.
Ejemplo Práctico
Explicación:
kind: ConfigMap
: Define el tipo de recurso como un ConfigMap.data
: Almacena pares clave-valor de configuración.
Ejercicio Práctico
Tarea: Crea un Secret llamado my-secret
con una clave username
y un valor admin
.
Solución:
apiVersion: v1 kind: Secret metadata: name: my-secret type: Opaque data: username: YWRtaW4= # 'admin' en base64
- Observabilidad
Conceptos Clave
- Logs: Acceder a los logs de los contenedores.
- Sondas de Salud: Configurar sondas de liveness y readiness.
- Eventos: Ver y gestionar eventos en el clúster.
Ejemplo Práctico
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx livenessProbe: httpGet: path: /healthz port: 80 initialDelaySeconds: 3 periodSeconds: 3
Explicación:
livenessProbe
: Configura una sonda de liveness que realiza una solicitud HTTP GET a/healthz
en el puerto 80.
Ejercicio Práctico
Tarea: Configura una sonda de readiness para un contenedor que verifique el endpoint /ready
en el puerto 8080.
Solución:
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5
- Servicios y Redes
Conceptos Clave
- Servicios: Crear y gestionar servicios para exponer aplicaciones.
- Políticas de Red: Configurar políticas de red para controlar el tráfico entre Pods.
Ejemplo Práctico
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-all spec: podSelector: {} policyTypes: - Ingress - Egress ingress: - {} egress: - {}
Explicación:
kind: NetworkPolicy
: Define el tipo de recurso como una Política de Red.podSelector: {}
: Selecciona todos los Pods.ingress
yegress
: Permite todo el tráfico de entrada y salida.
Ejercicio Práctico
Tarea: Crea una Política de Red que permita el tráfico de entrada solo desde Pods con la etiqueta app: frontend
.
Solución:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-frontend spec: podSelector: {} policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: app: frontend
- Persistencia
Conceptos Clave
- Volúmenes Persistentes (PVs): Crear y gestionar volúmenes persistentes.
- Reclamaciones de Volúmenes Persistentes (PVCs): Solicitar almacenamiento persistente.
- Clases de Almacenamiento: Definir clases de almacenamiento para gestionar diferentes tipos de almacenamiento.
Ejemplo Práctico
apiVersion: v1 kind: PersistentVolume metadata: name: my-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce hostPath: path: /mnt/data
Explicación:
kind: PersistentVolume
: Define el tipo de recurso como un Volumen Persistente.capacity
: Especifica la capacidad de almacenamiento.accessModes
: Define los modos de acceso.hostPath
: Especifica la ruta en el host donde se almacena el volumen.
Ejercicio Práctico
Tarea: Crea una Reclamación de Volumen Persistente (PVC) que solicite 2Gi de almacenamiento con acceso ReadWriteMany
.
Solución:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 2Gi
Recursos Adicionales
- Documentación Oficial de Kubernetes: kubernetes.io/docs
- Guía de Estudio CKAD: Guía de Estudio CKAD
- Simuladores de Examen: Utiliza simuladores de examen para practicar en un entorno similar al del examen real.
Conclusión
En este módulo, hemos cubierto los conceptos clave y las habilidades prácticas necesarias para prepararte para el examen CKAD. Asegúrate de practicar con los ejemplos y ejercicios proporcionados, y utiliza los recursos adicionales para profundizar en tu conocimiento. Con una preparación adecuada, estarás bien encaminado para aprobar el examen CKAD y convertirte en un Desarrollador de Aplicaciones Certificado de Kubernetes. ¡Buena suerte!
Curso de Kubernetes
Módulo 1: Introducción a Kubernetes
- ¿Qué es Kubernetes?
- Arquitectura de Kubernetes
- Conceptos y Terminología Clave
- Configuración de un Clúster de Kubernetes
- CLI de Kubernetes (kubectl)
Módulo 2: Componentes Principales de Kubernetes
Módulo 3: Gestión de Configuración y Secretos
Módulo 4: Redes en Kubernetes
Módulo 5: Almacenamiento en Kubernetes
Módulo 6: Conceptos Avanzados de Kubernetes
Módulo 7: Monitoreo y Registro
- Monitoreo con Prometheus
- Registro con Elasticsearch, Fluentd y Kibana (EFK)
- Verificaciones de Salud y Sondas
- Servidor de Métricas
Módulo 8: Seguridad en Kubernetes
- Control de Acceso Basado en Roles (RBAC)
- Políticas de Seguridad de Pods
- Seguridad de Red
- Seguridad de Imágenes
Módulo 9: Escalado y Rendimiento
- Autoescalado Horizontal de Pods
- Autoescalado Vertical de Pods
- Autoescalado de Clúster
- Ajuste de Rendimiento
Módulo 10: Ecosistema y Herramientas de Kubernetes
Módulo 11: Estudios de Caso y Aplicaciones del Mundo Real
- Despliegue de una Aplicación Web
- CI/CD con Kubernetes
- Ejecución de Aplicaciones con Estado
- Gestión Multi-Clúster