Introducció

Els ConfigMaps són un component essencial en Kubernetes que permeten separar la configuració de l'aplicació del codi de l'aplicació. Això facilita la gestió i la modificació de la configuració sense necessitat de reconstruir la imatge del contenidor.

Conceptes Clau

  • ConfigMap: Un objecte de Kubernetes que emmagatzema dades de configuració en parelles clau-valor.
  • Volum ConfigMap: Un volum que proporciona dades de configuració a un contenidor.
  • Variables d'entorn: Les dades de configuració es poden injectar com a variables d'entorn en els contenidors.

Creació d'un ConfigMap

Mètode 1: Utilitzant un fitxer de configuració YAML

apiVersion: v1
kind: ConfigMap
metadata:
  name: example-config
data:
  database_url: "mongodb://localhost:27017"
  database_name: "exampledb"

Mètode 2: Utilitzant la línia de comandes kubectl

kubectl create configmap example-config --from-literal=database_url="mongodb://localhost:27017" --from-literal=database_name="exampledb"

Utilització d'un ConfigMap

Injectar com a Variables d'Entorn

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    env:
    - name: DATABASE_URL
      valueFrom:
        configMapKeyRef:
          name: example-config
          key: database_url
    - name: DATABASE_NAME
      valueFrom:
        configMapKeyRef:
          name: example-config
          key: database_name

Montar com a Volum

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: example-config

Exemples Pràctics

Exemple 1: Crear i Utilitzar un ConfigMap

  1. Crear el ConfigMap:

    kubectl create configmap app-config --from-literal=app_name="MyApp" --from-literal=app_version="1.0"
    
  2. Crear un Pod que utilitzi el ConfigMap:

    apiVersion: v1
    kind: Pod
    metadata:
      name: app-pod
    spec:
      containers:
      - name: app-container
        image: busybox
        command: ["sh", "-c", "echo $(APP_NAME) $(APP_VERSION) && sleep 3600"]
        env:
        - name: APP_NAME
          valueFrom:
            configMapKeyRef:
              name: app-config
              key: app_name
        - name: APP_VERSION
          valueFrom:
            configMapKeyRef:
              name: app-config
              key: app_version
    
  3. Aplicar el Pod:

    kubectl apply -f app-pod.yaml
    
  4. Verificar la sortida del Pod:

    kubectl logs app-pod
    

Exemple 2: Montar un ConfigMap com a Volum

  1. Crear el ConfigMap:

    kubectl create configmap app-config --from-file=config-file=config.txt
    
  2. Crear un Pod que monti el ConfigMap com a volum:

    apiVersion: v1
    kind: Pod
    metadata:
      name: app-pod
    spec:
      containers:
      - name: app-container
        image: busybox
        command: ["sh", "-c", "cat /etc/config/config-file && sleep 3600"]
        volumeMounts:
        - name: config-volume
          mountPath: /etc/config
      volumes:
      - name: config-volume
        configMap:
          name: app-config
    
  3. Aplicar el Pod:

    kubectl apply -f app-pod.yaml
    
  4. Verificar la sortida del Pod:

    kubectl logs app-pod
    

Errors Comuns i Consells

  • Error: ConfigMap no trobat: Assegura't que el nom del ConfigMap en el Pod coincideixi exactament amb el nom del ConfigMap creat.
  • Error: Clau no trobada: Verifica que la clau especificada en configMapKeyRef existeixi en el ConfigMap.
  • Consell: Utilitza noms descriptius per a les claus del ConfigMap per facilitar la seva gestió i comprensió.

Resum

En aquesta secció, hem après què són els ConfigMaps, com crear-los i com utilitzar-los en els nostres Pods. Els ConfigMaps són una eina poderosa per gestionar la configuració de les aplicacions de manera flexible i eficient. En la següent secció, explorarem els Secrets, que són similars als ConfigMaps però estan dissenyats per emmagatzemar dades sensibles de manera segura.

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