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

  1. 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%

  1. 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
    

  1. 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
    

  1. 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!']
    

  1. 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
    

  1. 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
    

  1. 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
    

  1. 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

  1. Crea un fitxer YAML per definir un Pod amb un contenidor Nginx.
  2. Desplega el Pod en el teu clúster de Kubernetes.
  3. Verifica que el Pod està en execució.

Exercici 2: Configurar un ConfigMap

  1. Crea un ConfigMap amb dues claus i valors.
  2. Modifica un Pod per utilitzar les dades del ConfigMap com a variables d'entorn.

Exercici 3: Crear un Service

  1. Crea un Service per exposar un Pod Nginx en el port 80.
  2. Verifica que el Service està funcionant correctament.

Solucions dels Exercicis

Solució 1: Crear un Pod

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
  - name: nginx
    image: nginx
kubectl apply -f nginx-pod.yaml
kubectl get pods

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
kubectl apply -f configmap.yaml
kubectl get pods

Solució 3: Crear un Service

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
kubectl apply -f service.yaml
kubectl get services

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

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

Mòdul 8: Seguretat en Kubernetes

Mòdul 9: Escalabilitat i Rendiment

Mòdul 10: Ecosistema i Eines de Kubernetes

Mòdul 11: Estudis de Cas i Aplicacions del Món Real

Mòdul 12: Preparació per a la Certificació de Kubernetes

© Copyright 2024. Tots els drets reservats