Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Melhores práticas para conjuntos de implantação de pools de nós

Última atualização: Sep 15, 2026

Atribua um conjunto de implantação a um pool de nós para distribuir instâncias ECS entre servidores físicos. As configurações de afinidade permitem que as aplicações reconheçam a topologia subjacente dos nós e distribuam as cargas de trabalho uniformemente, melhorando a recuperação de desastres e a alta disponibilidade.

Pré-requisitos

Um deployment set criado.

Contexto

Em uma única zona, é comum implantar services em vários hosts para garantir alta disponibilidade. No entanto, se um servidor físico falhar, todas as réplicas hospedadas nele serão afetadas. Os deployment sets do ECS distribuem as instâncias por diferentes servidores físicos dentro de uma região, garantindo isolamento mútuo e reduzindo o risco de indisponibilidade do service.

Limitações

Notas sobre o uso do recurso em clusters

  • Os conjuntos de implantação são compatíveis apenas com clusters gerenciados pelo ACK e clusters dedicados do ACK.

  • Especifique o conjunto de implantação somente durante a criação do pool de nós. Não é possível ativar conjuntos de implantação para pools de nós existentes. Cada pool de nós aceita apenas um conjunto de implantação.

  • Não adicione nem remova nós manualmente de um conjunto de implantação. Para ajustar a quantidade de nós, dimensione o pool de nós. Consulte Create and manage node pools.

  • Pools de nós com conjuntos de implantação não oferecem suporte a instâncias spot.

Cotas de conjuntos de implantação e limites de tipos de instância

  • Limites de cota para conjuntos de implantação:

    • Por padrão, os conjuntos de implantação de pools de nós utilizam a política de alta disponibilidade. É possível criar até 20 instâncias ECS por zona dentro de um único conjunto de implantação. O total de instâncias ECS por região da Alibaba Cloud é 20 × número de zonas. Verifique se há cotas e estoque suficientes de instâncias ECS para os tipos desejados. Consulte Deployment sets.

      O limite máximo de instâncias por conjunto de implantação não pode ser aumentado. Para elevar o número máximo de conjuntos de implantação da sua conta, faça uma solicitação pelo Quota Center. Consulte Limits on deployment sets.

    • Se a criação de uma instância ECS em um conjunto de implantação ou a reinicialização de uma instância pay-as-you-go (em modo econômico) falhar, a causa pode ser estoque insuficiente. Aguarde e tente novamente.

  • Restrições de famílias de instâncias: A maioria das famílias de instâncias da geração 6 ou posterior oferece suporte a conjuntos de implantação que utilizam as estratégias de alta disponibilidade, grupo de alta disponibilidade e baixa latência.

    Diferentes estratégias de implantação aceitam famílias específicas de instâncias.

    Para obter a lista definitiva de famílias de instâncias compatíveis, consulte a resposta retornada pela operação de API DescribeDeploymentSetSupportedInstanceTypeFamily.

    Estratégia de implantação

    Famílias de instâncias compatíveis

    estratégia de alta disponibilidade e estratégia de grupo de alta disponibilidade

    • g9a, g9ae, g9i, g8a, g8i, g8ine, g8ise, g8y, g7, g7a, g7h, g7ne, g7nex, g7se, g7t, g6, g6a, g6e, g6h, g5, g5ne

    • c9a, c9ae, c9i, c8a, c8i, c8ine, c8y, c7, c7a, c7nex, c7se, c7t, c6, c6a, c6e, c5

    • r9a, r9ae, r9i, r8a, r8i, r8y, r7, r7a, r7se, r7t, r6, r6a, r6e, r5

    • hfc9i, hfg9i, hfr9i, hfc8i, hfg8i, hfr8i, hfc7, hfg7, hfr7, hfc6, hfg6, hfr6, hfc5, hfg5

    • ebmc9i, ebmg9a, ebmg9i, ebmr9i, ebmc8a, ebmc8i, ebmc8y, ebmg8a, ebmg8i, ebmg8y, ebmr8a, ebmr8y, ebmc7, ebmc7a, ebmg7, ebmg7a, ebmg7se, ebmhfc7, ebmhfg7, ebmhfr7, ebmr7, ebmr7a, ebmg5

    • i5, i5g, i5ge, ic5, i4, i4g, i4r, i3, i3g, i2, i2g, i2gne, i2ne

    • gn6i

    • d3c, d3s, d2c, d2s, d1ne

    • re6, re6p, s6, t6, e4, mn4, n4, re4, xn4, sn2ne, u2a, u2i, se1, se1ne, sn1ne, u1, e

    estratégia de baixa latência

    • g9a, g9ae, g9i, g8a, g8ae, g8i, g8ise, g8y, g7, g5ne

    • c9a, c9ae, c9i, c8a, c8ae, c8i, c8ine, c8y, c7, c7nex

    • r9a, r9ae, r9i, r8a, r8ae, r8i, r8y, r7

    • hfc9i, hfg9i, hfr9i, hfc8i, hfg8i, hfr8i

    • ebmc9i, ebmg9a, ebmg9i, ebmr9i, ebmc8a, ebmc8i, ebmc8y, ebmg8a, ebmg8i, ebmg8y, ebmgn8v, ebmr8a, ebmr8y, ebmc7, ebmc7a, ebmg7, ebmg7a, ebmg7se, ebmgn7ex, ebmhfc7, ebmhfg7, ebmhfr7, ebmr7, ebmr7a

    • i5, i5g, i5ge, i4

    • gn8v

    • hpc8ae, hpc8i, hpc7ip, hpc6id, u2a, u2i

