Esta página explica como atualizar cargas de trabalho sem estado em execução em um cluster do Kubernetes do appliance 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 subjacente 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, responsáveis por atualizar as cargas de trabalho de aplicativos da organização.
Antes de começar
Para concluir as tarefas neste documento, peça as permissões necessárias e prepare o ambiente.
Solicitar papéis do IAM
Para criar, excluir, editar ou visualizar cargas de trabalho sem estado em um cluster do Kubernetes, peça ao administrador do IAM da organização para conceder a você o papel de administrador do namespace (namespace-admin). Esse papel está vinculado ao namespace do projeto.
Preparar o ambiente
Para executar comandos no cluster do Kubernetes bare metal pré-configurado, verifique se você tem os seguintes recursos:
Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma qual é o nome do cluster.
Faça login e gere o arquivo kubeconfig do cluster do Kubernetes, se você não tiver um.
Use o caminho kubeconfig do cluster do Kubernetes para substituir
CLUSTER_KUBECONFIGnestas instruções.
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 manifestoDeploymenta 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 implantação.
Atualizar uma imagem do 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 objetoDeploymentque contém a imagem.IMAGE: o nome da imagem do contêiner.TAG: a tag a ser atualizada para a imagem do contêiner.
A atualização da imagem de uma implantação é útil para mudar campos ou recursos do seletor, 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 lançamento de um objeto Deployment é preservado no sistema para que você possa 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 objetoDeploymenta 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 objetoDeploymenta ser revertido.REVISION_NUMBER: o número inteiro que define a revisão para a qual reverter, como3.