Introdução
Neste laboratório, você aprenderá como usar ConfigMaps no Kubernetes para configurar suas aplicações. ConfigMaps fornecem uma maneira de separar dados de configuração do código da sua aplicação, facilitando o gerenciamento e a atualização da configuração da sua aplicação sem modificar a própria aplicação.
Iniciar o Cluster Minikube
Antes de criar recursos, você precisa de um cluster Kubernetes em execução. Minikube é um ambiente Kubernetes leve que roda em sua máquina local.
Navegue para o seu diretório de trabalho:
Abra o terminal e navegue até a pasta do projeto padrão:
cd /home/labex/projectIniciar Minikube:
Inicie o Minikube para inicializar um cluster Kubernetes:
minikube start- Este comando configura um cluster Kubernetes de nó único em sua máquina local.
- O Minikube pode levar alguns minutos para iniciar, dependendo do desempenho do seu sistema.
Verificar se o Minikube está em execução:
Verifique o status do cluster Minikube:
minikube status- Procure por componentes como
kubeleteapiserverlistados comoRunning. - Se o cluster não estiver em execução, execute novamente
minikube start.
- Procure por componentes como
Se você encontrar problemas ao iniciar o Minikube. Use minikube delete para redefinir o ambiente, se necessário.
Criar um Configmap
Nesta etapa, você criará um ConfigMap contendo os dados de configuração para sua aplicação.
Crie um arquivo chamado configmap.yaml no diretório /home/labex/project/ com o seguinte conteúdo:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
DATABASE_URL: postgres://user:password@host:port/dbname
Este ConfigMap contém um único par chave-valor, onde a chave é DATABASE_URL e o valor é uma string de conexão com o banco de dados PostgreSQL.
Para criar o ConfigMap, execute o seguinte comando:
kubectl apply -f configmap.yaml
Usar o Configmap em Sua Aplicação
Nesta etapa, você usará o ConfigMap em sua aplicação.
Crie um arquivo chamado deployment.yaml no diretório /home/labex/project/ com o seguinte conteúdo:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
env:
- name: DATABASE_URL
valueFrom:
configMapKeyRef:
name: my-config
key: DATABASE_URL
Este deployment especifica um único container executando sua aplicação, que usa a variável de ambiente DATABASE_URL para conectar a um banco de dados PostgreSQL. O valor de DATABASE_URL é obtido do ConfigMap my-config.
Para criar o deployment, execute o seguinte comando:
kubectl apply -f deployment.yaml
Verificar a Configuração
Nesta etapa, você verificará se a configuração foi aplicada à sua aplicação.
Primeiro, encontre o nome do pod executando sua aplicação executando o seguinte comando:
kubectl get pods -l app=my-app
Você deve ver um único pod executando sua aplicação. Anote o nome do pod.
Em seguida, execute o seguinte comando para abrir uma sessão de shell no container executando sua aplicação:
kubectl exec -it pod-name -- /bin/sh
Substitua <pod-name> pelo nome do pod que você anotou anteriormente.
Depois de estar na sessão de shell, execute o seguinte comando para imprimir o valor da variável de ambiente DATABASE_URL:
echo $DATABASE_URL
Você deve ver a string de conexão com o banco de dados que você definiu no ConfigMap.
Atualizar o Configmap
Nesta etapa, você atualizará o ConfigMap e verá como isso afeta sua aplicação.
Atualize o arquivo configmap.yaml com um novo valor para a chave DATABASE_URL:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
DATABASE_URL: postgres://newuser:newpassword@newhost:newport/newdbname
Isso atualiza a chave DATABASE_URL para um novo valor.
Para atualizar o ConfigMap, execute o seguinte comando:
kubectl apply -f configmap.yaml
Verificar a Atualização
Nesta etapa, você verificará se a atualização do ConfigMap foi aplicada à sua aplicação.
Primeiro, encontre o nome do pod que está executando sua aplicação executando o seguinte comando:
kubectl get pods -l app=my-app
Você deve ver um único pod executando sua aplicação. Anote o nome do pod.
Em seguida, execute o seguinte comando para abrir uma sessão de shell no container que está executando sua aplicação:
kubectl exec -it pod-name -- /bin/sh
Substitua <pod-name> pelo nome do pod que você anotou anteriormente.
Depois de estar na sessão do shell, execute o seguinte comando para imprimir o valor da variável de ambiente DATABASE_URL:
echo $DATABASE_URL
Você pode ver que a configuração não teve efeito, ainda é a mesma informação de antes. Você precisa reiniciar o Deployment com o seguinte comando.
kubectl rollout restart deployment my-app
Quando a reinicialização estiver completa, entre no container novamente e use o comando acima para verificar a configuração.
Você deve ver a string de conexão do banco de dados atualizada.
Resumo
Neste laboratório, você aprendeu como usar ConfigMaps no Kubernetes para configurar suas aplicações. Você criou um ConfigMap contendo dados de configuração, usou o ConfigMap em sua aplicação e atualizou o ConfigMap para ver como isso afeta sua aplicação. Você também aprendeu como verificar se a configuração foi aplicada à sua aplicação e como limpar os recursos criados no laboratório.


