ConfigMap

Esta página describe el objeto ConfigMap de Kubernetes y su uso en Google Kubernetes Engine.

¿Qué es un ConfigMap?

ConfigMaps vincula los archivos de configuración, los argumentos de la línea de comandos, las variables de entorno, los 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 configuraciones de tus pods y componentes, lo que ayuda a mantener tus cargas de trabajo portátiles, hace que sus configuraciones 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 confidencial 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 siguiente comando:

kubectl create configmap [NAME] [DATA]

[DATA] puede ser:

  • Una ruta de acceso a un directorio que contiene uno o más archivos de configuración, indicada mediante el marcador --from-file.
  • Pares clave-valor, cada uno especificado con marcadores --from-literal.

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

También puedes crear un ConfigMap cuando 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. Especifica los archivos en cualquier 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 está empaqueto en el ConfigMap. kubectl ignora los archivos no regulares, como enlaces simbólicos, dispositivos y barras verticales. Los subdirectorios también se ignoran; kubectl create configmap no se clasifica en subdirectorios.

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

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

Ejecutar kubectl get configmap game-data -o yaml muestra el siguiente resultado:

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, el siguiente comando crea un ConfigMap denominado literal-data con dos pares clave-valor:

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

Tú especificas --from-literal para cada par clave-valor.

Ejecutar kubectl get configmap literal-data -o yaml muestra el siguiente resultado:

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: ...

Cómo usar 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 Configurar un pod para usar un ConfigMap.

¿Qué sigue?

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

Enviar comentarios sobre...