Atualizar cargas de trabalho com estado

Neste documento, explicamos como atualizar cargas de trabalho com estado em execução em um cluster do Kubernetes do Google Distributed Cloud (GDC) com isolamento físico. À 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 subjacente no cluster do Kubernetes para refletir essas mudanças na carga de trabalho. Para mais informações sobre como planejar 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, solicite as permissões necessárias e prepare seu ambiente.

Solicitar papéis do IAM

É preciso ter papéis específicos para receber as permissões necessárias para atualizar cargas de trabalho com estado. Os papéis necessários dependem de você estar trabalhando em um cluster compartilhado com escopo de organização ou em um cluster padrão com escopo de projeto. Para mais informações, consulte Configurações de cluster do Kubernetes.

Papéis de cluster compartilhados

Para criar, excluir, editar ou visualizar cargas de trabalho em um cluster compartilhado, peça ao administrador do projeto do IAM para conceder a você o papel de Administrador de namespace (namespace-admin). Esse papel está vinculado ao namespace do projeto.

Papéis de cluster padrão

Para criar, excluir, editar ou visualizar cargas de trabalho em um cluster padrão, peça ao administrador do projeto do IAM para conceder a você o papel de desenvolvedor de cluster (cluster-developer). Esse papel está vinculado ao namespace do projeto.

Preparar o ambiente

Para executar comandos em um cluster do Kubernetes usando a API, 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 qual é o nome do cluster.

  • Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes.

  • Use o caminho do kubeconfig do cluster do Kubernetes para substituir KUBERNETES_CLUSTER_KUBECONFIG nestas instruções.

Atualizar um recurso StatefulSet

Para atualizar o StatefulSet, aplique um arquivo de manifesto novo ou atualizado. Isso é útil para fazer várias alterações no StatefulSet ao escalonar 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, precisa ser um namespace de projeto. Para clusters padrão, pode ser qualquer namespace.

  • STATEFULSET_FILE: o nome do arquivo de manifesto StatefulSet atualizado.

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 um lançamento de atualização de recurso StatefulSet

É possível ver 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, precisa ser um namespace de projeto. Para clusters padrão, pode ser qualquer namespace.

  • STATEFULSET_NAME: o nome do objeto StatefulSet atualizado.

Acessar o histórico de lançamentos

Para ver 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, precisa ser um namespace de projeto. Para clusters padrão, pode ser qualquer namespace.

  • STATEFULSET_NAME: o nome do objeto StatefulSet atualizado.

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, precisa ser um namespace de projeto. Para clusters padrão, pode ser qualquer namespace.

  • STATEFULSET_NAME: o nome do objeto StatefulSet.

A seguir