Atualize cargas de trabalho sem estado

Esta página explica como atualizar cargas de trabalho sem estado existentes executadas num cluster do Kubernetes de um dispositivo 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 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.

Antes de começar

Para executar comandos no cluster do Kubernetes bare metal pré-configurado, 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 do Kubernetes, se não tiver um.

  3. Use o caminho kubeconfig do cluster Kubernetes para substituir 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 CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f DEPLOYMENT_FILE

Substitua o seguinte:

  • CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster do Kubernetes 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 CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

Substitua o seguinte:

  • CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster do Kubernetes 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 CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME

Substitua o seguinte:

  • CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster do Kubernetes 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 CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

Substitua o seguinte:

  • CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster do Kubernetes 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.