Neste documento, explicamos como fazer upgrade da versão do Kubernetes de um cluster do Kubernetes do Google Distributed Cloud (GDC) com isolamento físico. É preciso planejar upgrades de rotina para os clusters para garantir que eles incorporem os recursos e as correções mais recentes do Kubernetes.
Este documento é destinado a administradores de TI, engenheiros de segurança e administradores de rede do grupo de administradores de plataforma, que são responsáveis por gerenciar recursos do Kubernetes na organização. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Para concluir as tarefas neste documento, solicite as permissões necessárias e prepare seu ambiente.
Solicitar papéis do IAM
Você precisa ter papéis específicos para receber as permissões necessárias para fazer upgrade do cluster do Kubernetes. É preciso solicitar papéis com escopo para seu projeto e organização.
papéis na organização
Para listar as versões de upgrade disponíveis para um cluster do Kubernetes, peça ao
administrador da organização do IAM para conceder a você o papel de administrador do cluster de usuário
(user-cluster-admin). Esse papel não está vinculado a um namespace.
Se você gerencia um cluster padrão e não consegue receber o papel de administrador do cluster de usuário do grupo de administradores da plataforma, peça que eles forneçam a lista de versões de upgrade do Kubernetes disponíveis.
Papéis do projeto
Para criar, excluir, editar ou visualizar upgrades de cluster, peça ao administrador do projeto do IAM para conceder a você o papel de administrador de cluster padrão (standard-cluster-admin). Esse papel está vinculado ao namespace do projeto.
Preparar o ambiente
Para executar comandos em um cluster do Kubernetes usando a API, verifique se você tem os seguintes recursos:
Faça o download e instale a CLI gdcloud.
Localize o nome do cluster do Kubernetes ou pergunte a um membro do grupo de administradores da plataforma qual é o nome do cluster.
Use o nome do cluster do Kubernetes para substituir
CLUSTER_NAMEnestas instruções.Faça login e gere o arquivo kubeconfig para o servidor de API de gerenciamento.
Use o caminho kubeconfig do servidor de API de gerenciamento para substituir
MANAGEMENT_API_SERVERnestas instruções.
Fazer upgrade de um cluster do Kubernetes
Use a API
UserClusterUpgradeRequest
para fazer upgrade de um cluster do Kubernetes.
Para fazer upgrade de um cluster do Kubernetes usando a API, siga estas etapas:
Liste as versões de upgrade disponíveis do Kubernetes imprimindo o valor
kubernetesVersiondos objetosUserClusterMetadata:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get userclustermetadata -o=custom-columns='TARGET_VERSION:.spec.kubernetesVersion'Substitua
MANAGEMENT_API_SERVERpelo caminho para o arquivo kubeconfig do servidor de API de gerenciamento.O comando retorna uma lista de versões disponíveis do Kubernetes:
TARGET_VERSION 1.30.1000-gke.85Anote a versão do Kubernetes da saída anterior para a qual você quer fazer upgrade do cluster. O
targetVersionespecificado na solicitação de upgrade na próxima etapa precisa ser uma dessas versões disponíveis.Solicite o upgrade do cluster criando um recurso
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: cluster.gdc.goog/v1 kind: UserClusterUpgradeRequest metadata: name: CLUSTER_NAME namespace: CLUSTER_NAMESPACE spec: clusterRef: name: CLUSTER_NAME targetVersion: TARGET_VERSION EOFSubstitua:
MANAGEMENT_API_SERVER: o caminho para o arquivo kubeconfig do servidor de API de gerenciamento.CLUSTER_NAME: o nome do cluster do Kubernetes que será atualizado, comouser-vm-2.CLUSTER_NAMESPACE: o namespace do cluster do Kubernetes. Para clusters compartilhados, use o namespaceplatform. Para clusters padrão, use o namespace do projeto do cluster.TARGET_VERSION: a versão de destino do upgrade identificada na etapa anterior, como1.30.1000-gke.85.
O tempo médio de upgrade de um cluster do Kubernetes é de aproximadamente 20 minutos.
Verifique o upgrade do cluster monitorando o recurso
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER \ describe userclusterupgraderequest CLUSTER_NAME \ -n CLUSTER_NAMESPACESubstitua:
MANAGEMENT_API_SERVER: o caminho para o arquivo kubeconfig do servidor de API de gerenciamento.CLUSTER_NAME: o nome do cluster do Kubernetes que será atualizado, comouser-vm-2.CLUSTER_NAMESPACE: o namespace do cluster do Kubernetes. Para clusters compartilhados, use o namespaceplatform. Para clusters padrão, use o namespace do projeto do cluster.
Inspecione a seção
Specda saída. Ele contémCurrent VersioneTarget Version. O upgrade ainda estará em andamento seCurrent VersioneTarget Versionforem diferentes.Spec: ... Current Version: 1.29.500-gke.60 Target Version: 1.30.1000-gke.85 Status: Conditions: - Message: Upgrade is in progress Reason: UpgradeInProgress Status: "False" Type: SucceededO upgrade será concluído e bem-sucedido quando a condição
Succeededtiver o statusTruee oCurrent Versioncorresponder aoTarget Version.Se a condição
Succeededtiver o statusFalse, o upgrade falhou. Se você encontrar erros relacionados ao upgrade do cluster do Kubernetes, entre em contato com o grupo de operadores de infraestrutura para receber mais ajuda.
Verificar o status do cluster após o upgrade
Depois que o cluster do Kubernetes for atualizado, confirme se o cluster e os componentes dele estão íntegros inspecionando o status do recurso Cluster:
Veja os campos
status.conditionsestatus.componentsConditionsdo recursoCluster:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get cluster CLUSTER_NAME \ -n CLUSTER_NAMESPACE -o yamlSubstitua:
MANAGEMENT_API_SERVER: o caminho para o arquivo kubeconfig do servidor de API de gerenciamento.CLUSTER_NAME: o nome do cluster do Kubernetes, comouser-vm-2.CLUSTER_NAMESPACE: o namespace do cluster do Kubernetes. Para clusters compartilhados, use o namespaceplatform. Para clusters padrão, use o namespace do projeto do cluster.
Na saída, verifique o seguinte na seção
status:- Em
status.conditions, verifique se a condiçãoReadytem umstatusdeTruee se a condiçãoReconcilingtem umstatusdeFalse. - Em
status.componentsConditions, verifique se a condiçãoReadytem umstatusdeTrue, se a condiçãoReconcilingtem umstatusdeFalsee se nenhuma condição mostra umreasondeReconciliationErrorouReconciling.
Para clusters do Kubernetes com três nós do plano de controle e três nós de trabalho, o upgrade leva aproximadamente 20 minutos. Se o cluster ou os componentes dele permanecerem em um estado
Reconcilingapós 20 minutos ou se alguma condição mostrarReconciliationError, entre em contato com o grupo de operadores de infraestrutura para receber mais ajuda.- Em