ConfigMap

Nesta página, descrevemos o objeto ConfigMap do Kubernetes e o uso dele no Google Kubernetes Engine.

O que é um ConfigMap?

Os ConfigMaps vinculam arquivos de configuração, argumentos de linha de comando, variáveis de ambiente, números de porta e outros artefatos de configuração aos contêineres e componentes do sistema dos pods no ambiente de execução. Eles permitem separar configurações suas e de pods e componentes, o que ajuda a manter a portabilidade das cargas de trabalho, facilita a alteração e o gerenciamento das configurações e evita que os dados de configuração sejam fixados nas especificações de pod.

Os ConfigMaps são úteis para armazenar e compartilhar informações de configuração não confidenciais e não criptografadas. Para usar informações confidenciais nos clusters, é preciso usar chaves secretas.

Como criar um ConfigMap

Você cria um ConfigMap usando o seguinte comando:

kubectl create configmap [NAME] [DATA]

[DATA] pode ser:

  • um caminho para um diretório contendo um ou mais arquivos de configuração, indicado pela sinalização --from-file;
  • pares de chave-valor, cada um especificado com sinalizações --from-literal.

Para mais informações sobre kubectl create, consulte a documentação de referência (em inglês).

Também é possível criar um ConfigMap definindo um objeto ConfigMap (em inglês) em um arquivo de manifesto YAML e implantando o objeto por meio de kubectl create -f [FILE].

A partir de arquivos

Para criar um ConfigMap a partir de um ou mais arquivos, use --from-file. Você especifica arquivos em qualquer formato de texto simples, como .properties, .txt ou .env, desde que os arquivos contenham pares de chave-valor.

Você pode passar um único arquivo ou vários arquivos:

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

Você também pode passar um diretório contendo vários arquivos:

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

Quando você cria um ConfigMap com base em arquivos, a chave é padronizada com o nome de base do arquivo, e o valor é padronizado com o conteúdo do arquivo. Você também pode especificar uma chave alternativa.

Os ConfigMaps baseados em diretórios englobam todos os arquivos que têm uma chave válida como nome de base no diretório. Arquivos incomuns, como links simbólicos, dispositivos e canalizações, são ignorados por kubectl. Os subdiretórios também são ignorados. kubectl create configmap não se propaga aos subdiretórios.

Por exemplo, o seguinte comando cria um ConfigMap denominado game-data de um diretório, game-configs, que contém dois arquivos properties: game.properties e ui.properties:

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

A execução de kubectl get configmap game-data -o yaml retorna a seguinte resposta:

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

A partir de valores literais

Para criar um ConfigMap a partir de valores literais, use --from-literal.

Por exemplo, o comando a seguir cria um ConfigMap denominado literal-data com dois pares de chave-valor:

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

Você especifica --from-literal para cada par de chave-valor.

A execução de kubectl get configmap literal-data -o yaml retorna a seguinte resposta:

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

Como usar ConfigMaps

Para usar um ConfigMap com as cargas de trabalho, você pode especificar uma variável de ambiente que faça referência aos valores do ConfigMap ou ativar um volume contendo o ConfigMap.

Para saber sobre o uso de ConfigMaps, consulte Configurar um pod para usar um ConfigMap.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Kubernetes Engine