Este documento explica como atualizar cargas de trabalho com estado em execução em um cluster do Kubernetes com isolamento físico do Google Distributed Cloud (GDC). À medida que o aplicativo evolui com base no uso de recursos e nas otimizações de configuração, é necessário atualizar a especificação do pod no cluster do Kubernetes para refletir essas mudanças na carga de trabalho. Para mais informações sobre o planejamento de atualizações para cargas de trabalho com estado, consulte a documentação do Kubernetes sobre Estratégias de atualização.
Este documento é destinado a desenvolvedores do grupo de operadores de aplicativos, que são responsáveis por atualizar as cargas de trabalho de aplicativos da organização. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Para concluir as tarefas neste documento, você precisa dos seguintes recursos e papéis:
Para executar comandos em um cluster do Kubernetes, verifique se você tem os seguintes recursos:
Localize o nome do cluster do Kubernetes ou pergunte a um membro do grupo de administradores da plataforma.
Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes se você não tiver um.
Use o caminho kubeconfig do cluster do Kubernetes para substituir
KUBERNETES_CLUSTER_KUBECONFIGnestas instruções.
Para receber as permissões necessárias para atualizar cargas de trabalho com estado em um cluster compartilhado, peça ao administrador do IAM da organização para conceder a você o papel de administrador do namespace (
namespace-admin) no namespace do projeto.Para receber as permissões necessárias para atualizar cargas de trabalho com estado em um cluster padrão, peça ao administrador do IAM da organização para conceder a você a função de desenvolvedor de cluster (
cluster-developer) em um cluster padrão.
Atualizar um recurso StatefulSet
Para atualizar o StatefulSet, aplique um arquivo de manifesto novo ou atualizado. Isso é
útil para fazer várias mudanças no StatefulSet ao dimensionar ou para
especificar uma nova versão do aplicativo.
Para atualizar um objeto StatefulSet, execute:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
apply -f STATEFULSET_FILE
Substitua:
KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster que executa as cargas de trabalho com estado.NAMESPACE: o namespace. Para clusters compartilhados, esse precisa ser um namespace do projeto. Para clusters padrão, pode ser qualquer namespace.STATEFULSET_FILE: o nome do arquivo de manifestoStatefulSetatualizado.
O comando kubectl apply aplica um arquivo de manifesto a um recurso. Se o recurso especificado não existir, ele será criado pelo comando.
Inspecionar o lançamento de uma atualização de recurso StatefulSet
É possível conferir informações detalhadas sobre o status e o histórico de lançamento da atualização de um objeto StatefulSet. Também é possível desfazer o lançamento de um objeto StatefulSet.
Inspecionar o lançamento
Para inspecionar o lançamento do recurso StatefulSet, execute:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
rollout status statefulset STATEFULSET_NAME
KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster que executa as cargas de trabalho com estado.NAMESPACE: o namespace. Para clusters compartilhados, esse precisa ser um namespace do projeto. Para clusters padrão, pode ser qualquer namespace.STATEFULSET_NAME: o nome do objetoStatefulSetatualizado.
Acessar o histórico de lançamentos
Para conferir o histórico de lançamento do recurso StatefulSet, execute:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
rollout history statefulset STATEFULSET_NAME
KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster que executa as cargas de trabalho com estado.NAMESPACE: o namespace. Para clusters compartilhados, esse precisa ser um namespace do projeto. Para clusters padrão, pode ser qualquer namespace.STATEFULSET_NAME: o nome do objetoStatefulSetatualizado.
Desfazer um lançamento
Para desfazer um lançamento, execute:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
rollout undo statefulset STATEFULSET_NAME
Substitua:
KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster que executa as cargas de trabalho com estado.NAMESPACE: o namespace. Para clusters compartilhados, esse precisa ser um namespace do projeto. Para clusters padrão, pode ser qualquer namespace.STATEFULSET_NAME: o nome do objetoStatefulSet.