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.