Todos los productos
Search
Centro de documentos

Container Compute Service:Schedule pods to ACS using virtual nodes

Última actualización: Sep 06, 2026

Container Compute Service (ACS) se integra a un clúster registrado por medio de nodos virtuales. Despliegue nodos virtuales en un clúster registrado para acceder a la capacidad de cómputo de contenedores que ofrece ACS y cree pods bajo demanda sin planificar la capacidad de cómputo de los nodos.

Cómo los nodos virtuales proporcionan la capacidad de cómputo de ACS

Container Compute Service (ACS) es un servicio de contenedores que utiliza Kubernetes como interfaz de usuario y proporciona recursos de cómputo compatibles con las especificaciones de contenedores. ACS emplea una arquitectura en capas que separa el plano de control de Kubernetes de la capacidad de cómputo de contenedores subyacente. La capa de recursos de cómputo de ACS se encarga de programar y asignar recursos para los pods, mientras que Kubernetes gestiona las cargas de trabajo de las aplicaciones, como Deployments, Services, StatefulSets y CronJobs, sobre esta capa.

La capacidad de cómputo de contenedores de ACS se conecta a un clúster de Kubernetes como un nodo virtual. Esto le otorga al clúster una gran elasticidad, sin las limitaciones de la capacidad de cómputo de sus nodos. Cuando ACS asume la gestión de la infraestructura subyacente de los pods, Kubernetes ya no necesita gestionar directamente la ubicación ni el inicio de cada pod, ni supervisar el estado de los recursos de las máquinas virtuales subyacentes. ACS garantiza que los recursos necesarios para los pods estén siempre disponibles.

En un clúster registrado, instale el complemento ack-virtual-node desde Component Center para desplegar nodos virtuales y crear pods de ACS. Cuando el clúster necesite escalar horizontalmente, cree pods de ACS en los nodos virtuales bajo demanda, sin planificar la capacidad de cómputo de los nodos. Los pods de ACS se comunican por red con los pods ubicados en los nodos físicos del clúster. Para obtener más información, consulte Registered clusters.

Para usar los recursos de manera más eficiente, reducir los tiempos de escalado horizontal y disminuir costos, programe en nodos virtuales las cargas de trabajo de ejecución prolongada cuyo tráfico fluctúe de forma elástica. A medida que el tráfico disminuya, libere rápidamente los pods de los nodos virtuales para reducir los costos de uso.

Los pods de los nodos virtuales se ejecutan en un entorno de ejecución de contenedores seguro y aislado dentro de ACS. Cada pod corresponde a una instancia de ACS.

image

Requisitos previos

Ejemplo: uso de la capacidad de cómputo de CPU de ACS

A partir de la versión 2.13.0, el complemento ack-virtual-node proporciona capacidad de cómputo tanto de ACS como de Elastic Container Instance (ECI).

Nota

Cuando programa un pod en un nodo virtual, Elastic Container Instance (ECI) usa de forma predeterminada la capacidad de cómputo, a menos que especifique ACS.

Para usar la capacidad de cómputo de CPU de ACS en un clúster registrado de ACK One, siga estos pasos:

  1. Cree un archivo llamado nginx.yaml con el siguiente contenido:

    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. Ejecute el siguiente comando para crear la aplicación NGINX.

    kubectl apply -f nginx.yaml
  3. Ejecute el siguiente comando para comprobar el estado de los pods.

    kubectl get pods -o wide

    Resultado esperado:

    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>

    Estos dos pods se programan en nodos etiquetados con type=virtual-kubelet mediante nodeSelector.

  4. Ejecute el siguiente comando para consultar los detalles del pod de NGINX.

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

    Resultado esperado:

    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

    La anotación alibabacloud.com/instance-id: acs-uf6008giwgjxlvn***** en el resultado confirma que se trata de un pod de ACS.

Ejemplo: uso de la capacidad de cómputo de GPU de ACS

El proceso para usar la capacidad de cómputo de GPU de ACS es similar al de la capacidad de cómputo de CPU de ACS, pero requiere versiones específicas de componentes y cierta configuración adicional.

La capacidad de cómputo de GPU de ACS en un clúster registrado se encuentra en vista previa por invitación. Para solicitar acceso, envíe un 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 la capacidad de cómputo de GPU de ACS en un clúster registrado de ACK One, siga estos pasos:

  1. Cree un archivo llamado gpu-demo.yaml con el siguiente contenido.

    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. Ejecute el siguiente comando para crear la carga de trabajo de GPU.

    kubectl apply -f gpu-demo.yaml
  3. Ejecute el siguiente comando para comprobar el estado de ejecución de la carga de trabajo de GPU.

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

    Resultado esperado:

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