A implantação de aplicações empresariais exige um gerenciamento abrangente de configurações. Codificar configurações diretamente em uma imagem acopla a aplicação a um ambiente específico e demanda uma imagem exclusiva para cada cenário. Os ConfigMaps desacoplam a configuração da sua aplicação, permitindo que uma única imagem seja executada em vários ambientes. Eles armazenam dados de configuração não sensíveis. Para dados sensíveis, utilize Secrets, que oferecem maior proteção.
Escolher um método
Montar como Volume (Recomendado): Monta um ConfigMap como um Volume, expondo seus dados como arquivos dentro de um container. Este método suporta atualizações automáticas quando o ConfigMap é modificado. É ideal para gerenciar arquivos de configuração inteiros e para cenários que exigem atualizações dinâmicas.
Injetar como variáveis de ambiente: Injeta pares chave-valor de um ConfigMap como variáveis de ambiente no container. Recomendado para parâmetros simples, como argumentos de tempo de execução ou flags de recursos.
Criar um ConfigMap
Esta seção demonstra como criar um ConfigMap para uma implantação de exemplo com Nginx.
Console
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters. Clique no nome do seu Cluster. No painel de navegação à esquerda, escolha .
Na página ConfigMaps, selecione
defaultna lista suspensa Namespace e clique em Create.-
Configure os seguintes parâmetros e clique em OK.
ConfigMap Name: app-config
-
Clique em + Add, depois insira um Name e um Value para adicionar uma entrada de dados. Você também pode clicar em Import para criar um ConfigMap a partir de um arquivo.
Defina Key como nginx.conf e Value com o seguinte conteúdo:
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_
Kubectl
{{XREF_0}}.
-
Execute o comando abaixo para criar o ConfigMap a partir de um valor literal:
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Verifique se o ConfigMap foi criado. A saída
DATA: 1confirma a criação do ConfigMap.kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_
Usar o ConfigMap em um pod
O Workload e o ConfigMap que ele utiliza devem estar no mesmo Cluster e Namespace.
Método 1: Montar como volume
Console
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters. Clique no nome do seu Cluster. No painel de navegação à esquerda, escolha .
-
Crie um Deployment.
Na página Deployments, clique em Create from Image.
-
Na etapa Basic Information, configure a aplicação.
Para Application Name, use
nginx-volume-demo. Para Namespace, usedefault.Replicas é
2. Type éStateless (Deployment).
Clique em Next para ir à página do assistente Container.
-
Configure Image Name e Port.
Image Name:
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6Port: 80, com TCP como protocolo.
ImportantePara baixar esta Image, seu Cluster precisa ter acesso à internet. Se você selecionou Configure SNAT for VPC ao criar o Cluster (opção habilitada por padrão), nenhuma ação adicional é necessária. Caso contrário, consulte {{XREF_1}} para obter instruções.
-
Na seção Volumes, clique em Add Local Storage. Configure os parâmetros e clique em Next.
Volume Type é ConfigMap, Name é
nginx-config, Mount Source éapp-config, e Container Path é/etc/nginx/conf.d.
Na etapa Advanced Settings, configure dimensionamento, agendamento, rótulos e anotações conforme necessário e clique em Create.
-
Na página Complete, verifique o status da Task.
No painel Creation Task Submitted, clique em View Details, e verifique se o status da aplicação é
Running.
-
Verifique se o arquivo do ConfigMap está montado.
Localize o pod que você criou, como
nginx-volume-demo-xxxxxxxxxx-xxxxx. Na coluna Actions, clique em Terminal para fazer login no container.-
Execute o comando a seguir. Se a saída contiver o arquivo
nginx.conf, o ConfigMap está montado.kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Verifique o conteúdo do arquivo.
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_A saída corresponde ao conteúdo do ConfigMap, confirmando que a aplicação consegue acessar os dados do Volume montado.
-
Kubectl
-
Crie um arquivo chamado nginx-volume-demo.yaml com o seguinte conteúdo.
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Execute o comando abaixo para criar o Deployment.
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Verifique o status dos pods. O status
Runningindica uma implantação bem-sucedida.kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Execute o comando a seguir para verificar se o arquivo
nginx.confestá montado. A presença do arquivo na saída confirma uma montagem bem-sucedida.kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Execute o comando abaixo para verificar o conteúdo do arquivo.
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_A saída corresponde ao conteúdo do ConfigMap, confirmando que a aplicação consegue acessar os dados do Volume montado.
Método 2: Injetar como variáveis de ambiente
Console
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters. Clique no nome do seu Cluster. No painel de navegação à esquerda, escolha .
-
Crie um Deployment.
Na página Deployments, clique em Create from Image.
-
Na etapa Basic Information, configure a aplicação.
Application Name é
nginx-env-demo. Namespace édefault.Replicas é
2, e Type éStateless (Deployment).
Em seguida, clique em Next para ir à página do assistente Container.
-
Na etapa Container, configure Image Name e Port.
Image Name:
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6Port: 80, com TCP como protocolo.
ImportantePara baixar esta Image, seu Cluster precisa ter acesso à internet. Se você selecionou Configure SNAT for VPC ao criar o cluster (opção habilitada por padrão), nenhuma ação adicional é necessária. Caso contrário, consulte {{XREF_2}} para obter instruções.
-
Na seção Environment Variable, clique em Add. Configure os parâmetros e clique em Next.
Defina Type como ConfigMap, Name como
CONFIG_, e Variable/Variable Reference comoapp-config.
Na etapa Advanced Settings, configure dimensionamento, agendamento, rótulos e anotações conforme necessário e clique em Create.
-
Na página Complete, verifique o status da Task.
No painel Creation Task Submitted, clique em View Details, e verifique se o status do container é
Running.
-
Verifique se as variáveis de ambiente foram injetadas.
Localize o pod que você criou, como
nginx-env-demo-xxxxxxxxxx-xxxxx. Na coluna Actions, clique em Terminal para fazer login no container.kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_A saída corresponde ao conteúdo do ConfigMap, confirmando que a aplicação consegue acessar os dados por meio de variáveis de ambiente.
Kubectl
-
Crie um arquivo chamado nginx-env-demo.yaml com o seguinte conteúdo.
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Execute o comando abaixo para criar o Deployment.
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Verifique o status dos pods. O status
Runningindica uma implantação bem-sucedida.kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_ -
Execute o comando a seguir para verificar se as variáveis de ambiente foram injetadas.
kubectl exec deployment/nginx-env-demo -n default -- env | grep CONFIG_A saída corresponde ao conteúdo do ConfigMap, confirmando que a aplicação consegue acessar os dados por meio de variáveis de ambiente.
Gerenciar ConfigMaps
Após criar um ConfigMap, você pode gerenciá-lo na página ConfigMaps.
Ações | Descrição |
Editar um ConfigMap | Na coluna Actions do ConfigMap que deseja modificar, clique em Edit. É possível alterar o Name e o Value das entradas de configuração. Importante Modificar um ConfigMap em uso pode afetar diretamente as aplicações associadas, causando reinicializações ou mau funcionamento. Antes de fazer alterações, avalie o impacto e realize a operação fora dos horários de pico. |
Excluir um ConfigMap | Na coluna Actions do ConfigMap que deseja remover, clique em Delete. Importante Não exclua ConfigMaps gerados automaticamente pelo sistema. Esses ConfigMaps estão localizados nos namespaces |
Tópicos relacionados
{{XREF_3}}
{{XREF_4}}
Para mais informações, consulte o tópico da documentação oficial do Kubernetes: Configure a Pod to Use a ConfigMap.