Variables de entorno

Para configurar las variables de entorno en un contenedor de Kubernetes, podemos utilizar el recurso env en la definición del pod o el deployment. Las variables de entorno son útiles para pasar información de configuración a las aplicaciones que se ejecutan en los contenedores.

Definir variables de entorno en un pod

Para definir variables de entorno en un pod, podemos utilizar la siguiente definición en el manifiesto del pod:

apiVersion: v1
kind: Pod
metadata:
  name: mi-pod
spec:
    containers:
    - name: mi-contenedor
        image: nginx:latest
        env:
        - name: MI_VARIABLE
          value: "mi-valor"

En este ejemplo, se define la variable de entorno MI_VARIABLE con el valor mi-valor en el contenedor mi-contenedor del pod mi-pod.

Definir variables de entorno en un deployment

Para definir variables de entorno en un deployment, podemos utilizar la siguiente definición en el manifiesto del deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mi-web-apache
spec:
    replicas: 3
    selector:
        matchLabels:
        app: mi-web-apache
    template:
        metadata:
        labels:
            app: mi-web-apache
        spec:
        containers:
        - name: mi-contenedor
            image: httpd:latest
            env:
            - name: MI_VARIABLE
              value: "mi-valor"

En este ejemplo, se define la variable de entorno MI_VARIABLE con el valor mi-valor en el contenedor mi-contenedor de los pods del deployment mi-web-apache.

Variables de entorno desde un ConfigMap o Secret

También podemos definir variables de entorno en un contenedor a partir de un ConfigMap o un Secret. Para ello, podemos utilizar la siguiente definición en el manifiesto del pod o el deployment:

apiVersion: v1
kind: Pod
metadata:
  name: mi-pod
spec:
    containers:
    - name: mi-contenedor
        image: nginx:latest
        env:
        - name: MI_CONFIG
          valueFrom:
            configMapKeyRef:
              name: mi-configmap
              key: clave1
        - name: MI_SECRET
          valueFrom:
            secretKeyRef:
              name: mi-secreto
              key: clave1
        envFrom:
        - configMapRef:
            name: mi-configmap
        - secretRef:
            name: mi-secreto

En este ejemplo, se definen las variables de entorno MI_CONFIG y MI_SECRET a partir de las claves clave1 del ConfigMap mi-configmap y del Secret mi-secreto, respectivamente. También se incluyen todas las claves del ConfigMap y del Secret en las variables de entorno del contenedor.