Todos os produtos
Search
Central de documentação

Container Compute Service:Schedule pods to ACS using virtual nodes

Última atualização: Aug 28, 2026

O Container Compute Service (ACS) integra-se a um cluster registrado por meio de nós virtuais. Implante nós virtuais em um cluster registrado para acessar o poder de computação de contêineres do ACS e crie pods sob demanda, sem planejar a capacidade de computação dos nós.

Como os nós virtuais fornecem poder de computação do ACS

O Container Compute Service (ACS) é um service de contêineres que utiliza o Kubernetes como interface e oferece recursos de computação compatíveis com especificações de contêineres. O ACS adota uma arquitetura em camadas que separa o plano de controle do Kubernetes do poder de computação de contêineres subjacente. A camada de recursos de computação do ACS agenda e aloca recursos para Pods, enquanto o Kubernetes gerencia as cargas de trabalho das aplicações, como Deployments, Services, StatefulSets e CronJobs, sobre essa camada.

Conecte o poder de computação de contêineres do ACS a um cluster Kubernetes como um nó virtual. Isso confere ao cluster alta elasticidade, sem as restrições da capacidade de computação dos nós físicos. Quando o ACS assume o gerenciamento da infraestrutura subjacente dos Pods, o Kubernetes não precisa lidar diretamente com o posicionamento e a inicialização de Pods individuais nem monitorar o status de recursos das máquinas virtuais subjacentes. O ACS garante a disponibilidade contínua dos recursos necessários para os Pods.

Em um cluster registrado, instale o add-on ack-virtual-node no Component Center para implantar nós virtuais e criar pods do ACS. Se o cluster precisar escalar horizontalmente, crie pods do ACS em nós virtuais sob demanda, sem planejar a capacidade de computação dos nós. Os pods do ACS comunicam-se pela rede com os pods nos nós físicos do cluster. Para mais informações, consulte Registered clusters.

Para otimizar o uso de recursos, reduzir o tempo de escala horizontal e diminuir custos, agende cargas de trabalho de longa duração com tráfego flutuante para nós virtuais. À medida que o tráfego diminuir, libere rapidamente os pods nos nós virtuais para reduzir os custos de uso.

Os pods em nós virtuais executam em um ambiente de runtime de contêiner seguro e isolado no ACS. Cada pod corresponde a uma instância do ACS.

image

Pré-requisitos

Exemplo: uso do poder de computação de CPU do ACS

A partir da versão 2.13.0, o add-on ack-virtual-node fornece tanto o poder de computação do ACS quanto o do Elastic Container Instance (ECI).

Nota

Ao agendar um Pod para um nó virtual, o sistema usa o poder de computação do Elastic Container Instance (ECI) por padrão, a menos que você especifique o ACS.

Para usar o poder de computação de CPU do ACS em um cluster registrado do ACK One, execute as etapas a seguir:

  1. Crie um arquivo chamado nginx.yaml com o seguinte conteúdo:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx 
            alibabacloud.com/acs: "true" # Use ACS computing power.
            alibabacloud.com/compute-class: general-purpose # The compute class of the ACS pod. Default value: general-purpose.
            alibabacloud.com/compute-qos: default # The QoS class of the ACS pod. Default value: default.
        spec:
          containers:
          - name: nginx
            image: mirrors-ssl.aliyuncs.com/nginx:stable-alpine
            ports:
              - containerPort: 80
                protocol: TCP 
            resources:
              limits:
                cpu: 2
              requests:
                cpu: 2
  2. Execute o comando a seguir para criar a aplicação NGINX.

    kubectl apply -f nginx.yaml
  3. Verifique o status dos pods com o comando abaixo.

    kubectl get pods -o wide

    Saída esperada:

    NAME                     READY   STATUS    RESTARTS   AGE     IP               NODE                            NOMINATED NODE   READINESS GATES
    nginx-54bcbc9b66-****   1/1     Running   0          3m29s   192.168.XX.XXX   virtual-kubelet-cn-shanghai-l   <none>           <none>
    nginx-54bcbc9b66-****   1/1     Running   0          3m29s   192.168.XX.XXX   virtual-kubelet-cn-shanghai-l   <none>           <none>

    Esses dois Pods são agendados para nós rotulados com type=virtual-kubelet por meio do nodeSelector.

  4. Visualize os detalhes do pod NGINX com o comando a seguir.

    kubectl describe pod nginx-54bcbc9b66-****

    Saída esperada:

    Annotations:  ProviderCreate: done
                  alibabacloud.com/instance-id: acs-uf6008giwgjxlvn*****
                  alibabacloud.com/pod-ephemeral-storage: 30Gi
                  alibabacloud.com/pod-use-spec: 2-2Gi
                  kubernetes.io/pod-stream-port: 10250
                  network.alibabacloud.com/enable-dns-cache: false
                  topology.kubernetes.io/region: cn-shanghai

    A anotação alibabacloud.com/instance-id: acs-uf6008giwgjxlvn***** na saída confirma que se trata de um pod do ACS.

Exemplo: uso do poder de computação de gpu do ACS

O processo para usar o poder de computação de gpu do ACS assemelha-se ao uso de CPU, mas exige versões específicas de componentes e configurações adicionais.

O poder de computação de gpu do ACS em um cluster registrado está em preview por convite. Para solicitar acesso, envie um ticket.

Uso

...     
     labels:
        # Declare the ACS GPU resource requirement in the labels.
        alibabacloud.com/compute-class: gpu     # For GPU types, use the fixed value 'gpu'.
        alibabacloud.com/compute-qos: default   # The QoS class. This has the same meaning as for regular ACS computing power.
        alibabacloud.com/gpu-model-series: example-model  # The GPU model series. Replace with your actual model, such as T4.
...
Nota

Para usar o poder de computação de gpu do ACS em um cluster registrado do ACK One, siga estas etapas:

  1. Crie um arquivo chamado gpu-demo.yaml com o seguinte conteúdo.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dep-node-selector-demo
      labels:
        app: node-selector-demo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: node-selector-demo
      template:
        metadata:
          labels:
            app: node-selector-demo
            # ACS attributes
            alibabacloud.com/acs: "true" # Use ACS computing power.
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            alibabacloud.com/gpu-model-series: example-model  # The GPU model series. Replace the value with the actual model, such as T4.
        spec:
          containers:
          - name: node-selector-demo
            image: registry-cn-hangzhou.ack.aliyuncs.com/acs/stress:v1.0.4
            command:
            - "sleep"
            - "1000h"
            resources:
              limits:
                cpu: 1
                memory: 1Gi
                nvidia.com/gpu: "1"
              requests:
                cpu: 1
                memory: 1Gi
                nvidia.com/gpu: "1"
  2. Execute o comando a seguir para criar a carga de trabalho de gpu.

    kubectl apply -f gpu-demo.yaml
  3. Verifique o status de execução da carga de trabalho de gpu com o comando abaixo.

    kubectl get pod dep-node-selector-demo-9cdf7bbf9-s**** -o yaml

    Saída esperada:

    phase: Running
    
        resources:
          limits:
            #other resources
            nvidia.com/gpu: "1"
          requests:
            #other resources
            nvidia.com/gpu: "1"