Todos os produtos
Search
Central de documentação

Container Compute Service:Troubleshoot Service issues

Última atualização: Jun 29, 2026

Saiba como diagnosticar e resolver problemas em Services do tipo LoadBalancer em clusters ACS.

Informações básicas

Ao criar um Service com Type=LoadBalancer, o ACS Cloud Controller Manager (CCM) cria e configura automaticamente os recursos do SLB, incluindo a instância, os listeners e os grupos de servidores de backend. As políticas de atualização automática do SLB estão detalhadas em Considerações para configurar um Service LoadBalancer.

Procedimento

Verifique se a versão do CCM é 1.9.3.276-g372aa98-aliyun ou posterior. Atualize o CCM. Notas de versão do CCM: Cloud Controller Manager.

Service troubleshooting process

  1. Execute o comando abaixo para localizar o Service associado à instância SLB:

    kubectl get svc -A |grep -i LoadBalancer|grep ${XXX.XXX.XXX.XXX}  #XXX.XXX.XXX.XXX is the IP address of the SLB instance.
  2. Execute o comando a seguir para verificar eventos de erro no Service:

    kubectl -n {your-namespace} describe svc {your-svc-name}
    Importante

    Caso não apareçam eventos de erro, confirme que a versão do CCM é 1.9.3.276-g372aa98-aliyun ou superior. Atualize o CCM.

  3. Se o problema persistir, entre em contato com o grupo de suporte do ACS no DingTalk.

Erros e soluções de Service

A tabela a seguir lista erros comuns de Service e suas respectivas soluções.

Mensagem de erro

Descrição e solução

The loadbalancer does not support backend servers of eni type

Instâncias SLB de recursos compartilhados não suportam servidores de backend do tipo ENI.

Solução: Para usar servidores de backend ENI, crie uma instância SLB de alto desempenho adicionando a anotação annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small" ao Service.

Importante

Certifique-se de que as anotações correspondam à sua versão do CCM. As anotações suportadas por versão estão listadas em Adicionar anotações ao arquivo YAML de um Service para configurar instâncias CLB.

There are no available nodes for LoadBalancer

Nenhum servidor de backend está associado à instância SLB. Verifique se existem pods associados ao Service e se estão em execução normal.

Soluções:

  • Caso não haja pods associados ao Service, associe os pods da sua aplicação.

  • Se os pods associados não estiverem funcionando corretamente, solucione o problema. Consulte Solução de problemas de Pod.

  • Se os pods estiverem operacionais, mas nenhum servidor de backend estiver associado, verifique se eles estão em nós master. Nesse caso, migre-os para nós worker. Caso contrário, entre em contato com o grupo de suporte do ACS no DingTalk.

  • alicloud: not able to find loadbalancer named [%s] in openapi, but it's defined in service.loaderbalancer.ingress. this may happen when you removed loadbalancerid annotation

  • alicloud: can not find loadbalancer, but it's defined in service

O sistema não consegue localizar a instância SLB associada ao Service.

Solução: Faça login no console SLB e pesquise a instância SLB na região do Service com base no EXTERNAL-IP.

  1. Se a instância SLB não existir e o Service não for mais usado, exclua o Service.

  2. Caso a instância SLB exista, execute as etapas abaixo:

    1. Se a instância SLB foi criada no console SLB, adicione a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id ao Service. As anotações suportadas estão listadas em Adicionar anotações ao arquivo YAML de um Service para configurar instâncias CLB.

    2. Se a instância SLB foi criada automaticamente pelo CCM, verifique se ela possui o rótulo kubernetes.do.not.delete. Caso não possua, adicione este rótulo. Consulte Como renomear uma instância SLB ao usar uma versão anterior do CCM?.

ORDER.ARREARAGE Message: The account is arrearage.

Sua conta possui pagamentos pendentes.

PAY.INSUFFICIENT_BALANCE Message: Your account does not have enough balance.

O saldo da conta é insuficiente.

Status Code: 400 Code: Throttlingxxx

O limitador de taxa da API foi acionado para o SLB.

Soluções:

  1. Acesse a página Gerenciamento de Cotas no console SLB e verifique se as cotas de recursos do SLB são suficientes.

  2. Execute o comando abaixo para verificar erros no Service. Se ocorrerem erros, use a tabela acima para solucioná-los.

    kubectl -n {your-namespace} describe svc {your-svc-name}

Status Code: 400 Code: RspoolVipExist Message: there are vips associating with this vServer group.

Não é possível excluir o listener associado ao grupo vServer.

Soluções:

  1. Verifique se a anotação do Service contém o ID da instância SLB. Exemplo: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: {your-slb-id}.

    Se a anotação do Service contiver o ID da instância SLB, significa que a instância está sendo reutilizada.

  2. Faça login no console SLB e exclua o listener usando a port do Service. Para excluir um listener SLB, siga Gerenciar regras de encaminhamento para um listener.

