Atualize cargas de trabalho sem estado

Esta página explica como atualizar cargas de trabalho sem estado existentes executadas 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 de carga de trabalho.

Esta página 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 executar comandos num cluster do Kubernetes, certifique-se de que tem os seguintes recursos:

  1. Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma qual é o nome do cluster.

  2. Inicie sessão e gere o ficheiro kubeconfig para o cluster Kubernetes, se não tiver um.

  3. 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 sem estado, 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.

Atualize a implementação

Para atualizar um objeto Deployment, execute:

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

Substitua o seguinte:

  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster que executa a implementação.

  • NAMESPACE: o espaço de nomes do projeto.

  • DEPLOYMENT_FILE: o nome do ficheiro de manifesto a atualizar.Deployment

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

Também existem várias outras formas de atualizar os recursos na sua implementação.

Atualize uma imagem de contentor

Para alterar a imagem de um objeto Deployment, execute o seguinte comando:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

Substitua o seguinte:

  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster que executa a implementação.

  • NAMESPACE: o espaço de nomes do projeto.

  • DEPLOYMENT_NAME: o nome do objeto Deployment que contém a imagem.

  • IMAGE: o nome da imagem do contentor.

  • TAG: a etiqueta a atualizar para a imagem do contentor.

A atualização da imagem de uma implementação é útil para alterar campos seletores ou recursos, como pedidos ou limites.

Por exemplo, para atualizar um objeto Deployment com o nome nginx para usar a versão 1.9.1, execute o seguinte:

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    set image deployment nginx nginx=nginx:1.9.1

Reverta uma atualização

Se quiser reverter uma atualização, por exemplo, quando a implementação fica instável, use a CLI kubectl. O histórico de implementação de um objeto Deployment é preservado no sistema para que possa reverter a qualquer momento.

Para reverter uma atualização em curso ou concluída para a revisão anterior, execute:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME

Substitua o seguinte:

  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster que executa a implementação.

  • NAMESPACE: o espaço de nomes do projeto.

  • DEPLOYMENT_NAME: o nome do objeto Deployment para reverter.

Para reverter para uma revisão específica, execute o seguinte comando:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

Substitua o seguinte:

  • KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster que executa a implementação.

  • NAMESPACE: o espaço de nomes do projeto.

  • DEPLOYMENT_NAME: o nome do objeto Deployment para reverter.

  • REVISION_NUMBER: o número inteiro que define a revisão para a qual reverter, como 3.