Todos os produtos
Search
Central de documentação

Elastic Container Instance:Crie pods em várias zonas de disponibilidade

Última atualização: Jun 27, 2026

Falhas na criação de pods ECI podem ocorrer ao dimensionar seu negócio para picos de tráfego ou executar jobs em grande escala. As causas mais comuns incluem estoque insuficiente de instâncias em uma zona de disponibilidade ou endereços IP esgotados em um vSwitch. Para aumentar a taxa de sucesso na criação e garantir a continuidade dos negócios, crie pods ECI em várias zonas de disponibilidade.

Pré-requisitos

É necessário ter criado vários vSwitches em diferentes zonas de disponibilidade dentro da VPC de destino.

Informações de fundo

Ao criar uma instância ECI, especifique várias zonas de disponibilidade fornecendo múltiplos vSwitches. O sistema distribui aleatoriamente as solicitações entre as zonas especificadas para balancear a carga. Caso uma zona apresente estoque insuficiente, o sistema tenta automaticamente criar a instância em outra zona indicada.

As seguintes limitações se aplicam ao especificar várias zonas de disponibilidade (vSwitches):

  • Todos os vSwitches especificados devem pertencer à mesma VPC.

  • O limite máximo é de 10 vSwitches.

Combinar várias zonas de disponibilidade com diversos tipos de instância aumenta ainda mais a taxa de sucesso na criação.

Configuração

Defina várias zonas de disponibilidade no nível do cluster ou para um pod ECI específico:

  • Cluster: Especifique vários vSwitches para o cluster. Essa configuração se aplica a todos os pods ECI dentro dele.

  • Pod ECI: Indique vários vSwitches durante a criação de um pod ECI. Esta definição afeta apenas esse pod específico.

Configuração de novo cluster

Antes de criar um cluster, recomendamos provisionar vários vSwitches em diferentes zonas de disponibilidade na VPC planejada. Durante a criação do cluster, configure múltiplos vSwitches para habilitar o recurso de multizona. O exemplo abaixo demonstra a criação de um cluster ACK Serverless no console do Container Service for Kubernetes (ACK).

Na seção Virtual Private Cloud, selecione Use Existing e especifique a VPC de destino. Em seguida, na seção vSwitch, escolha vários vSwitches de diferentes zonas de disponibilidade (é possível selecionar de 1 a 10 vSwitches, e o sistema marca as zonas Recommended).

Configuração de cluster existente

O método de configuração depende da versão do VK (componente ack-virtual-node).

  • Se a versão do VK for v2.0.0.90-15deb126e-aliyun ou posterior, modifique o eci-profile.

  • Para versões anteriores a v2.0.0.90-15deb126e-aliyun, altere a variável de ambiente.

Eci-profile

Para utilizar várias zonas de disponibilidade, edite o ConfigMap chamado eci-profile e anexe os IDs dos vSwitches ao campo data.vSwitchIds.

  1. Edite o eci-profile.

    kubectl edit cm -n kube-system eci-profile
  2. Modifique o valor do campo vSwitchIds.

    Anexe os IDs dos vSwitches separados por vírgulas.

    data:
      enableClusterIp: "true"
      enableHybridMode: "false"
      enablePrivateZone: "false"
      resourceGroupId: ""
      securityGroupId: sg-2ze0b9o8pjjzts4h****
      selectors: ""
      vSwitchIds: vsw-2zeet2ksvw7f14ryz****,vsw-2ze94pjtfuj9vaymf**** 
      vpcId: vpc-2zeghwzptn5zii0w7****
  3. Salve as alterações e saia.

Variável de ambiente

Nota

Recomendamos atualizar o componente VK para a versão mais recente para aproveitar os novos recursos.

Dependendo de como você implantou o VK, atualize a variável de ambiente ECI_VSWITCH no Deployment ou StatefulSet para usar várias zonas de disponibilidade. O exemplo a seguir utiliza um Deployment:

  1. Edite o Deployment.

    kubectl -n kube-system edit deployment/virtual-node-controller
  2. Modifique a variável de ambiente ECI_VSWITCH.

    Anexe os IDs dos vSwitches ao valor da variável de ambiente ECI_VSWITCH. Separe múltiplos IDs com vírgula.

    - name:  ECI_VSWITCH
      value:  vsw-bp1xpiowfm5vo8o3c****,vsw-bp1rkyjgr1xwoho6k**** 
  3. Salve as alterações e saia.

Configuração de pod ECI

Utilize as annotations a seguir nos metadados do Pod para especificar várias zonas de disponibilidade:

  • k8s.aliyun.com/eci-vswitch: Defina vários vSwitches para habilitar o uso de múltiplas zonas.

    Nota

    Caso um pod ECI utilize a annotation k8s.aliyun.com/eci-vswitch, não há suporte para StorageClass do tipo WaitForFirstConsumer ao montar discos provisionados dinamicamente.

  • k8s.aliyun.com/eci-schedule-strategy: Define a política de agendamento para múltiplas zonas. Os valores válidos são VSwitchOrdered e VSwitchRandom. A tabela abaixo detalha essas políticas.

    Nota

    Sem a especificação de uma política de agendamento multizona, o sistema adota VSwitchRandom por padrão.

    Política de agendamento

    Descrição

    VSwitchOrdered (Sequencial)

    1. Quando o pod ECI monta um disco, a zona de disponibilidade do disco deve corresponder à do Pod. Zonas que não atendem a esse requisito são filtradas.

    2. O sistema tenta criar o recurso seguindo a ordem das zonas especificadas. Se a primeira zona tiver estoque insuficiente, ele passa para a segunda, e assim sucessivamente, até obter sucesso.

    VSwitchRandom (Otimizado por estoque)

    1. Se houver montagem de disco no pod ECI, a zona do disco precisa coincidir com a do Pod, excluindo-se as zonas incompatíveis.

    2. A Alibaba Cloud escolhe um vSwitch adequado (e sua zona correspondente) baseando-se em uma estratégia ótima de agendamento de estoque.

    3. Caso o pod ECI especifique um tipo de instância, o agendador prioriza zonas que possuam instância reservada compatível.

    4. Zonas com melhor desempenho de armazenamento recebem prioridade. As zonas mais antigas listadas abaixo têm menor prioridade de agendamento:

      • cn-beijing-e, cn-beijing-d

      • cn-shenzhen-a, cn-shenzhen-b, cn-shenzhen-c

      • cn-hangzhou-b, cn-hangzhou-e, cn-hangzhou-f

      • cn-shanghai-a, cn-shanghai-c

Importante
  • Adicione as annotations aos metadados no arquivo de configuração do pod. Por exemplo, ao criar um Deployment, insira-as na seção spec.template.metadata.

  • Annotations relacionadas ao Elastic Container Instance só surtem efeito na criação do pod. Adicionar ou modificar essas annotations em um pod existente não produz resultados.

Veja abaixo um exemplo de configuração:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-vswitch: "vsw-bp1xpiowfm5vo8o3c****,vsw-bp1rkyjgr1xwoho6k****"    # Specify multiple vSwitch IDs.
        k8s.aliyun.com/eci-schedule-strategy: "VSwitchOrdered"   # Configure the multi-availability zone scheduling policy.
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

Próximos passos

Caso sua instância utilize um NAT Gateway para conexão com a internet, atualize as entradas SNAT após definir vários vSwitches.

Por exemplo, se as entradas SNAT atuais estiverem configuradas no nível de vSwitch, adicione novas entradas para os vSwitches incluídos. Isso garante que as instâncias ECI iniciadas nos novos vSwitches tenham acesso à internet.