Atualizar cargas de trabalho sem estado

Nesta página, explicamos como atualizar cargas de trabalho sem estado em execução em um cluster do Kubernetes isolado do Google Distributed Cloud (GDC). À 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 no cluster do Kubernetes para refletir essas mudanças na carga de trabalho.

Esta página é destinada 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 para documentação isolada do GDC.

Antes de começar

Para executar comandos em um cluster do Kubernetes, verifique se você tem os seguintes recursos:

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

  2. Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes se você não tiver um.

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

Para receber as permissões necessárias para atualizar cargas de trabalho sem estado, peça ao administrador do IAM da organização para conceder a você o papel de administrador do namespace (namespace-admin) no namespace do projeto.

Atualizar a implantação

Para atualizar um objeto Deployment, execute:

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

Substitua:

  • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster que executa a implantação.

  • NAMESPACE: o namespace do projeto.

  • DEPLOYMENT_FILE: o nome do arquivo de manifesto Deployment a ser 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.

Há também várias outras maneiras de atualizar recursos na sua implantação.

Atualizar uma imagem de contêiner

Para mudar a imagem de um objeto Deployment, execute:

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

Substitua:

  • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster que executa a implantação.

  • NAMESPACE: o namespace do projeto.

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

  • IMAGE: o nome da imagem do contêiner.

  • TAG: a tag a ser atualizada para a imagem do contêiner.

Atualizar a imagem de uma implantação é útil para mudar campos de seleção ou recursos, como solicitações ou limites.

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

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

Reverter uma atualização

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

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

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

Substitua:

  • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster que executa a implantação.

  • NAMESPACE: o namespace do projeto.

  • DEPLOYMENT_NAME: o nome do objeto Deployment a ser revertido.

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

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

Substitua:

  • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster que executa a implantação.

  • NAMESPACE: o namespace do projeto.

  • DEPLOYMENT_NAME: o nome do objeto Deployment a ser revertido.

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