Nesta página, explicamos como atualizar cargas de trabalho sem estado em execução em um cluster do Kubernetes de um dispositivo 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.
Antes de começar
Para executar comandos no cluster do Kubernetes em bare metal pré-configurado, verifique se você tem os seguintes recursos:
Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma.
Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes, se você não tiver um.
Use o caminho kubeconfig do cluster do Kubernetes para substituir
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 CLUSTER_KUBECONFIG -n NAMESPACE \
apply -f DEPLOYMENT_FILE
Substitua:
CLUSTER_KUBECONFIG
: o arquivo kubeconfig do cluster do Kubernetes que executa a implantação.NAMESPACE
: o namespace do projeto.DEPLOYMENT_FILE
: o nome do arquivo de manifestoDeployment
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 CLUSTER_KUBECONFIG -n NAMESPACE \
set image deployment DEPLOYMENT_NAME \
IMAGE=IMAGE:TAG
Substitua:
CLUSTER_KUBECONFIG
: o arquivo kubeconfig do cluster do Kubernetes que executa a implantação.NAMESPACE
: o namespace do projeto.DEPLOYMENT_NAME
: o nome do objetoDeployment
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 CLUSTER_KUBECONFIG \
-n NAMESPACE \
rollout undo deployment DEPLOYMENT_NAME
Substitua:
CLUSTER_KUBECONFIG
: o arquivo kubeconfig do cluster do Kubernetes que executa a implantação.NAMESPACE
: o namespace do projeto.DEPLOYMENT_NAME
: o nome do objetoDeployment
a ser revertido.
Para reverter para uma revisão específica, execute:
kubectl --kubeconfig CLUSTER_KUBECONFIG \
-n NAMESPACE \
rollout undo deployment DEPLOYMENT_NAME \
--to-revision=REVISION_NUMBER
Substitua:
CLUSTER_KUBECONFIG
: o arquivo kubeconfig do cluster do Kubernetes que executa a implantação.NAMESPACE
: o namespace do projeto.DEPLOYMENT_NAME
: o nome do objetoDeployment
a ser revertido.REVISION_NUMBER
: o número inteiro que define a revisão para reverter, como3
.