Introducció

Les variables d'entorn són una manera de passar informació de configuració a les aplicacions en temps d'execució. En Kubernetes, les variables d'entorn es poden utilitzar per configurar els pods i els contenidors de manera dinàmica, sense necessitat de modificar el codi de l'aplicació.

Conceptes Clau

  • Variables d'Entorn: Són parelles clau-valor que es poden utilitzar per configurar el comportament d'una aplicació.
  • ConfigMaps: Recursos de Kubernetes que permeten emmagatzemar dades de configuració no sensibles en parelles clau-valor.
  • Secrets: Recursos de Kubernetes per emmagatzemar dades sensibles, com ara contrasenyes, claus d'API, etc.

Configuració de Variables d'Entorn en Kubernetes

Utilitzant el fitxer de manifest

Les variables d'entorn es poden definir directament en el fitxer de manifest del pod. A continuació es mostra un exemple de com definir variables d'entorn en un fitxer YAML:

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    env:
    - name: EXAMPLE_VAR
      value: "Hello, Kubernetes!"

Utilitzant ConfigMaps

Els ConfigMaps permeten separar la configuració del codi de l'aplicació. A continuació es mostra com crear un ConfigMap i utilitzar-lo per definir variables d'entorn en un pod:

  1. Crear un ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
  name: example-config
data:
  EXAMPLE_VAR: "Hello from ConfigMap!"
  1. Utilitzar el ConfigMap en un Pod:
apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    envFrom:
    - configMapRef:
        name: example-config

Utilitzant Secrets

Els Secrets són similars als ConfigMaps, però estan dissenyats per emmagatzemar dades sensibles. A continuació es mostra com crear un Secret i utilitzar-lo per definir variables d'entorn en un pod:

  1. Crear un Secret:
apiVersion: v1
kind: Secret
metadata:
  name: example-secret
type: Opaque
data:
  SECRET_VAR: c2VjcmV0VmFsdWU=  # "secretValue" en base64
  1. Utilitzar el Secret en un Pod:
apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    env:
    - name: SECRET_VAR
      valueFrom:
        secretKeyRef:
          name: example-secret
          key: SECRET_VAR

Exercicis Pràctics

Exercici 1: Definir Variables d'Entorn Directament

  1. Crea un fitxer YAML per a un pod que defineixi una variable d'entorn anomenada MY_VAR amb el valor Hello, World!.
  2. Desplega el pod en el teu clúster de Kubernetes.
  3. Verifica que la variable d'entorn està configurada correctament.

Exercici 2: Utilitzar ConfigMaps

  1. Crea un ConfigMap anomenat my-config amb una clau MY_CONFIG_VAR i el valor ConfigMap Value.
  2. Crea un pod que utilitzi aquest ConfigMap per definir una variable d'entorn.
  3. Verifica que la variable d'entorn està configurada correctament.

Exercici 3: Utilitzar Secrets

  1. Crea un Secret anomenat my-secret amb una clau MY_SECRET_VAR i el valor SecretValue (codificat en base64).
  2. Crea un pod que utilitzi aquest Secret per definir una variable d'entorn.
  3. Verifica que la variable d'entorn està configurada correctament.

Solucions

Solució a l'Exercici 1

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    env:
    - name: MY_VAR
      value: "Hello, World!"

Solució a l'Exercici 2

  1. ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
data:
  MY_CONFIG_VAR: "ConfigMap Value"
  1. Pod:
apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    envFrom:
    - configMapRef:
        name: my-config

Solució a l'Exercici 3

  1. Secret:
apiVersion: v1
kind: Secret
metadata:
  name: my-secret
type: Opaque
data:
  MY_SECRET_VAR: U2VjcmV0VmFsdWU=  # "SecretValue" en base64
  1. Pod:
apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: example-container
    image: nginx
    env:
    - name: MY_SECRET_VAR
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: MY_SECRET_VAR

Conclusió

Les variables d'entorn són una eina poderosa per configurar aplicacions en Kubernetes. Utilitzant ConfigMaps i Secrets, podem gestionar la configuració de manera segura i eficient. Aquests conceptes són fonamentals per a la gestió de la configuració en entorns de producció.

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