Todos os produtos
Search
Central de documentação

Elastic Container Instance:Especificar ou excluir famílias de instâncias ECS

Última atualização: Jun 28, 2026

Ao criar um pod ECI com especificação de vCPU e memória, adicione a anotação k8s.aliyun.com/eci-instance-family se precisar de uma instância subjacente específica, como usar apenas a família ecs.g6. Este tópico descreve como especificar ou excluir famílias de instâncias ECS na criação de pods ECI.

Funcionamento

Na criação de um pod ECI com definição de vCPU e memória, o sistema pode utilizar diversos tipos de instância ECS. Ele seleciona automaticamente um tipo que atenda aos requisitos de vCPU e memória e tenha estoque disponível. Adicione a anotação k8s.aliyun.com/eci-instance-family para restringir essa seleção ao especificar ou excluir famílias de instâncias ECS.

  • Se você especificar uma ou mais famílias de instâncias ECS, o sistema selecionará tipos de instância apenas dessas famílias. Caso não haja tipos correspondentes disponíveis nas famílias especificadas, a criação do pod falhará.

  • Ao excluir uma ou mais famílias de instâncias ECS, o sistema selecionará um tipo de instância de qualquer outra família suportada.

Nota

Para controle mais granular, combine esta anotação com k8s.aliyun.com/eci-instance-generation para especificar ou excluir gerações de instâncias ECS.

A tabela a seguir lista as famílias de instâncias ECS que podem ser especificadas ou excluídas.

Arquitetura

Geração das famílias de instâncias ECS

Família de instâncias ECS

ARM

8

g8y, c8y e r8y

x86

8

g8i, c8i, r8i, hfg8i, hfc8i e hfr8i

7

g7, c7, r7, hfg7, hfc7, hfr7 e g7ne

6

g6e, g6, c6e, c6, r6e, r6, hfc6, hfg6

5

u1, g5, g5ne, c5, r5, ic5, hfc5 e hfg5

4

sn2ne, sn1ne, se1ne e se1

Para obter mais informações sobre os tipos de instância ECS, consulte os tópicos a seguir:

Notas de uso

  • O faturamento de pods ECI criados com especificação ou exclusão de família de instâncias ECS baseia-se no tipo de instância ECS provisionado, e não na vCPU e memória solicitadas.

    Importante

    Após criar o pod ECI, execute o comando kubectl describe pod para visualizar seus detalhes. Verifique o campo k8s.aliyun.com/eci-instance-spec para confirmar o tipo real de instância ECS usado no faturamento.

  • Ao especificar ou excluir famílias de instâncias ECS, o sistema não seleciona automaticamente certos tipos especializados, como instâncias GPU (por exemplo, gn6i) ou com disco local (por exemplo, i2g). Para usar esses tipos, especifique-os diretamente. Para mais informações, consulte Especificar tipos de instância ECS para criar um pod.

  • Este recurso aplica-se apenas à especificação de requisitos de vCPU e memória. Se você definir um tipo exato de instância ECS, esta anotação não terá efeito.

  • Use este recurso para criar instâncias preemptíveis. Nesse cenário, o sistema considera tanto a ordem das famílias de instâncias na configuração quanto o preço de mercado, priorizando o preço. Caso tenha um requisito estrito para uma família específica, recomendamos configurar apenas uma.

Configuração

Defina o valor da anotação k8s.aliyun.com/eci-instance-family com uma ou mais famílias de instâncias ECS seguindo as regras abaixo:

  • Especifique uma lista separada por vírgulas de famílias de instâncias ECS compatíveis com o ECI.

    Importante

    Atualmente, os tipos de instância de 8ª geração estão disponíveis apenas para a arquitetura ARM. Ao criar um pod, use um nodeSelector para agendá-lo em um nó baseado em ARM. Portanto, não misture famílias de instâncias baseadas em ARM e x86 no mesmo valor de anotação. Ao direcionar para nós ARM, especifique ou exclua apenas outras famílias baseadas em ARM. Para um exemplo de configuração, consulte Exemplo 5: Especificar uma família de instâncias baseada em ARM.

  • Adicione um hífen (-) antes de uma família de instâncias para excluí-la.

    Por exemplo, k8s.aliyun.com/eci-instance-family: "-ecs.c6, -ecs.c5" exclui as famílias ecs.c6 e ecs.c5.

  • Caso especifique múltiplas famílias de instâncias, o sistema as tentará na ordem fornecida.

    Por exemplo, k8s.aliyun.com/eci-instance-family: "ecs.c6, ecs.c5" indica que o sistema tentará primeiro selecionar um tipo de instância da família ecs.c6. Se nenhum tipo adequado com estoque disponível for encontrado, ele recorrerá à família ecs.c5. Se a família ecs.c5 também não tiver um tipo adequado, a criação do pod falhará.

