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 ar 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 sobre as 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 a documentação sobre públicos-alvo para GDC com isolamento de ar.

Antes de começar

Para concluir as tarefas neste documento, tem de ter os seguintes recursos e funções:

  • Para executar comandos num cluster do Kubernetes, 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, se não tiver um.

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

  • Para receber as autorizações necessárias para atualizar cargas de trabalho com estado num cluster partilhado, peça ao administrador da IAM da organização que lhe conceda a função de administrador do espaço de nomes (namespace-admin) no espaço de nomes do seu projeto.

  • Para receber as autorizações necessárias para atualizar cargas de trabalho com estado num cluster padrão, peça ao administrador de IAM da organização para lhe conceder a função de programador de clusters (cluster-developer) num cluster padrão.

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 quando dimensiona ou para especificar uma nova versão da sua aplicação.

Para atualizar um objeto StatefulSet, execute:

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 StatefulSetatualizado.

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

Inspeção da implementação de uma atualização de recursos do StatefulSet

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

Inspeccione 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.

Obtenha 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?