El certificat de Desenvolupador d'Aplicacions Certificat de Kubernetes (CKAD) està dissenyat per validar les habilitats i coneixements necessaris per dissenyar, construir i desplegar aplicacions en Kubernetes. Aquest mòdul t'ajudarà a preparar-te per l'examen CKAD, cobrint els temes clau i proporcionant exercicis pràctics per reforçar els conceptes apresos.
Objectius del Mòdul
- Comprendre els requisits de l'examen CKAD.
- Aprendre a desenvolupar i desplegar aplicacions en Kubernetes.
- Familiaritzar-se amb les eines i pràctiques recomanades per a la gestió d'aplicacions en Kubernetes.
- Practicar amb exercicis similars als de l'examen CKAD.
Contingut del Mòdul
- Requisits de l'Examen CKAD
- Durada: 2 hores
- Format: Examen pràctic en línia
- Temes Coberts:
- Core Concepts: 13%
- Configuration: 18%
- Multi-Container Pods: 10%
- Observability: 18%
- Pod Design: 20%
- Services & Networking: 13%
- State Persistence: 8%
- Core Concepts
2.1. Nodes i Clústers
- Node: Un node és una màquina de treball en Kubernetes.
- Clúster: Un conjunt de nodes gestionats per un node mestre.
2.2. Pods
- Pod: La unitat bàsica de desplegament en Kubernetes.
- Exemple de Pod:
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx
2.3. ReplicaSets
- ReplicaSet: Assegura que un nombre específic de rèpliques d'un pod estiguin executant-se en tot moment.
- Exemple de ReplicaSet:
apiVersion: apps/v1 kind: ReplicaSet metadata: name: my-replicaset spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-container image: nginx
- Configuration
3.1. ConfigMaps
- ConfigMap: Emmagatzema dades de configuració en parells clau-valor.
- Exemple de ConfigMap:
apiVersion: v1 kind: ConfigMap metadata: name: my-config data: key1: value1 key2: value2
3.2. Secrets
- Secret: Emmagatzema dades sensibles com contrasenyes i claus.
- Exemple de Secret:
apiVersion: v1 kind: Secret metadata: name: my-secret type: Opaque data: username: YWRtaW4= password: MWYyZDFlMmU2N2Rm
- Multi-Container Pods
4.1. Sidecar Containers
- Sidecar: Un contenidor que ajuda el contenidor principal amb tasques complementàries.
- Exemple de Pod amb Sidecar:
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: main-container image: nginx - name: sidecar-container image: busybox command: ['sh', '-c', 'echo Hello from the sidecar!']
- Observability
5.1. Logs
- kubectl logs: Comanda per veure els logs d'un pod.
kubectl logs my-pod
5.2. Probes
- Liveness Probe: Comprova si un contenidor està viu.
- Readiness Probe: Comprova si un contenidor està llest per rebre tràfic.
- Exemple de Liveness Probe:
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
- Pod Design
6.1. Init Containers
- Init Container: Un contenidor que s'executa abans dels contenidors principals.
- Exemple d'Init Container:
apiVersion: v1 kind: Pod metadata: name: my-pod spec: initContainers: - name: init-container image: busybox command: ['sh', '-c', 'echo Init container running'] containers: - name: main-container image: nginx
- Services & Networking
7.1. Services
- Service: Exposa un conjunt de pods com un servei de xarxa.
- Exemple de Service:
apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 80
- State Persistence
8.1. Persistent Volumes
- PersistentVolume (PV): Un recurs d'emmagatzematge en el clúster.
- PersistentVolumeClaim (PVC): Una sol·licitud d'emmagatzematge per part d'un usuari.
- Exemple de PV i PVC:
apiVersion: v1 kind: PersistentVolume metadata: name: my-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce hostPath: path: /mnt/data --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
Exercicis Pràctics
Exercici 1: Crear un Pod
- Crea un fitxer YAML per definir un Pod amb un contenidor Nginx.
- Desplega el Pod en el teu clúster de Kubernetes.
- Verifica que el Pod està en execució.
Exercici 2: Configurar un ConfigMap
- Crea un ConfigMap amb dues claus i valors.
- Modifica un Pod per utilitzar les dades del ConfigMap com a variables d'entorn.
Exercici 3: Crear un Service
- Crea un Service per exposar un Pod Nginx en el port 80.
- Verifica que el Service està funcionant correctament.
Solucions dels Exercicis
Solució 1: Crear un Pod
Solució 2: Configurar un ConfigMap
apiVersion: v1 kind: ConfigMap metadata: name: my-config data: key1: value1 key2: value2 --- apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx image: nginx env: - name: KEY1 valueFrom: configMapKeyRef: name: my-config key: key1 - name: KEY2 valueFrom: configMapKeyRef: name: my-config key: key2
Solució 3: Crear un Service
apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80
Consells per a la Preparació de l'Examen
- Practica Regularment: Utilitza entorns de pràctica per familiaritzar-te amb les comandes i configuracions.
- Llegeix la Documentació Oficial: La documentació de Kubernetes és una font valuosa d'informació.
- Utilitza Recursos en Línia: Hi ha molts tutorials i cursos en línia que poden ajudar-te a preparar-te.
- Simula l'Examen: Realitza simulacions de l'examen per acostumar-te al format i la pressió del temps.
Conclusió
Aquest mòdul t'ha proporcionat una visió general dels temes clau per a l'examen CKAD, juntament amb exemples pràctics i exercicis per reforçar els teus coneixements. Practica regularment i utilitza els recursos disponibles per assegurar-te que estàs ben preparat per a l'examen. Bona sort!
Curs de Kubernetes
Mòdul 1: Introducció a Kubernetes
- Què és Kubernetes?
- Arquitectura de Kubernetes
- Conceptes i Terminologia Clau
- Configuració d'un Clúster de Kubernetes
- CLI de Kubernetes (kubectl)
Mòdul 2: Components Bàsics de Kubernetes
Mòdul 3: Gestió de Configuració i Secrets
Mòdul 4: Xarxes en Kubernetes
Mòdul 5: Emmagatzematge en Kubernetes
Mòdul 6: Conceptes Avançats de Kubernetes
Mòdul 7: Monitorització i Registre
- Monitorització amb Prometheus
- Registre amb Elasticsearch, Fluentd i Kibana (EFK)
- Controls de Salut i Probes
- Servidor de Mètriques
Mòdul 8: Seguretat en Kubernetes
- Control d'Accés Basat en Rols (RBAC)
- Polítiques de Seguretat de Pods
- Seguretat de Xarxa
- Seguretat d'Imatges
Mòdul 9: Escalabilitat i Rendiment
- Autoscalat Horitzontal de Pods
- Autoscalat Vertical de Pods
- Autoscalat de Clúster
- Optimització del Rendiment
Mòdul 10: Ecosistema i Eines de Kubernetes
Mòdul 11: Estudis de Cas i Aplicacions del Món Real
- Desplegament d'una Aplicació Web
- CI/CD amb Kubernetes
- Execució d'Aplicacions Stateful
- Gestió Multi-Clúster