Introdução
No Kubernetes, um DaemonSet é um tipo de controlador que garante que uma cópia de um pod esteja em execução em cada nó do cluster. Este laboratório irá guiá-lo através do 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. 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 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.
Verificar se o Minikube está em execução:
Verifique o status do cluster Minikube:
minikube status- Procure por componentes como
kubeleteapiserverlistados comoRunning(Em execução). - 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 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 cada nó 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 usa 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 cada nó.
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 sendo executadas em cada nó. 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ê deve 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-daemonsett-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 para 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 sendo executadas com a nova imagem. Use o seguinte comando para listar os pods criados pelo DaemonSet:
kubectl get pods -l app=myapp
Você deve 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 cada nó do cluster.


