Resolva falhas nas verificações preliminares que impedem atualizações, migrações ou upgrades de componentes em clusters ACK.
Tipos de verificação
O ACK executa três tipos de verificações preliminares:
|
Tipo de verificação |
Quando é executada |
Aplica-se a |
|
Verificação de atualização de cluster |
Antes da atualização do cluster |
Todos os tipos de cluster |
|
Verificação de migração de cluster |
Antes da migração do cluster |
ACK Serverless Basic Edition para ACK Serverless Pro |
|
Verificação de componente |
Antes da atualização do componente |
Componentes individuais |
Verificação de atualização de cluster
Antes de atualizar um cluster, o ACK verifica APIs obsoletas, restrições de versão de componentes e alterações no runtime. A atualização só prossegue após a aprovação em todas as verificações.
A verificação abrange duas categorias:
Recursos do cluster: Recursos de nuvem, como instâncias do Server Load Balancer (SLB) e redes Virtual Private Cloud (VPC).
Componentes do cluster: Configurações de componentes, definições de aplicações e uso de APIs obsoletas.
Os itens de verificação variam conforme o tipo, a versão e o runtime do cluster. A página de verificação no console ACK é a fonte definitiva.
Recursos do cluster
|
Item de verificação |
O que valida |
|
APIServer SLB |
Se a instância SLB existe |
|
Se o status da instância SLB é Normal |
|
|
Se a configuração do listener SLB (porta e protocolo) é válida |
|
|
Se a configuração do grupo de servidores de backend do SLB é válida |
|
|
Se a configuração de controle de acesso do SLB está correta (aprovado se não estiver configurado) |
|
|
VPC |
Se a instância VPC existe |
|
Se o status da instância VPC é Normal |
|
|
vSwitch |
Se o vSwitch existe |
|
Se o status do vSwitch é Normal |
|
|
Se o vSwitch tem pelo menos dois endereços IP disponíveis |
Componentes do cluster
|
Item de verificação |
O que valida |
|
Kube Proxy Master |
Se o componente existe |
|
Kube Proxy Worker |
Se o componente existe |
|
APIService |
Se não existem APIServices indisponíveis |
|
Component versions |
Se as versões do Terway, CoreDNS, cloud-controller-manager (CCM), Nginx Ingress Controller e Metric Server atendem aos requisitos de atualização |
|
Deprecated APIs |
Se o cluster não usa APIs obsoletas |
Configuração do cluster
|
Item de verificação |
O que valida |
|
iptables |
Se a configuração do iptables é válida |
|
Operating system |
Se o SO suporta a atualização |
|
yum |
Se o gerenciador de pacotes yum funciona corretamente |
|
kubelet |
Se a configuração do kubelet atende ao esperado |
|
Container runtime |
Se o status do runtime Docker ou containerd é Normal |
|
Manifest |
Se o arquivo de manifesto atende ao esperado |
Verificação de migração de cluster
O ACK verifica o cluster antes de migrar da Serverless Basic Edition para a Serverless Pro. A migração só prossegue após a aprovação em todas as verificações.
Essa verificação abrange duas categorias:
Recursos do cluster: Instâncias SLB e redes VPC usadas pelo cluster.
Componentes do cluster: Configurações dos componentes, incluindo a existência de APIServices indisponíveis.
Os itens variam conforme o tipo, a versão e o runtime do cluster. A página de verificação no console ACK é a fonte definitiva.
Recursos do cluster
|
Item de verificação |
O que valida |
|
APIServer SLB |
Se a instância SLB existe |
|
Se o status da instância SLB é Normal |
|
|
Se a configuração do listener SLB (porta e protocolo) é válida |
|
|
Se a configuração do grupo de servidores de backend do SLB é válida |
|
|
Se a configuração de controle de acesso do SLB está correta (aprovado se não estiver configurado) |
|
|
VPC |
Se a instância conectada à VPC existe |
|
Se o status da instância conectada à VPC é Normal |
|
|
vSwitch |
Se o vSwitch existe |
|
Se o status do vSwitch é Normal |
|
|
Se o vSwitch tem pelo menos dois endereços IP disponíveis |
Componentes do cluster
|
Item de verificação |
O que valida |
|
Kube Proxy Master |
Se o componente existe |
|
Kube Proxy Worker |
Se o componente existe |
|
APIService |
Se não existem APIServices indisponíveis |
Verificação de componente
O ACK verifica cada componente antes de atualizá-lo. A atualização só prossegue após a aprovação em todas as verificações.
Os itens variam conforme o tipo, a versão e o runtime do componente. A página de verificação no console ACK é a fonte definitiva.
|
Componente |
Item de verificação |
O que valida |
|
cloud-controller-manager |
Addon_CCM |
Se a atualização do componente não causa alterações no SLB |
|
Component_Block_Version |
Se a versão do CCM pode ser atualizada |
|
|
csi-plugin |
DaemonSet_Annotation |
Se as anotações do DaemonSet atendem ao esperado |
|
Csi_Driver_Attributes |
Se as propriedades do Container Storage Interface (CSI) Driver atendem aos requisitos |
|
|
csi-provisioner |
Stateful_Set_Exist |
Se o recurso é um StatefulSet |
|
Deployment_Annotation |
Se as anotações do Deployment atendem ao esperado |
|
|
Storage_Class_Attributes |
Se as propriedades da StorageClass atendem aos requisitos |
|
|
nginx-ingress-controller |
Deployment_Healthy |
Se o Deployment do Nginx Ingress está íntegro |
|
Deployment_Not_Under_HPA |
Se nenhum Horizontal Pod Autoscaler (HPA) está configurado para o Deployment |
|
|
Deployment_Not_Modified |
Se o Deployment não foi modificado |
|
|
Nginx_Ingress_Pod_Error_Log |
Se o Nginx não tem logs de erro |
|
|
LoadBalancer_Service_Healthy |
Se o serviço Nginx está íntegro |
|
|
Nginx_Ingress_Configuration |
Se o Ingress não tem configurações incompatíveis |
|
|
aliyun-acr-credential-helper |
RamRole_Exist |
Se o componente tem a função RAM AliyunCSManagedAcrRole concedida |
|
ack-cost-exporter |
RamRole_Exist |
Se o componente tem a função RAM AliyunCSManagedCostRole concedida |
Corrigir verificações com falha
Falhas comuns de verificação e resoluções:
|
Verificação com falha |
Resolução |
|
Versão do componente muito antiga |
Atualize o componente. Consulte Gerenciar componentes. |
|
APIService indisponível |
Siga as etapas abaixo. |
|
Cluster contém APIs obsoletas |
Consulte APIs obsoletas. |
Para resolver um APIService indisponível:
-
Localize o APIService indisponível.
kubectl -n kube-system get apiservices | grep -i false -
Confirme se o APIService ainda é necessário.
ImportanteExcluir um APIService por engano pode causar exceções no cluster. Verifique sua finalidade antes de prosseguir.
-
Se o APIService não for mais necessário, exclua-o.
kubectl -n kube-system delete apiservices ${your-abnormal-apiservice-name}
APIs obsoletas
Em clusters com Kubernetes 1.20 ou superior, a verificação pré-atualização analisa os logs de auditoria do dia anterior para detectar o uso de APIs obsoletas.
Como funciona a detecção de APIs obsoletas
Ao atualizar do Kubernetes 1.20 para o 1.22, o sistema examina os logs de auditoria do cluster 1.20 em busca de APIs obsoletas:
Se houver APIs obsoletas, o resultado será apenas uma notificação, sem bloquear a atualização.
Continuar usando APIs obsoletas após a atualização para o 1.22 pode gerar riscos de segurança.
As notificações sobre APIs obsoletas não bloqueiam a atualização. Após a atualização, os recursos de APIs obsoletas são substituídos por novos. Não crie recursos com APIs obsoletas posteriormente.
Categorias de APIs obsoletas
As APIs obsoletas são classificadas pela origem da solicitação (User Agent).
|
Categoria |
Descrição |
Exemplos |
Ação necessária |
|
core |
Componentes principais do Kubernetes. O ACK os atualiza automaticamente durante a atualização do cluster. |
apiserver, scheduler, kube-controller-manager |
Nenhuma — não exibido na página de verificação |
|
ack |
Componentes gerenciados pelo ACK. O ACK exibe estes itens e orienta você a atualizá-los. |
metrics-server, nginx-ingress-controller, coredns |
Atualize via Operations > Add-ons no console ACK |
|
opensource |
Componentes da comunidade open source. O ACK exibe uma lista parcial. Componentes não reconhecidos aparecem como unknown. |
rancher, elasticsearch-operator |
Atualize conforme necessário |
|
unknown |
Componentes com origens não reconhecidas. |
kubectl, agent, Go-http-client, okhttp |
Atualize conforme necessário |
Atualizar componentes do ACK para limpar avisos de APIs obsoletas
Acesse Operations > Add-ons no console ACK para atualizar os componentes. Os avisos de APIs obsoletas para esses componentes serão removidos no dia seguinte à atualização.console ACK
Se os resultados da verificação incluírem coredns, o CoreDNS pode estar usando APIs obsoletas no Kubernetes 1.24 ou superior. Consulte Por que o CoreDNS está usando uma API obsoleta?.