Pular para o conteúdo
Início » Reiniciando Pods do Kubernetes com Kubectl

Reiniciando Pods do Kubernetes com Kubectl

Kubernetes - Como reiniciar os pods - Nerd Expert

O Kubernetes se destaca como uma robusta plataforma de orquestração de contêineres. Ele capacita desenvolvedores a controlar e escalonar aplicações em contêineres com eficiência. Uma atividade frequente no Kubernetes é reiniciar pods. Seja para implementar alterações ou para solucionar falhas no pod, a reinicialização é fundamental. Neste artigo, vou mostrar diferentes formas de reiniciar pods no Kubernetes através do kubectl.

Método 1: Reiniciar um Pod Individualmente

O jeito mais simples de reiniciar um pod é com o comando kubectl delete pod, e em seguida, kubectl apply. Seguem os passos:

  1. Identifique o nome do pod a ser reiniciado com kubectl get pods:
$ kubectl get pods
NAME        READY   STATUS    RESTARTS   AGE
my-pod      1/1     Running   0          1h
  1. Exclua o pod com kubectl delete pod. O Kubernetes prontamente iniciará um novo pod para substituir o excluído:
$ kubectl delete pod my-pod
pod "my-pod" deleted
  1. Após isso, aplique eventuais mudanças com kubectl apply:
$ kubectl apply -f my-pod.yaml
pod/my-pod created

Método 2: Reiniciar Pods de um Deployment Continuamente

Para reiniciar todos os pods de um deployment, use kubectl rollout restart. Esse comando substituirá os pods atuais por novos de forma sequencial. Os passos são:

  1. Determine o nome do deployment com kubectl get deployments:
$ kubectl get deployments
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
my-app    3/3     3            3           1h
  1. Execute um reinício contínuo usando kubectl rollout restart:
$ kubectl rollout restart deployment my-app
deployment.apps/my-app restarted
  1. Acompanhe o progresso com kubectl rollout status:
$ kubectl rollout status deployment my-app
Waiting for deployment "my-app" rollout to finish: 2 out of 3 new replicas have been updated...
  1. Após a conclusão, todos os pods do deployment estarão renovados.

Método 3: Reiniciar Automaticamente com Política de Reinício

Configurar o Kubernetes para reiniciar pods em falha é possível usando a política de reinício “Always”. Aqui está como proceder:

  1. No arquivo YAML do pod, adicione o campo restartPolicy com o valor “Always”:
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  restartPolicy: Always
  containers:
  - name: my-container
    image: my-image
  1. Atualize a definição com kubectl apply:
$ kubectl apply -f my-pod.yaml
pod/my-pod created

Com isso, o Kubernetes reinicia o pod sempre que ele falhar ou for deletado.

Método 4: Reiniciar com kubectl scale

Outra estratégia é zerar as réplicas de um deployment e então restaurá-las. Assim, os pods antigos se encerram, dando lugar aos novos. A sintaxe é:

kubectl scale deployment/<deployment-name> --replicas=0 && kubectl scale deployment/<deployment-name> --replicas=<number-of-replicas>

Por exemplo, para reiniciar o “my-deployment” com três réplicas, faça:

kubectl scale deployment/my-deployment --replicas=0 && kubectl scale deployment/my-deployment --replicas=3

Isso substituirá os antigos pods por novos.

Conclusão

Reiniciar pods no Kubernetes com kubectl é uma tarefa simplificada. A recomendação geral é usar o kubectl rollout restart para deployments ou statefulsets. Contudo, para focar em um único pod, kubectl delete ou kubectl scale são opções viáveis.

Marcações: