Neste documento, explicamos como fazer upgrade da versão do Kubernetes de um cluster do Kubernetes isolado do Google Distributed Cloud (GDC). É preciso planejar upgrades rotineiros para seus clusters e garantir que eles incorporem os recursos e as correções mais recentes do Kubernetes.
Este documento é destinado a públicos como administradores de TI, engenheiros de segurança e administradores de rede no 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
Faça o download e instale a CLI gdcloud.
Instale a CLI kubectl. Para mais informações, consulte Instalar componentes.
Gere um arquivo kubeconfig para o servidor da API de gerenciamento na zona de destino. Para mais informações, consulte Recursos zonais de cluster do Kubernetes.
Para receber as permissões necessárias para listar as versões de upgrade disponíveis, peça ao administrador do IAM da organização para conceder a você o papel de Administrador de cluster de usuário (
user-cluster-admin).Se você gerencia um cluster padrão e não consegue receber a função de administrador do cluster de usuário do grupo de administradores da plataforma, peça a eles que forneçam a lista de versões de upgrade do Kubernetes disponíveis.
Para receber as permissões necessárias para configurar um upgrade de cluster, peça ao administrador do IAM da organização para conceder a você o papel de Administrador de cluster padrão (
standard-cluster-admin).
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 do Kubernetes disponíveis 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 da 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 da API de gerenciamento.CLUSTER_NAME: o nome do cluster do Kubernetes a 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.
Monitore o recurso
UserClusterUpgradeRequestpara verificar o upgrade do cluster:kubectl --kubeconfig MANAGEMENT_API_SERVER \ describe userclusterupgraderequest CLUSTER_NAME \ -n CLUSTER_NAMESPACESubstitua:
MANAGEMENT_API_SERVER: o caminho para o arquivo kubeconfig do servidor da API de gerenciamento.CLUSTER_NAME: o nome do cluster do Kubernetes a 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 está 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 um status deTruee 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 os subcomponentes do cluster após o upgrade
Depois que o cluster do Kubernetes for atualizado, recomendamos confirmar se todos os subcomponentes do cluster estão íntegros.
Verifique se há falhas de subcomponentes no cluster:
Verifique se não há subcomponentes que mostrem uma mensagem
ReconciliationError:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get subcomponent -n CLUSTER_NAME -o json | jq -r \ '.items[] | select(.status.conditions[]?.reason == "ReconciliationError") | select(.status.featureDisabled != true) | "Sub-Component: \(.metadata.name) - \(.status.conditions[]?.message)"'Se a saída retornar subcomponentes, entre em contato com seu grupo de operadores de infraestrutura para receber mais ajuda.
Verifique se não há subcomponentes que mostrem uma mensagem
Reconciling:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get subcomponent -n CLUSTER_NAME -o json | jq -r \ '.items[] | select(.status.conditions[]?.reason == "Reconciling") | select(.status.featureDisabled != true) | select( "\(.status)" | contains("PreinstallPending") | not) | "Sub-Component: \(.metadata.name) - \(.status.conditions[]?.message)"'Para clusters do Kubernetes com três nós de plano de controle e três nós de trabalho, o tempo de upgrade é de aproximadamente 20 minutos. Se você ainda vir subcomponentes no estado
Reconcilingapós 20 minutos, entre em contato com seu grupo de operadores de infraestrutura para receber mais ajuda.