Status Code: 400 Code: NetworkConflict

A instância SLB interna reutilizada e o cluster não estão na mesma VPC.

Solução: Garanta que sua instância SLB e o cluster estejam implantados na mesma VPC.

Status Code: 400 Code: VSwitchAvailableIpNotExist Message: The specified VSwitch has no available ip.

O vSwitch não possui endereços IP disponíveis.

Solução: Use service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}" para especificar outro vSwitch na mesma VPC.

The specified Port must be between 1 and 65535.

O campo targetPort não aceita valores do tipo STRING no modo ENI.

Solução: Defina o campo targetPort no arquivo YAML do Service com um valor INTEGER ou atualize o CCM. Atualize o CCM.

Status Code: 400 Code: ShareSlbHaltSales Message: The share instance has been discontinued.

Por padrão, versões antigas do CCM criam instâncias SLB de recursos compartilhados, que não estão mais disponíveis para compra.

Solução: Atualize o CCM.

can not change ResourceGroupId once created

Não é possível alterar o grupo de recursos de uma instância SLB após sua criação.

Solução: Remova a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id:"rg-xxxx" do Service.

can not find eniid for ip x.x.x.x in vpc vpc-xxxx

O endereço IP especificado da ENI não foi encontrado na VPC.

Solução: Verifique se a anotação service.beta.kubernetes.io/backend-type: eni foi adicionada ao Service. Se estiver presente, confirme se o Flannel é o plugin de rede do cluster. Caso use Flannel, remova a anotação do Service, pois o Flannel não suporta o modo ENI.

  • The operation is not allowed because the instanceChargeType of loadbalancer is PayByCLCU.

  • User does not have permission modify InstanceChargeType to spec.

Não é permitido alterar o método de faturamento da instância SLB usada por um Service de pagamento conforme o uso para pagamento por especificação.

Soluções:

  • Remova a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec do Service.

  • Se a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type estiver presente no Service, defina seu valor como PayByCLCU.

SyncLoadBalancerFailed the loadbalancer xxx can not be reused, can not reuse loadbalancer created by kubernetes.

Uma instância SLB criada pelo CCM está sendo reutilizada.

Soluções:

  1. Verifique o arquivo YAML do Service relacionado e anote o ID da instância SLB presente na anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id.

  2. Solucione o problema com base no status do Service.

    • Se o Service estiver no estado Pending, altere o valor da anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id para o ID de uma instância SLB criada manualmente no console CLB.

    • Caso o Service não esteja no estado Pending, proceda da seguinte forma:

      • Se o endereço IP da instância SLB for igual aos endereços IP externos do Service, remova a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id.

      • Se o endereço IP da instância SLB diferir dos endereços IP externos do Service, acesse o console CLB, selecione a região do cluster, localize as instâncias SLB pelo IP externo do Service e altere o valor da anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id para o ID de uma instância SLB criada manualmente. Se nenhuma instância correspondente for encontrada, altere o valor da anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id para o ID de uma instância SLB criada manualmente no console SLB. Em seguida, recrie o Service.

alicloud: can not change LoadBalancer AddressType once created. delete and retry

Não é possível alterar o tipo de uma instância SLB após a criação.

Solução: Recrie o Service relacionado.

the loadbalancer lb-xxxxx can not be reused, service has been associated with ip [xxx.xxx.xxx.xxx], cannot be bound to ip [xxx.xxx.xxx.xxx]

Não é possível associar uma instância SLB a um Service que já esteja vinculado a outra instância SLB.

Solução: Não é possível reutilizar uma instância SLB existente apenas modificando o valor da anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id. Para alterar a instância SLB associada a um Service, é necessário excluir e recriar o Service.

Solução de problemas

A tabela abaixo lista cenários comuns de solução de problemas e suas soluções.

Categoria

Problema

Solução

Problemas ao acessar uma instância SLB

A instância SLB não distribui o tráfego uniformemente.

A instância SLB não distribui o tráfego uniformemente

Ocorre o erro 503 ao acessar a instância SLB durante atualizações da aplicação.

Ocorre o erro 503 ao acessar a instância SLB durante atualizações da aplicação

Não é possível acessar a instância SLB de dentro do cluster.

O endereço IP da instância SLB associada ao Service LoadBalancer não pode ser acessado de dentro do cluster

Não é possível acessar a instância SLB de fora do cluster.

A instância SLB não pode ser acessada de fora do cluster

O erro The plain HTTP request was sent to HTTPS port ocorre ao enviar uma requisição para uma porta HTTPS

