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-configUtilitzant 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_VARExercicis 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_VARamb 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-configamb una clauMY_CONFIG_VARi 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-secretamb una clauMY_SECRET_VARi 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-configSolució 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_VARConclusió
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
