Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Schedule pods on ECI with virtual nodes

Última atualização: Jun 27, 2026

Execute pods no ECI em um cluster gerenciado ACK para lidar com picos de tráfego sem gerenciar instâncias ECS.

Observações de uso

Se você utiliza o kube-scheduler v6.11.0 ou posterior e cria mais de 1.000 pods ACS ou ECI simultaneamente via rótulos, atualize para a versão mais recente e ative o feature gate SchedulerBatchMoveEvents=true.

Casos de uso

Pods ECI lidam com picos de tráfego e reduzem custos de computação:

  • Serviços online com padrões de tráfego flutuantes

    Responda a picos de tráfego rapidamente, reduza a manutenção do pool de recursos e diminua os custos de computação.

  • Tarefas de computação em lote ou de curta duração

    Elimine a manutenção de nós dedicados. Pague apenas pelos recursos de computação usados durante a execução e reduza custos em cargas de trabalho como Spark e tarefas de IA.

Pré-requisitos

O cluster ACK deve executar o Kubernetes 1.16 ou posterior em uma região compatível com o ECI.

Nota

Verifique as regiões compatíveis em Regiões e zonas compatíveis com o ECI e faça logon no console do Elastic Container Instance para ativar o ECI.

Procedimento

Etapa 1: Implante o componente ack-virtual-node

Nota

As etapas a seguir usam um cluster gerenciado ACK como exemplo. Para um cluster dedicado ACK, implante o ack-virtual-node na página Marketplace. Consulte Implantar o componente ack-virtual-node.

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

  2. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Components and Add-ons.

  3. Na página Add-ons, clique na aba Core Components, localize ACK Virtual Node e clique em Instale. Siga as instruções na tela para concluir a instalação.

    A instalação usa o vSwitch e o grupo de segurança padrão do cluster como parâmetros iniciais de configuração do ECI. Para modificar esses parâmetros, atualize-os ao configurar um eci-profile.

Etapa 2: Agende um pod para o ECI

Nota

Estes exemplos agendam um pod para o ECI mediante a aplicação de rótulos no pod ou no namespace. Consulte Agendar um Pod para um nó virtual para conhecer outros métodos.

Pod

Adicione o rótulo alibabacloud.com/eci: "true" a um pod para agendá-lo em um nó virtual de arquitetura x86 como um pod ECI.

  1. Crie um Deployment a partir do seguinte arquivo YAML.

    kubectl create -f eci-pod.yaml

    Exemplo de eci-pod.yaml:

    Nota

    A anotação k8s.aliyun.com/eci-use-specs define a especificação de computação do pod ECI. Consulte Especificar a especificação de computação de um pod ECI.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test
          labels:
            app: nginx
            alibabacloud.com/eci: "true"             # Add this label to schedule the Pod to ECI. 
          annotations:
            k8s.aliyun.com/eci-use-specs: "2-4Gi"   # Specify 2 vCPUs and 4 GiB of memory for the ECI pod.
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
  2. Verifique se o Pod está em execução em um nó virtual.

    kubectl get pod -o wide -l app=nginx

    Saída esperada. A coluna NODE indica o nó virtual.

    NAME                    READY   STATUS    RESTARTS   AGE   IP            NODE                            NOMINATED NODE   READINESS GATES
    test-86f7fbc94f-g5m22   1/1     Running   0          38s   10.16.XX.XX   virtual-kubelet-cn-hangzhou-j   <none>           <none>
    test-86f7fbc94f-r4wcn   1/1     Running   0          38s   10.16.XX.XX   virtual-kubelet-cn-hangzhou-j   <none>           <none>
  3. Visualize os detalhes do pod ECI.

    kubectl get pod <pod-name> -o yaml

    Consulte a anotação k8s.aliyun.com/eci-instance-id para obter o ID da instância ECI e a anotação k8s.aliyun.com/eci-instance-spec para verificar a especificação de computação usada no faturamento.

Namespace

Para executar uma categoria de pods no ECI, crie um namespace e adicione o rótulo alibabacloud.com/eci: "true". O sistema agenda todos os pods desse namespace em um nó virtual de arquitetura x86 como pods ECI.

  1. Crie um Namespace chamado vk e adicione o rótulo necessário.

    kubectl create ns vk
    kubectl label namespace vk alibabacloud.com/eci=true
  2. Crie um Deployment no namespace vk.

    kubectl create -f eci-namespace.yaml

    Exemplo de eci-namespace.yaml:

    Nota

    A anotação k8s.aliyun.com/eci-use-specs define a especificação de computação do pod ECI. Consulte Especificar a especificação de computação de um pod ECI.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      namespace: vk       # Specify the labeled Namespace to schedule Pods to ECI.
      labels:
        app: test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test
          labels:
            app: nginx
          annotations:
            k8s.aliyun.com/eci-use-specs: "2-4Gi"   # Specify 2 vCPUs and 4 GiB of memory for the ECI pod.
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
  3. Verifique se o Pod está em execução em um nó virtual.

    kubectl get pod -o wide -l app=nginx -n vk

    Saída esperada. A coluna NODE indica o nó virtual.

    NAME                   READY   STATUS    RESTARTS   AGE   IP            NODE                            NOMINATED NODE   READINESS GATES
    test-8f54bcfb5-86pvc   1/1     Running   0          14s   10.16.XX.XX   virtual-kubelet-cn-hangzhou-j   <none>           <none>
    test-8f54bcfb5-skvkg   1/1     Running   0          14s   10.16.XX.XX   virtual-kubelet-cn-hangzhou-j   <none>           <none>
  4. Visualize os detalhes do pod ECI.

    kubectl get pod <pod-name> -o yaml -n vk

    Consulte a anotação k8s.aliyun.com/eci-instance-id para obter o ID da instância ECI e a anotação k8s.aliyun.com/eci-instance-spec para verificar a especificação de computação usada no faturamento.