Ocorrem erros ao enviar uma requisição para uma porta HTTPS

Problemas relacionados às configurações do SLB

As anotações do Service não surtem efeito.

O que fazer se as anotações de um Service não surtirem efeito?

A configuração da instância SLB foi modificada.

Por que a configuração de uma instância SLB foi modificada?

Falha ao reutilizar uma instância SLB existente.

Por que o sistema falha ao usar uma instância SLB existente para mais de um Service?

Nenhum listener é criado ao reutilizar uma instância SLB existente.

Por que nenhum listener é criado ao reutilizar uma instância SLB existente?

O endpoint do Service difere daquele especificado para o servidor de backend da instância SLB.

O que fazer se os grupos vServer de uma instância SLB não forem atualizados?

Problemas relacionados à exclusão do SLB

A instância SLB foi excluída.

Quando uma instância SLB é excluída automaticamente?

A instância SLB não é excluída junto com o Service.

Quando uma instância SLB é excluída automaticamente?

A instância SLB não distribui o tráfego uniformemente

Causa

O algoritmo de agendamento da instância SLB está inadequado.

Sintoma

O tráfego não é distribuído de forma equilibrada entre os servidores de backend da instância SLB.

Solução

  • Se o seu Service estabelecer conexões de longa duração, defina o algoritmo de agendamento da instância SLB para Weighted Least Connections (WLC) adicionando a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler:"wlc".

Ocorre o erro 503 ao acessar a instância SLB durante atualizações da aplicação

Causa

A drenagem de conexões não está configurada para o listener do SLB ou o encerramento graceful não está configurado para o pod.

Sintoma

O erro 503 surge ao acessar a instância SLB enquanto a aplicação está sendo atualizada.

Solução

  1. Adicione a anotação service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain para configurar a drenagem de conexões no listener do SLB. Detalhes sobre anotações estão disponíveis em Operações comuns para gerenciar listeners.

  2. Configure os parâmetros preStop e readinessProbe do pod conforme o modo de rede usado.

    • O readinessProbe verifica se o container está pronto para receber tráfego. O pod só é adicionado ao endpoint após passar na sonda de prontidão e, então, vinculado à instância SLB. Defina um intervalo de sondagem, período de atraso e limiar de falha adequados para o readinessProbe — aplicações com inicialização lenta podem reiniciar repetidamente se os limiares forem muito curtos.

    • Defina o preStop com o tempo necessário para o pod processar as requisições restantes. Configure o terminationGracePeriodSeconds para pelo menos 30 segundos a mais que o preStop.

    Exemplo de configuração de Pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      namespace: default
    spec:
      containers:
      - name: nginx
        image: nginx
        # Liveness probe
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: 80
          timeoutSeconds: 1
        # Readiness probe
        readinessProbe:
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: 80
          timeoutSeconds: 1
        # Graceful shutdown
        lifecycle:
          preStop:
            exec:
              command:
              - sleep
              - "30"
      terminationGracePeriodSeconds: 60

A instância SLB não pode ser acessada de fora do cluster

Causa

Regras de ACL foram configuradas para a instância SLB ou a instância não está operando corretamente.

Sintoma

Impossibilidade de acessar a instância SLB externamente ao cluster.

Solução

  1. Execute o comando abaixo para consultar eventos do Service e identificar erros. Erros e soluções de Service.

    kubectl -n {your-namespace} describe svc {your-svc-name}
  2. Verifique se existem regras de ACL configuradas na instância SLB.

    Caso haja regras de ACL, confirme se o endereço IP do cliente está permitido. Detalhes sobre configuração de ACL encontram-se em Controle de acesso.

  3. Confirme se a instância SLB está associada a um grupo vServer.

    Se não houver grupo vServer associado, verifique se os pods da aplicação estão vinculados ao Service e funcionando normalmente. Caso apresentem falhas, solucione o problema. Solução de problemas de Pod.

  4. Verifique se os listeners do SLB detectaram servidores de backend não saudáveis.

    Se houver servidores não saudáveis, verifique a integridade dos pods da aplicação. Para detalhes sobre verificações de saúde do SLB, consulte Executar um script de verificação de saúde.

  5. Persistindo os problemas, entre em contato com o grupo de suporte do ACS no DingTalk.

Serviços HTTPS de backend não podem ser acessados

Causa

Após especificar o certificado na instância SLB, ela descriptografa as requisições HTTPS e encaminha requisições HTTP para os pods de backend.

Sintoma

Falha ao acessar serviços HTTPS no backend.

Solução

Defina o targetPort como uma porta HTTP no Service. Por exemplo, se a porta HTTPS for 443 no Service NGINX abaixo, altere o valor de targetPort para 80.

Exemplos:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer