ConfigMap

En esta página, se describe el objeto ConfigMap de Kubernetes y su uso en Google Kubernetes Engine.

¿Qué es un ConfigMap?

ConfigMaps vincula archivos de configuración, argumentos de la línea de comandos, variables de entorno, números de puerto y otros artefactos de configuración a los contenedores y componentes del sistema de tus pods en entorno de ejecución. ConfigMaps te permite separar tus ajustes de tus pods y componentes, lo que ayuda a mantener tus cargas de trabajo portátiles, hace que sus ajustes sean más fáciles de cambiar y administrar, y evita codificar los datos de configuración según las especificaciones del pod.

Los ConfigMaps son útiles para almacenar y compartir información de configuración no sensible y sin cifrar. Para usar información sensible en tus clústeres, debes usar secretos.

Cómo crear un ConfigMap

Crea un ConfigMap con el comando siguiente:

kubectl create configmap [NAME] [DATA]

[DATA] puede ser:

  • una ruta a un directorio que contiene uno o más archivos de configuración, indicada con la marca --from-file
  • pares clave-valor, cada uno especificado con marcas --from-literal

Para obtener más información sobre kubectl create, consulta la documentación de referencia.

También puedes crear un ConfigMap si defines un objeto ConfigMap en un archivo de manifiesto YAML y, luego, implementas el objeto con kubectl create -f [FILE].

Desde archivos

Para crear un ConfigMap a partir de uno o más archivos, usa --from-file. Puedes especificar archivos en cualquier formato de texto sin formato, como .properties, .txt o .env, siempre que los archivos contengan pares clave-valor.

Puedes pasar un solo archivo o varios archivos:

kubectl create configmap [NAME] --from-file [/PATH/TO/FILE.PROPERTIES] --from-file [/PATH/TO/FILE2.PROPERTIES]

También puedes pasar un directorio que contenga varios archivos:

kubectl create configmap [NAME] --from-file [/PATH/TO/DIRECTORY]

Cuando creas un ConfigMap basado en archivos, la clave se establece de forma predeterminada en el nombre base del archivo y el valor predeterminado en el contenido del archivo. También puedes especificar una clave alterna.

Para un ConfigMaps basado en directorios, cada archivo cuyo nombre base es una clave válida en el directorio se empaqueta en el ConfigMap. kubectl ignora los archivos no regulares, como symlinks, dispositivos y canalizaciones. Los subdirectorios también se ignoran; kubectl create configmap no se clasifica en subdirectorios.

Por ejemplo, con el comando siguiente, se crea un ConfigMap denominado game-data desde un directorio, game-configs, que contiene dos archivos properties: game.properties y ui.properties:

kubectl create configmap game-data --from-file game-configs/

Cuando se ejecuta kubectl get configmap game-data -o yaml, se muestra el resultado siguiente:

apiVersion: v1
data:
  game.properties: |
    enemies=aliens
    lives=3
    ...
  ui.properties: |
    color.good=purple
    color.bad=yellow
    allow.textmode=true
    ...
kind: ConfigMap
metadata:
  creationTimestamp: ...
  name: game-data
  namespace: default
  resourceVersion: ...
  selfLink: /api/v1/namespaces/default/configmaps/game-data
  uid: ...

Desde valores literales

Para crear un ConfigMap a partir de valores literales, usa --from-literal.

Por ejemplo, con el comando siguiente, se crea un ConfigMap denominado literal-data con dos pares clave-valor:

kubectl create configmap literal-data --from-literal key1=value1 --from-literal key2=value2

Especifica --from-literal para cada par clave-valor.

Cuando se ejecuta kubectl get configmap literal-data -o yaml, se muestra el resultado siguiente:

apiVersion: v1
data:
  key1: value1
  key2: value2
kind: ConfigMap
metadata:
  creationTimestamp: ...
  name: literal-data
  namespace: default
  resourceVersion: ....
  selfLink: /api/v1/namespaces/default/configmaps/literal-data
  uid: ...

Usa ConfigMaps

Para usar un ConfigMap con tus cargas de trabajo, puedes especificar una variable de entorno que haga referencia a los valores del ConfigMap o activar un volumen que contenga el ConfigMap.

A fin de obtener más información sobre ConfigMaps, consulta la sección sobre cómo configurar un pod para usar un ConfigMap.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Kubernetes Engine