Kubernetes Resource Management Question #019e3a4f
Como você pode monitorar o progresso de uma atualização de Deployment/DaemonSet/StatefulSet?
kubectl rollout watch
kubectl rollout progress
kubectl rollout state
kubectl rollout status
Official Explanation / Community Explanations
O comando kubectl rollout status é usado para monitorar o progresso de um rollout para Deployments, DaemonSets e StatefulSets. Ele observa o status do rollout até que seja concluído com sucesso ou falhe, fornecendo atualizações em tempo real sobre o número de réplicas atualizadas, disponíveis e prontas.
Como funciona:
Quando você atualiza um Deployment, DaemonSet ou StatefulSet (por exemplo, alterando a imagem do contêiner), o Kubernetes inicia uma atualização contínua. O comando kubectl rollout status rastreia o progresso do rollout verificando as condições de status do recurso. Ele exibe linhas como "Waiting for rollout to finish: 0 of 3 updated replicas are available..." e eventualmente "deployment "myapp" successfully rolled out" quando todas as réplicas são atualizadas.
Por que kubectl rollout status está correto:
Este comando é especificamente projetado para monitorar o progresso do rollout. Ele bloqueia até que o rollout seja concluído, tornando-o ideal para scripts e pipelines de CI/CD. Funciona para Deployments, DaemonSets e StatefulSets.
Por que outros comandos estão incorretos:
kubectl rollout watchnão é um comando kubectl válido. A flagwatchpode ser usada com outros comandos (por exemplo,kubectl get pods --watch), mas não existe o subcomandokubectl rollout watch.kubectl rollout progressnão é um comando kubectl válido. O subcomando correto éstatus, nãoprogress.kubectl rollout statenão é um comando kubectl válido. Não existe subcomandostateemrollout.