Ao usar a anotação k8s.aliyun.com/eci-instance-family, especifique primeiro a vCPU e a memória. Faça isso de uma das seguintes maneiras:

  • Defina requests ou limits para um contêiner. Recomendamos o uso de limits.

  • Adicione a anotação k8s.aliyun.com/eci-use-specs aos metadados do pod.

Use a anotação k8s.aliyun.com/eci-instance-generation em conjunto com k8s.aliyun.com/eci-instance-family para obter controle mais granular sobre a seleção de instâncias. Se ambas forem especificadas, a anotação que aparecer primeiro no arquivo YAML terá maior prioridade. Os exemplos a seguir descrevem esse comportamento:

  • Exemplo 1: A configuração em family tem prioridade sobre a configuração em generation; portanto, a prioridade de seleção de especificação é ecs.c5>ecs.c6.

    k8s.aliyun.com/eci-instance-family: "ecs.c5, ecs.c6"
    k8s.aliyun.com/eci-instance-generation: "6,5"
  • Exemplo 2: A configuração em generation tem prioridade sobre a configuração em family; portanto, a prioridade de seleção de especificação é ecs.c6e>c6>g5.

    k8s.aliyun.com/eci-instance-generation": "6,5"
    k8s.aliyun.com/eci-instance-family: "ecs.c6e, ecs.g5, ecs.c6"

Exemplo 1: Especificar famílias de instâncias ECS

Parâmetro

Resultado

  • Define 2 vCPUs e 4 GiB de memória usando o campo limits.

  • A anotação k8s.aliyun.com/eci-instance-family: "ecs.c6, ecs.g6" prioriza a família ecs.c6, com a família ecs.g6 como fallback.

O sistema tenta usar primeiro o tipo de instância ecs.c6.large e recorre ao ecs.g6.large.

Nota

Esta configuração equivale a definir k8s.aliyun.com/eci-use-specs: "ecs.c6.large,ecs.g6.large".

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      name: test
      labels:
        app: test
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-instance-family: "ecs.c6,ecs.g6"    # Prioritize the ecs.c6 family, and then fall back to the ecs.g6 family.
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: "2"       # vCPU limit        
            memory: "4Gi"  # Memory limit

Exemplo 2: Excluir famílias de instâncias ECS

Parâmetro

Resultado

  • A anotação k8s.aliyun.com/eci-use-specs: "2-4Gi" especifica os recursos de vCPU e memória (2 vCPUs, 4 GiB de memória).

  • A anotação k8s.aliyun.com/eci-instance-family: "-ecs.hfg6,-ecs.hfg5" exclui as famílias ecs.hfg6 e ecs.hfg5.

O sistema seleciona um tipo de instância correspondente de qualquer família de instâncias ECS compatível, exceto ecs.hfg6 e ecs.hfg5.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "2-4Gi"                    # Specify a vCPU and memory range.
        k8s.aliyun.com/eci-instance-family: "-ecs.hfg6,-ecs.hfg5"    # Exclude the ecs.hfg6 and ecs.hfg5 instance families.
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

Exemplo 3: Especificar gerações específicas de famílias de instâncias ECS e excluir famílias de instâncias ECS específicas

Parâmetro

