Atualize cargas de trabalho com estado

Este documento explica como atualizar cargas de trabalho com estado existentes em execução num cluster do Kubernetes isolado do Google Distributed Cloud (GDC). À medida que a sua aplicação evolui com base na utilização de recursos e nas otimizações de configuração, tem de atualizar a especificação do pod subjacente no cluster do Kubernetes para refletir essas alterações da carga de trabalho. Para mais informações sobre o planeamento de atualizações para cargas de trabalho com estado, consulte a documentação do Kubernetes para Estratégias de atualização.

Este documento destina-se a programadores no grupo de operadores de aplicações, que são responsáveis por atualizar as cargas de trabalho das aplicações para a respetiva organização. Para mais informações, consulte Públicos-alvo para a documentação isolada do GDC.

Antes de começar

Para concluir as tarefas neste documento, tem de pedir as autorizações necessárias e preparar o seu ambiente.

Peça funções do IAM

Tem de ter funções específicas para receber as autorizações de que precisa para atualizar cargas de trabalho com estado. As funções de que precisa dependem de estar a trabalhar num cluster partilhado com âmbito na organização ou num cluster padrão com âmbito no projeto. Para mais informações, consulte o artigo Configurações do cluster do Kubernetes.

Funções do cluster partilhado

Para criar, eliminar, editar ou ver cargas de trabalho num cluster partilhado, peça ao administrador do IAM do projeto para lhe atribuir a função Administrador do espaço de nomes (namespace-admin). Esta função está associada ao espaço de nomes do seu projeto.

Funções do cluster padrão

Para criar, eliminar, editar ou ver cargas de trabalho num cluster padrão, peça ao administrador do IAM do projeto para lhe atribuir a função Programador do cluster (cluster-developer). Esta função está associada ao espaço de nomes do seu projeto.

Prepare o seu ambiente

Para executar comandos num cluster do Kubernetes através da API, certifique-se de que 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.

  • Inicie sessão e gere o ficheiro kubeconfig para o cluster do Kubernetes.

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

Atualize um recurso StatefulSet

Para atualizar o StatefulSet, aplique um ficheiro de manifesto novo ou atualizado. Isto é útil para fazer várias alterações ao seu StatefulSet ao dimensionar ou para especificar uma nova versão da sua aplicação.

Para atualizar um objeto StatefulSet, execute o seguinte comando:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f STATEFULSET_FILE

Substitua o seguinte:

  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster que executa as cargas de trabalho com estado.

  • NAMESPACE: o espaço de nomes. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.

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

O comando kubectl apply aplica um ficheiro de manifesto a um recurso. Se o recurso especificado não existir, é criado pelo comando.

Inspecione uma implementação de atualização de um recurso StatefulSet

Pode ver informações detalhadas sobre o estado e o histórico da implementação de atualização de um objeto StatefulSet. Também pode anular uma implementação de um objeto StatefulSet.

Inspecione a implementação

Para inspecionar a implementação do recurso StatefulSet, execute o seguinte comando:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout status statefulset STATEFULSET_NAME
  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster que executa as cargas de trabalho com estado.

  • NAMESPACE: o espaço de nomes. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.

  • STATEFULSET_NAME: o nome do objeto StatefulSet atualizado.

Veja o histórico de implementações

Para ver o histórico de implementações do recurso StatefulSet, execute o seguinte comando:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout history statefulset STATEFULSET_NAME
  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster que executa as cargas de trabalho com estado.

  • NAMESPACE: o espaço de nomes. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.

  • STATEFULSET_NAME: o nome do objeto StatefulSet atualizado.

Anule uma implementação

Para anular uma implementação, execute o seguinte comando:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout undo statefulset STATEFULSET_NAME

Substitua o seguinte:

  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster que executa as cargas de trabalho com estado.

  • NAMESPACE: o espaço de nomes. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.

  • STATEFULSET_NAME: o nome do objeto StatefulSet.

O que se segue