Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

622
Vistas
Nombres de variables de entorno duplicados en la definición de pod, ¿cuál es la regla de precedencia para determinar el valor final?

Usando Kubernetes 1.19.3, inicializo los valores de las variables env usando 3 formas diferentes:

  • campo env con clave/valor explícito en la definición del pod
  • envFrom usando configMapRef y secretRef

Cuando se duplica un nombre de clave, como se muestra en el siguiente ejemplo, DUPLIK1 y DUPLIK2 se definen varias veces con diferentes valores.

¿Cuál es la regla de precedencia que usa Kubernetes para asignar el valor final a la variable?

 # create some test Key/Value configs and Key/Value secrets kubectl create configmap myconfigmap --from-literal=DUPLIK1=myConfig1 --from-literal=CMKEY1=CMval1 --from-literal=DUPLIK2=FromConfigMap -n mydebugns kubectl create secret generic mysecret --from-literal=SECRETKEY1=SECval1 --from-literal=SECRETKEY2=SECval2 --from-literal=DUPLIK2=FromSecret -n mydebugns # create a test pod cat <<EOF | kubectl apply -n mydebugns -f - apiVersion: v1 kind: Pod metadata: name: pod1 spec: containers: - name: container1 image: busybox command: [ "/bin/sh", "-c", "env" ] env: - name: DUPLIK1 value: "Key/Value defined in field env" envFrom: - configMapRef: name: myconfigmap - secretRef: name: mysecret restartPolicy: Never EOF

Mostrar valores de variables de entorno. El resultado es determinista. Eliminar recursos + recrear siempre termina con el mismo resultado.

 kubectl logs pod/pod1 -n mydebugns CMKEY1=CMval1 DUPLIK1=Key/Value defined in field env DUPLIK2=FromSecret SECRETKEY1=SECval1 SECRETKEY2=SECval2

Recursos de prueba de limpieza

 kubectl delete pod/pod1 -n mydebugns kubectl delete cm/myconfigmap -n mydebugns kubectl delete secret/mysecret -n mydebugns
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

De los documentos de Kubernetes:

envVar : Lista de variables de entorno para establecer en el contenedor. No se puede actualizar.

envFrom : lista de fuentes para completar las variables de entorno en el contenedor. Las claves definidas dentro de una fuente deben ser un C_IDENTIFIER. Todas las claves no válidas se informarán como un evento cuando se inicie el contenedor. Cuando una clave existe en varias fuentes, tendrá prioridad el valor asociado con la última fuente. Los valores definidos por un Env con una clave duplicada tendrán prioridad. No se puede actualizar.

El enlace anterior establece claramente que env tendrá prioridad sobre envFrom y no se puede actualizar.

Además, cuando una clave a la que se hace referencia está presente en varios recursos, el valor asociado con la última fuente anulará todos los valores anteriores.

Según lo anterior, el resultado que está viendo es el comportamiento esperado:

  1. DUPLIK1 se agrega como campo env y, por lo tanto, no se puede actualizar
  2. DUPLIK2 se agrega como envFrom y por lo tanto, el del secreto tiene prioridad tal como se define en el último
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda