Antes de atualizar o Cloud Controller Manager (CCM) em um cluster Container Compute Service (ACS), o sistema pré-verifica se cada instância do Server Load Balancer (SLB) corresponde à especificação do Kubernetes Service. Incompatibilidades causam falha na pré-verificação e geram uma mensagem de erro que descreve a alteração pretendida.
As seções a seguir listam os erros de pré-verificação por categoria, com as causas raiz e as etapas de resolução.
Antes de começar
Consulte a documentação do Cloud Controller Manager para entender as mudanças introduzidas pela nova versão.
Não modifique nenhum Service durante a pré-verificação. Alterar um Service nesse processo pode gerar resultados imprecisos. Caso isso ocorra, reinicie a pré-verificação. Se a falha persistir, envie um ticket.
O CCM gerencia instâncias de SLB com base nas anotações do Kubernetes Service. Modificar manualmente instâncias de SLB no console do SLB enquanto o CCM as gerencia causa divergência de configuração, motivo comum de falhas na pré-verificação. Gerencie o balanceador de carga inteiramente por anotações do Kubernetes Service ou use um SLB gerenciado externamente. Não misture as duas abordagens.
Incompatibilidades de especificação e faturamento do SLB
Esses erros indicam que as especificações da instância de SLB, a largura de banda, o método de faturamento ou o método de medição não correspondem à anotação do Service.
modify the slb instance spec
Causa: As especificações da instância de SLB não correspondem ao valor na anotação do Service.
Resolução: Defina service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec na anotação do Service para corresponder às especificações reais da instância de SLB. Para obter detalhes, consulte Usar anotações para configurar instâncias CLB.
modify the slb internet spec
Causa: A largura de banda máxima ou o método de faturamento do SLB não corresponde à anotação do Service.
Resolução:
Se a largura de banda estiver incorreta, defina
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidthna anotação do Service para corresponder à instância de SLB. Para obter detalhes, consulte Criar uma instância CLB com pagamento por largura de banda.Se o método de faturamento estiver incorreto, defina
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-typena anotação do Service para corresponder à instância de SLB. Para obter detalhes, consulte Criar uma instância CLB com pagamento por largura de banda.
modify loadbalancer instance charge type
Causa: O método de medição do Service difere da instância de SLB.
Resolução:
Se você alterou manualmente o método de medição da instância Classic Load Balancer (CLB) para PayByCLCU no console do SLB, exclua a anotação
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-specdo Service.Se não alterou o método de medição no console do SLB, não modifique o Service durante a pré-verificação e execute-a novamente.
Incompatibilidades no ciclo de vida do Service
Esses erros indicam que o ciclo de vida da instância de SLB está dessincronizado com o Kubernetes Service.
create a new load balancer
Causa: Uma instância de SLB está sendo criada durante a criação ou sincronização do Service.
Resolução: Verifique se o Service está no estado Pending ou Running:
kubectl get svc <service-name> -n <namespace>
Substitua <service-name> pelo nome do Service e <namespace> pelo namespace do Service.
Se o Service estiver Running e possuir um endereço IP público, execute a pré-verificação novamente.
Se o Service estiver Pending, envie um ticket.
delete the load balancer
Causa: O Service não existe mais, mas a instância de SLB associada não foi excluída.
Resolução:
Se não precisar mais da instância de SLB, exclua-a no console do SLB.
Se ainda precisar da instância de SLB, envie um ticket.
Incompatibilidades na configuração do listener
Esses erros indicam incompatibilidade entre a configuração de porta do Service e a configuração do listener do SLB, geralmente causada por alterações manuais no listener via console do SLB.
stop listener / start listener
Causa: A porta do Service difere da porta do listener do SLB.
Resolução:
Se não modificou o listener no console do SLB, não altere o Service durante a pré-verificação e execute-a novamente.
-
Se modificou manualmente o listener no console do SLB, compare a configuração do Service com o listener do SLB, restaure as configurações do listener e execute a pré-verificação novamente:
kubectl -n <namespace> describe svc <service-name>
delete listener
Causa: A porta do Service difere da porta do listener do SLB.
Resolução:
Se não modificou o listener no console do SLB, não altere o Service durante a pré-verificação e execute-a novamente.
Se modificou manualmente o listener no console do SLB, exclua os listeners extras e execute a pré-verificação novamente.
create listener
Causa: A porta do Service difere da porta do listener do SLB.
Resolução:
Se não modificou o listener no console do SLB, não altere o Service durante a pré-verificação e execute-a novamente.
Se modificou manualmente o listener no console do SLB, adicione os listeners ausentes e execute a pré-verificação novamente.
update listener
Causa: A porta do Service difere da porta do listener do SLB.
Resolução:
Se não modificou o listener no console do SLB, não altere o Service durante a pré-verificação e execute-a novamente.
-
Se modificou manualmente o listener no console do SLB, compare a configuração do Service com as configurações do listener do SLB e restaure a configuração do listener (incluindo certificado, controle de acesso, verificações de integridade e cookies). Em seguida, execute a pré-verificação novamente. Para obter detalhes sobre as anotações que controlam essas configurações, consulte Usar anotações para configurar instâncias CLB.
kubectl -n <namespace> describe svc <service-name>
Incompatibilidades de servidor backend e grupo vServer
Esses erros indicam incompatibilidade entre o endpoint do Service e a configuração do servidor backend ou do grupo vServer na instância de SLB.
remove backend servers / add backend servers
Causa: O endpoint do Service difere da configuração do servidor backend do SLB.
Resolução:
Se não modificou a configuração do servidor backend no console do SLB, não altere o endpoint do Service durante a pré-verificação e execute-a novamente.
Se modificou manualmente a configuração do servidor backend no console do SLB, restaure a configuração do grupo vServer da instância de SLB e execute a pré-verificação novamente.
create VServerGroup / delete VServerGroup / add VServerGroup backends / remove VServerGroup backends
Causa: O endpoint do Service difere da configuração do grupo vServer na instância de SLB.
Resolução:
Se não modificou o grupo vServer no console do SLB, não altere o endpoint do Service durante a pré-verificação e execute-a novamente. Se o erro
create vServerGrouppersistir após várias pré-verificações, envie um ticket.Se modificou manualmente a configuração do servidor backend no console do SLB, restaure a configuração do grupo vServer da instância de SLB e execute a pré-verificação novamente.
Obter ajuda
Se a pré-verificação ainda falhar após seguir as etapas de resolução, envie um ticket. Inclua as seguintes informações para auxiliar na solução de problemas:
ID do cluster ACS
Versão atual e versão de destino do CCM
Mensagem exata do erro de pré-verificação
-
Saída YAML do Service:
kubectl get svc <service-name> -n <namespace> -o yaml ID da instância de SLB e sua configuração atual no console do SLB