Atribuir um conjunto de implantação a um pool de nós no console

  1. Faça logon no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em no nome do cluster. No painel de navegação à esquerda, clique em Nodes > Node Pools.

  3. Na página Node Pools, clique em Create Node Pool. Na caixa de diálogo Create Node Pool, configure os parâmetros, selecione um conjunto de implantação e clique em Confirm.

    Consulte Create and manage node pools para obter detalhes sobre os parâmetros do pool de nós. Após selecionar um conjunto de implantação, a contagem máxima de nós no pool será limitada. O limite padrão é 20 × o número de zonas. Garanta cota suficiente no conjunto de implantação para evitar falhas na expansão de nós.Deployment set

Casos de uso

Agendar pods da mesma carga de trabalho em um único pool de nós para executar apenas um pod por nó usando antiafinidade de pods

Agende três réplicas de pod de um Deployment em três nós diferentes.

  1. Crie um pool de nós com três nós e atribua um conjunto de implantação.

    Após a criação, na página Node Pools, clique em no pool de nós correspondente. Na aba Nodes, verifique se três nós foram criados.Deployment set example 1

    Faça logon no console do ECS. No painel de navegação à esquerda, escolha Deployment & Elasticity > Deployment Set. Na página Deployment Set, confirme se todos os três nós pertencem ao conjunto de implantação.Deployment set example 2

  2. Configure sua aplicação com o seguinte YAML.

    Defina a antiafinidade de pods para agendar os três pods da aplicação em nós distintos.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: nginx
          labels:
            app: nginx
        spec:
          affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:  # Set the scheduling policy.
              - labelSelector:
                  matchExpressions:
                  - key: app
                    operator: In
                    values:
                    - nginx
                topologyKey: kubernetes.io/hostname
          nodeSelector:
              alibabacloud.com/nodepool-id: <nodepool-id>  # Specify the node pool ID.
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            resources:
              limits:
                cpu: 1
              requests:
                cpu: 1

    Execution Result

    Na página Deployments, clique em no Deployment alvo. Na aba Pods, os três pods aparecem agendados em nós diferentes.Deployment set example 3

Distribuir pods da mesma carga de trabalho uniformemente entre zonas e nós dentro de um único pool de nós

  1. Crie um pool de nós com quatro nós, atribua um conjunto de implantação e selecione vSwitches em múltiplas zonas.

    Após a criação, na página Node Pools, clique em no pool de nós. Na aba Nodes, verifique a existência de quatro nós distribuídos em quatro zonas. Seguindo a política de distribuição uniforme do ESS, as instâncias ECS estão espalhadas pelas quatro zonas e pertencem ao conjunto de implantação.Deployment set example 4

    Faça logon no console do ECS. No painel de navegação à esquerda, escolha Deployment & Elasticity > Deployment Set. Na página Deployment Set, confirme se todos os quatro nós pertencem ao conjunto de implantação.Deployment set example 5

  2. Configure sua aplicação com o seguinte YAML.

    Utilize restrições de distribuição de topologia de pods para distribuir os pods da mesma aplicação de forma equilibrada entre zonas e nós.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 4
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: nginx
          labels:
            app: nginx
        spec:
          topologySpreadConstraints:
            - maxSkew: 1
              topologyKey: kubernetes.io/hostname
              whenUnsatisfiable: DoNotSchedule
              labelSelector:
                matchLabels:
                  app: nginx
            - maxSkew: 1
              topologyKey: topology.kubernetes.io/zone
              whenUnsatisfiable: DoNotSchedule
              labelSelector:
                matchLabels:
                  app: nginx
          nodeSelector:
            alibabacloud.com/nodepool-id: <nodepool-id>  # Specify the node pool ID.
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            resources:
              limits:
                cpu: 1
              requests:
                cpu: 1

    Execution Result

    Na página Deployments, clique em no Deployment alvo. Na aba Pods, os pods aparecem distribuídos uniformemente entre zonas e nós.Deployment set example 6

Referências