Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Implantar serviços em vários clusters reutilizando balanceadores de carga existentes

Última atualização: Jun 27, 2026

O Cloud Controller Manager (CCM) permite associar uma instância existente do Server Load Balancer (SLB) a Services em um ou mais clusters ACK e a endpoints externos a esses clusters. Ao utilizar uma única instância de SLB como ponto de entrada unificado, você evita provisionar um balanceador de carga separado para cada cluster — o que é útil quando há necessidade de recuperação de desastres, alta disponibilidade ou isolamento de segurança entre clusters.

Este tópico aborda dois cenários:

  • Cenário 1: Distribuir tráfego entre um Service dentro do cluster e um endpoint externo (por exemplo, uma instância do Elastic Compute Service (ECS)).

  • Cenário 2: Distribuir tráfego entre Services em diferentes clusters ACK.

Pré-requisitos

Antes de começar, verifique se você possui:

Cenário 1: Distribuir tráfego para um Service do cluster e um endpoint externo

Associe um Service dentro do cluster e um endpoint externo à mesma instância de SLB. A instância de SLB roteia o tráfego para ambos. Durante o dimensionamento dos pods, o sistema os adiciona ou remove automaticamente do grupo de servidores virtuais sem afetar o endpoint externo.

image

Etapa 1: Obter o ID da instância de SLB

Faça login no console do CLB ou no console do NLB e anote o ID da sua instância de SLB existente.

Etapa 2: Criar um Service usando a instância de SLB existente

Usar o console do ACK

No console do ACK, crie um Service com as seguintes configurações:

  • Defina Service Type como SLB.

  • Selecione Use Existing Resource e escolha a instância de SLB na lista suspensa.

  • Marque a opção Overwrite Existing Listeners.

Usar kubectl

Adicione as seguintes annotations ao manifesto do seu Service:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: <LB_ID>  # The ID of the existing SLB instance.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"  # Set to true so CCM automatically creates listeners and vServer groups.
  labels:
    #...
  name: #...
spec:
  #...
Importante

Após a criação do Service, o CCM cria um grupo de servidores virtuais e um listener que escuta na porta do Service para a instância de SLB.

Etapa 3: Adicionar o endpoint externo ao grupo de servidores virtuais

Acesse o console do CLB ou o console do NLB e adicione seu endpoint externo (por exemplo, uma instância ECS) ao grupo de servidores virtuais criado pelo CCM. Para obter instruções, consulte Criar e gerenciar um grupo de servidores virtuais do CLB e Criar e gerenciar um grupo de servidores virtuais.

Depois de adicionar o endpoint externo, tanto os pods do cluster quanto o endpoint externo aparecem no grupo de servidores virtuais, permitindo definir seus pesos relativos.

Cenário 2: Distribuir tráfego entre Services em diferentes clusters ACK

Associe Services de diferentes clusters ACK à mesma instância de SLB. O CCM de cada cluster mantém o grupo de servidores virtuais sincronizado durante o dimensionamento dos pods, sem afetar os servidores de backend registrados por outros clusters.

image

Restrições

Analise estas restrições antes de prosseguir:

  • Todos os Services que compartilham a instância de SLB devem usar a mesma porta.

  • Services implantados no mesmo namespace em clusters diferentes devem ter nomes distintos.

  • Caso defina pesos de tráfego usando a annotation alibaba-cloud-loadbalancer-weight, gerencie os pesos exclusivamente por meio dessa annotation. Não modifique os pesos no console do SLB, pois alterações feitas no console não são sincronizadas de volta para os Services.

Etapa 1: Criar manualmente um listener e um grupo de servidores virtuais

Faça login no console do CLB ou no console do NLB e crie manualmente um listener e um grupo de servidores virtuais para a instância de SLB. Para obter instruções, consulte Listeners do CLB, Criar e gerenciar um grupo de servidores virtuais do CLB, Listeners do NLB e Criar e gerenciar um grupo de servidores.

É necessário criar manualmente o listener e o grupo de servidores virtuais para que todos os clusters possam compartilhar o mesmo grupo. Assim, o CCM de cada cluster registra seus próprios pods nesse grupo compartilhado.

Etapa 2: Criar os Services com annotations de grupo de servidores virtuais compartilhado

Em cada cluster, crie um Service com as annotations abaixo. Todos os Services devem referenciar a mesma instância de SLB e o mesmo grupo de servidores virtuais.

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "<YOUR_LB_ID>"            # The ID of the shared SLB instance.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: "<YOUR_VGROUP_ID>:<PORT>"  # The vServer group ID and the Service port, separated by a colon.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "100"                # (Optional) Traffic weight for backend pods of this Service. Valid values: 1–1000. Default: 100.
  labels:
    #...
  name: #...
spec:
  #...

Referência de annotations

Annotation

Tipo

Padrão

Descrição

alibaba-cloud-loadbalancer-id

string

ID da instância de SLB existente. O CCM associa o Service a esta instância em vez de criar uma nova.

alibaba-cloud-loadbalancer-vgroup-port

string

Mapeia a porta do Service para um grupo de servidores virtuais: <vgroup-id>:<port>. Para múltiplos mapeamentos de porta para grupo de servidores virtuais, separe-os por vírgulas — por exemplo, "<VGROUP_ID_1>:80, <VGROUP_ID_2>:443".

alibaba-cloud-loadbalancer-weight

integer

100

Peso de tráfego para todos os pods de backend deste Service. Valores válidos: 1–1000. Quando definido, o CCM usa este valor para registrar os pesos dos pods no grupo de servidores virtuais. Gerencie os pesos apenas através desta annotation, e não no console do SLB.

Após aplicar os manifestos dos Services, os pods de cada cluster aparecem no grupo de servidores virtuais compartilhado no console do SLB. Durante o dimensionamento da aplicação, o sistema adiciona ou remove seus pods do grupo automaticamente, sem afetar os pods pertencentes a outros Services.

Próximos passos

Referências