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:
- Crear un ConfigMap:
apiVersion: v1 kind: ConfigMap metadata: name: example-config data: EXAMPLE_VAR: "Hello from ConfigMap!"
- 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:
- Crear un Secret:
apiVersion: v1 kind: Secret metadata: name: example-secret type: Opaque data: SECRET_VAR: c2VjcmV0VmFsdWU= # "secretValue" en base64
- 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
- Crea un fitxer YAML per a un pod que defineixi una variable d'entorn anomenada
MY_VAR
amb el valorHello, World!
. - Desplega el pod en el teu clúster de Kubernetes.
- Verifica que la variable d'entorn està configurada correctament.
Exercici 2: Utilitzar ConfigMaps
- Crea un ConfigMap anomenat
my-config
amb una clauMY_CONFIG_VAR
i el valorConfigMap Value
. - Crea un pod que utilitzi aquest ConfigMap per definir una variable d'entorn.
- Verifica que la variable d'entorn està configurada correctament.
Exercici 3: Utilitzar Secrets
- Crea un Secret anomenat
my-secret
amb una clauMY_SECRET_VAR
i el valorSecretValue
(codificat en base64). - Crea un pod que utilitzi aquest Secret per definir una variable d'entorn.
- 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
- ConfigMap:
- 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
- Secret:
apiVersion: v1 kind: Secret metadata: name: my-secret type: Opaque data: MY_SECRET_VAR: U2VjcmV0VmFsdWU= # "SecretValue" en base64
- 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
- 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