Introdução
No Kubernetes, um DaemonSet é um tipo de controlador que garante que uma cópia de um pod esteja em execução em todos os nós do cluster. Este laboratório irá guiá-lo pelo processo de criação de um DaemonSet para executar réplicas de um pod em cada nó do cluster.
Iniciar o Cluster Minikube
Antes de criar recursos, você precisa de um cluster Kubernetes em execução. O Minikube é um ambiente Kubernetes leve que roda em sua máquina local.
Navegue até o seu diretório de trabalho:
Abra o terminal e navegue até a pasta padrão do projeto:
cd /home/labex/projectInicie o 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.
Verifique 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
minikube startnovamente.
- Procure por componentes como
Se você encontrar problemas ao iniciar o Minikube, use minikube delete para redefinir o ambiente, se necessário.
Criar um Pod
Crie um pod simples que será usado como modelo para as réplicas. Crie um arquivo chamado /home/labex/project/myapp-pod.yaml com o seguinte conteúdo:
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: myapp-container
image: nginx
ports:
- containerPort: 80
Crie o pod usando o seguinte comando:
kubectl apply -f /home/labex/project/myapp-pod.yaml
Criar um Daemonset
Crie um DaemonSet para executar réplicas do myapp-pod em todos os nós do cluster. Crie um arquivo chamado /home/labex/project/myapp-daemonset.yaml com o seguinte conteúdo:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: myapp-daemonset
spec:
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: nginx
ports:
- containerPort: 80
Este DaemonSet utiliza o myapp-pod como modelo para as réplicas e define o seletor matchLabels como app: myapp para garantir que as réplicas sejam criadas em todos os nós.
Crie o DaemonSet usando o seguinte comando:
kubectl apply -f /home/labex/project/myapp-daemonset.yaml
Verificar o Daemonset
Verifique se o DaemonSet foi criado e se as réplicas do myapp-pod estão em execução em todos os nós. Use o seguinte comando para listar os nós no cluster:
kubectl get nodes
Use o seguinte comando para listar os pods criados pelo DaemonSet:
kubectl get pods -l app=myapp
Você deverá ver um pod para cada nó no cluster.
Atualizar o Daemonset
Atualize o DaemonSet para alterar a imagem usada pelo myapp-container. Crie um arquivo chamado /home/labex/project/myapp-daemonset-update.yaml com o seguinte conteúdo:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: myapp-daemonset
spec:
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox
command: ["sleep", "3600"]
Este DaemonSet atualizado altera a imagem usada pelo myapp-container para busybox e define o comando como sleep 3600.
Atualize o DaemonSet usando o seguinte comando:
kubectl apply -f /home/labex/project/myapp-daemonset-update.yaml
Verifique se o DaemonSet foi atualizado e se as réplicas do myapp-pod estão em execução com a nova imagem. Use o seguinte comando para listar os pods criados pelo DaemonSet:
kubectl get pods -l app=myapp
Você deverá ver novos pods criados com a imagem atualizada.
Resumo
Neste laboratório, você aprendeu como usar um DaemonSet no Kubernetes para executar réplicas de um pod em todos os nós do cluster.


