Todos os produtos
Search
Central de documentação

Elastic Container Instance:Agendar pods em um VNode

Última atualização: Jun 27, 2026

Em clusters Kubernetes autogerenciados que utilizam nós reais e virtuais (VNodes), você pode agendar pods em um VNode para executá-los como elastic container instances (ECIs). Este tópico aborda dois métodos de agendamento manual: configure nodeSelector e tolerations, ou especifique nodeName diretamente.

Ambos os métodos exigem a modificação individual dos recursos de workload. Para ambientes de produção, utilize o componente eci-profile . Ele emprega um seletor de rótulos para direcionar automaticamente os pods correspondentes aos VNodes em todas as workloads, sem necessidade de alterações individuais. Consulte Usar eci-profile para agendar pods em um VNode .

Escolha um método de agendamento

Método

Funcionamento

Cenário recomendado

nodeSelector + tolerations

Associa pods aos VNodes por rótulo e tolera o taint do VNode

Agendar um grupo de pods em qualquer VNode disponível (recomendado para a maioria dos casos)

nodeName

Fixa pods em um VNode específico pelo nome

Testes ou depuração em um VNode conhecido

Método 1: Configure nodeSelector e tolerations

Por padrão, os VNodes possuem o seguinte rótulo e taint:

labels:
  k8s.aliyun.com/vnode: "true"
taints:
- effect: NoSchedule
  key: k8s.aliyun.com/vnode
  value: "true"

Para agendar pods em VNodes, defina nodeSelector para corresponder ao rótulo e adicione uma tolerância ao taint NoSchedule.

Pré-requisitos

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

  • Um cluster Kubernetes autogerenciado com pelo menos um VNode (verifique com kubectl get nodes)

  • kubectl configurado para conectar-se ao cluster

Etapas

  1. Salve o conteúdo abaixo como deploy-vnode-test1.yaml.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: vnode-nginx-test1
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: uid
      template:
        metadata:
          labels:
            app: uid
        spec:
          nodeSelector:          # Match VNodes by label
            k8s.aliyun.com/vnode: "true"
          tolerations:           # Tolerate the VNode NoSchedule taint
          - key: k8s.aliyun.com/vnode
            operator: "Equal"
            value: "true"
            effect: "NoSchedule"
          containers:
          - name: nginx
            image: registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
  2. Aplique o Deployment.

    kubectl apply -f deploy-vnode-test1.yaml

Método 2: Especifique nodeName

Especifique nodeName ignora o scheduler do Kubernetes e fixa os pods diretamente em um VNode identificado pelo nome.

Pré-requisitos

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

  • Um cluster Kubernetes autogerenciado com pelo menos um VNode

  • kubectl configurado para conectar-se ao cluster

  • O nome exato do VNode de destino

Etapas

  1. Obtenha o nome do VNode.

    kubectl get nodes

    Os nomes dos VNodes seguem o formato <region>.<VNode ID>. Exemplo de saída:

    NAME                                    STATUS   ROLES                  AGE    VERSION
    cn-hangzhou.vnd-2ze2qhf8lmp5kgsx****   Ready    agent                  132m   v1.20.6
    k8s-master                             Ready    control-plane,master   169m   v1.20.6
  2. Salve o conteúdo abaixo como deploy-vnode-test2.yaml. Substitua cn-hangzhou.vnd-2ze2qhf8lmp5kgsx**** pelo nome do seu VNode.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: vnode-nginx-test2
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: uid
      template:
        metadata:
          labels:
            app: uid
        spec:
          nodeName: cn-hangzhou.vnd-2ze2qhf8lmp5kgsx****   # Replace with your VNode name
          containers:
          - name: nginx
            image: registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
  3. Aplique o Deployment.

    kubectl apply -f deploy-vnode-test2.yaml

Próximas etapas