Efeito

  • A anotação k8s.aliyun.com/eci-use-specs: "2-4Gi" define recursos de vCPU e memória (2 vCPUs, 4 GiB de memória).

  • A anotação k8s.aliyun.com/eci-instance-generation: "6,5" determina que o sistema use as famílias de instâncias ECS de sexta geração e, em seguida, as de quinta geração.

  • A anotação k8s.aliyun.com/eci-instance-family: "-ecs.hfg5" exclui a família ecs.hfg5.

  • O sistema seleciona preferencialmente tipos de instância das famílias ECS de sexta geração que atendem aos requisitos de vCPU e memória.

  • Se os recursos das famílias de sexta geração forem insuficientes, o sistema selecionará tipos de instância das famílias de quinta geração (exceto ecs.hfg5) compatíveis com o Elastic Container Instance.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "2-4Gi"                   # Specifies the vCPU and memory specifications.
        k8s.aliyun.com/eci-instance-generation: "6,5"           # Specifies that the sixth-generation and fifth-generation ECS instance families are used in sequence.
        k8s.aliyun.com/eci-instance-family: "-ecs.hfg5"           # Excludes the ecs.hfg5 instance family.
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

Exemplo 4: Excluir gerações específicas de famílias de instâncias ECS e famílias de instâncias ECS específicas

Parâmetro

Efeito

  • A anotação k8s.aliyun.com/eci-use-specs: "2-4Gi" define recursos de vCPU e memória (2 vCPUs, 4 GiB de memória).

  • A anotação k8s.aliyun.com/eci-instance-generation: "-5,-4" exclui as famílias de instâncias ECS de quinta e quarta gerações.

  • A anotação k8s.aliyun.com/eci-instance-family: "-ecs.hfg6" exclui a família ecs.hfg6.

O sistema seleciona tipos de instância das famílias ECS de sétima e sexta gerações (exceto ecs.hfg6) que atendem aos requisitos de vCPU e memória.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "2-4Gi"                    # Specifies the vCPU and memory specifications in fuzzy search mode.
        k8s.aliyun.com/eci-instance-generation: "-5,-4"          # Excludes the fifth-generation and fourth-generation ECS instance families.
        k8s.aliyun.com/eci-instance-family: "-ecs.hfg6"            # Excludes the ecs.hfg6 instance family.
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

Exemplo 5: Especificar uma família de instâncias baseada em ARM

Parâmetro

Resultado

  • A anotação k8s.aliyun.com/eci-use-specs: "2-4Gi,4-8Gi" especifica os recursos de vCPU e memória. O sistema usa primeiro 2 vCPUs e 4 GiB de memória, seguidos por 4 vCPUs e 8 GiB de memória.

  • A anotação k8s.aliyun.com/eci-instance-family: "ecs.c8y" especifica o uso de um tipo de instância da família ecs.c8y.

  • Os rótulos alibabacloud.com/eci: "true" e kubernetes.io/arch: arm64 agendam o pod em um nó virtual baseado em ARM.

O sistema usa primeiro o tipo de instância ecs.c8y.large, seguido pelo ecs.c8y.xlarge.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "2-4Gi,4-8Gi"              # Specify multiple vCPU and memory ranges.
        k8s.aliyun.com/eci-instance-family: "ecs.c8y"            # Specify the ecs.c8y instance family.
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
      nodeSelector:
        kubernetes.io/arch: arm64  # Schedule the pod to an Arm node.

Exemplo 6: Configuração inválida

Se você usar este recurso em um cenário incompatível, o sistema ignorará a anotação e gerará um evento IgnoreInstanceTypeFeatures.

Nome do evento

Tipo

Mensagem

Descrição

IgnoreInstanceTypeFeatures

Warning

[eci.containergroup]The instance type features will be ignored as the provided specifications, [%s],correspond exclusively to ECS instance types.

Como k8s.aliyun.com/eci-use-specs especifica um tipo exato de instância ECS, o sistema ignora a anotação de especificação da família de instâncias ECS.

No exemplo a seguir, o sistema ignora a anotação que especifica a família ecs.c6. O sistema cria o pod ECI usando apenas o tipo de instância ecs.c5.large.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-use-specs: "ecs.c5.large"   # Specify an exact ECS instance type.
        k8s.aliyun.com/eci-instance-family: "ecs.c6"   # This annotation is ignored.
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

Visualize o evento IgnoreInstanceTypeFeatures nos eventos do pod.