All Products
Search
Document Center

Container Compute Service:Gunakan daya komputasi ACS dalam kluster ACK Pro

Last Updated:Jun 22, 2026

Container Compute Service (ACS) Alibaba Cloud terintegrasi dengan Container Service for Kubernetes. Anda dapat menggunakan kluster ACK Pro untuk mengakses daya komputasi kontainer yang disediakan oleh ACS secara cepat. Topik ini menjelaskan cara menggunakan daya komputasi ACS dalam kluster ACK Anda.

Cara kerja

Container Compute Service (ACS) adalah layanan kontainer yang menggunakan Kubernetes sebagai antarmukanya dan menyediakan sumber daya komputasi sesuai spesifikasi kontainer. ACS menerapkan arsitektur berlapis yang memisahkan lapisan kontrol Kubernetes dari daya komputasi kontainer yang mendasarinya. Lapisan sumber daya komputasi ACS bertanggung jawab atas penjadwalan dan alokasi sumber daya untuk Pod, sedangkan Kubernetes mengelola beban kerja aplikasi seperti Deployment, Service, StatefulSet, dan CronJob di atas lapisan tersebut.

Anda dapat menghubungkan daya komputasi kontainer ACS ke kluster Kubernetes sebagai node virtual. Pendekatan ini memberikan elastisitas tinggi pada kluster Anda tanpa dibatasi oleh kapasitas komputasi nodenya. Ketika ACS mengambil alih pengelolaan infrastruktur dasar untuk Pod, Kubernetes tidak perlu lagi menangani langsung penempatan dan startup Pod individual atau memantau status sumber daya mesin virtual yang mendasarinya. ACS memastikan ketersediaan sumber daya Pod yang diperlukan.

Container Service for Kubernetes (ACK) merupakan salah satu platform Kubernetes bersertifikasi pertama di dunia dan menyediakan layanan manajemen berkinerja tinggi untuk aplikasi berbasis kontainer. Layanan ini terintegrasi dengan kemampuan virtualisasi, penyimpanan, jaringan, dan keamanan Alibaba Cloud untuk menyederhanakan pembuatan dan penskalaan kluster, sehingga Anda dapat fokus mengembangkan dan mengelola aplikasi berbasis kontainer Anda.

Dalam kluster ACK Pro, Anda harus men-deploy node virtual secara manual sebelum membuat Pod ACS. Saat kluster Anda perlu melakukan scale-out, Anda dapat membuat Pod ACS pada node virtual sesuai permintaan tanpa perlu merencanakan kapasitas node terlebih dahulu. Pod ACS dapat berkomunikasi dengan Pod pada node kluster biasa. Untuk beban kerja jangka panjang dengan trafik fluktuatif, kami merekomendasikan menjadwalkannya ke node virtual. Pendekatan ini memaksimalkan pemanfaatan sumber daya, memperpendek waktu scale-out, dan mengurangi biaya. Saat trafik menurun, Anda dapat segera melepaskan Pod tersebut untuk menekan biaya. Setiap Pod pada node virtual berjalan sebagai instans ACS dalam lingkungan kontainer yang aman dan terisolasi. Untuk informasi lebih lanjut, lihat Ikhtisar ACK.

Prasyarat

  • Jika ini pertama kalinya Anda menggunakan layanan ini, aktifkan layanan yang diperlukan dan berikan izin yang sesuai:

    • Aktifkan Container Service for Kubernetes, berikan izin kepada peran default, dan aktifkan layanan cloud yang diperlukan. Untuk informasi lebih lanjut, lihat Buat kluster ACK Pro.

    • Masuk ke Konsol Container Compute Service dan ikuti petunjuk di layar untuk mengaktifkan ACS.

  • Diperlukan kluster ACK Pro yang menjalankan Kubernetes versi 1.26 atau lebih baru. Untuk informasi lebih lanjut, lihat Buat kluster ACK Pro. Untuk informasi tentang cara meningkatkan kluster, lihat Tingkatkan kluster ACK.

  • Untuk kluster ACK Pro, komponen node virtual (ACK Virtual Node) harus memenuhi persyaratan versi yang sesuai dengan versi Kubernetes.

    Versi Kubernetes

    Versi komponen ACK Virtual Node

    1.26 atau lebih baru

    v2.13.0 atau lebih baru

Instal komponen ACK Virtual Node

Lakukan langkah-langkah berikut:

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Components and Add-ons.

  3. Pada tab Core Components, temukan komponen ACK Virtual Node dan klik Install atau Upgrade ke versi yang diperlukan.

    Anda juga dapat membuka halaman Manajemen Komponen dengan memilih Operations > Component Management di panel navigasi kiri halaman detail kluster.

  4. Jika diminta untuk Activate and Authorize ACS sebelum menginstal ACK Virtual Node, ikuti petunjuk di layar. Setelah mengaktifkan ACS dan memberikan izin yang diperlukan, klik OK untuk melanjutkan instalasi.

  5. Setelah instalasi selesai, pilih Nodes > Nodes di panel navigasi kiri. Nama node virtual baru secara default diawali dengan virtual-kubelet-.

Contoh: Gunakan daya komputasi CPU ACS

Setelah komponen ACK Virtual Node diinstal atau ditingkatkan ke versi yang ditentukan dalam bagian Prasyarat, komponen tersebut akan mendukung daya komputasi ACS maupun ECI.

Catatan

Saat Anda menjadwalkan Pod ke node virtual, daya komputasi Elastic Container Instance (ECI) digunakan secara default kecuali Anda menentukan ACS.

Untuk menggunakan daya komputasi CPU ACS dalam ACK, lakukan langkah-langkah berikut:

  1. Jadwalkan Pod ke node virtual menggunakan metode seperti nodeSelector, affinity, ResourcePolicy, atau dengan menambahkan label alibabacloud.com/acs: "true". Untuk informasi lebih lanjut, lihat Node affinity.

    Catatan

    Penjadwalan menggunakan label alibabacloud.com/acs: "true" tidak didukung dalam kluster ACK Serverless. Fitur ini saat ini didukung dalam kluster ACK Pro, kluster khusus ACK, kluster terdaftar ACK One, dan kluster ACK Edge.

  2. Tentukan tipe instans untuk Pod ACS menggunakan label alibabacloud.com/compute-class:<compute-type>. Untuk informasi lebih lanjut tentang tipe instans ACS, lihat Instans Pod ACS.

Langkah-langkah berikut memberikan contoh terperinci:

  1. Deploy Deployment.

    Penting

    Jika Anda menjadwalkan Pod dengan menambahkan label alibabacloud.com/acs: "true", StorageClass bertipe WaitForFirstConsumer tidak didukung. Oleh karena itu, saat menggunakan daya komputasi ACS dalam kluster ACK dan Pod ACS perlu memasang disk cloud, jadwalkan Pod tersebut ke node virtual menggunakan nodeSelector atau ResourcePolicy. Untuk informasi lebih lanjut tentang cara mengonfigurasi ResourcePolicy, lihat Kluster ACK Pro mendukung penjadwalan hibrid daya komputasi ECS dan ACS.

    NodeSelector

    1. Jalankan perintah berikut untuk melihat label node virtual. Ganti virtual-kubelet-cn-hangzhou-k dengan nama node virtual Anda.

      kubectl get node virtual-kubelet-cn-hangzhou-k -oyaml

      Berikut ini cuplikan bagian labels:

      apiVersion: v1
      kind: Node
      metadata:
        labels:
          kubernetes.io/arch: amd64
          kubernetes.io/hostname: virtual-kubelet-cn-hangzhou-k
          kubernetes.io/os: linux
          kubernetes.io/role: agent
          service.alibabacloud.com/exclude-node: "true"
          topology.diskplugin.csi.alibabacloud.com/zone: cn-hangzhou-k
          topology.kubernetes.io/region: cn-hangzhou
          topology.kubernetes.io/zone: cn-hangzhou-k
          type: virtual-kubelet # Gunakan label ini untuk menjadwalkan Pod ke node virtual.
        name: virtual-kubelet-cn-hangzhou-k
      spec:
        taints:
        - effect: NoSchedule
          key: virtual-kubelet.io/provider
          value: alibabacloud 
    2. Buat file bernama nginx.yaml dengan konten berikut untuk men-deploy dua Pod.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx
        labels:
          app: nginx
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            name: nginx
            labels:
              app: nginx 
              alibabacloud.com/compute-class: general-purpose # Tentukan kelas komputasi untuk Pod ACS. Default: general-purpose.
              alibabacloud.com/compute-qos: default # Tentukan kelas QoS untuk Pod ACS. Default: default.
          spec:
            nodeSelector:
              type: virtual-kubelet # Jadwalkan Pod ke node virtual.
            tolerations:
            - key: "virtual-kubelet.io/provider" # Toleransi taint pada node virtual. 
              operator: "Exists"
              effect: "NoSchedule"
            containers:
            - name: nginx
              image: registry.openanolis.cn/openanolis/nginx:1.14.1-8.6
              resources:
                limits:
                  cpu: 2
                requests:
                  cpu: 2
    3. Buat aplikasi NGINX dan periksa hasil deployment.

      1. Jalankan perintah berikut untuk membuat aplikasi NGINX.

        kubectl apply -f nginx.yaml 
      2. Jalankan perintah berikut untuk memeriksa hasil deployment.

        kubectl get pods -o wide

        Output yang diharapkan:

        NAME                    READY   STATUS    RESTARTS   AGE   IP               NODE                            NOMINATED NODE   READINESS GATES
        nginx-9cdf7bbf9-s****   1/1     Running   0          36s   10.0.6.68        virtual-kubelet-cn-hangzhou-j   <none>           <none>
        nginx-9cdf7bbf9-v****   1/1     Running   0          36s   10.0.6.67        virtual-kubelet-cn-hangzhou-k   <none>           <none>

        Output menunjukkan bahwa nodeSelector telah menjadwalkan kedua Pod ke node dengan label type=virtual-kubelet.

    Penjadwalan berdasarkan label Pod

    1. Buat file bernama nginx.yaml dengan konten berikut.

      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" # Konfigurasikan Pod untuk menggunakan daya komputasi ACS.
              alibabacloud.com/compute-class: general-purpose # Tentukan kelas komputasi untuk Pod ACS. Default: general-purpose.
              alibabacloud.com/compute-qos: default # Tentukan kelas QoS untuk Pod ACS. Default: default.
          spec:
            containers:
            - name: nginx
              image: registry.openanolis.cn/openanolis/nginx:1.14.1-8.6
              resources:
                limits:
                  cpu: 2
                requests:
                  cpu: 2
    2. Buat aplikasi NGINX dan periksa hasil deployment.

      1. Jalankan perintah berikut untuk membuat aplikasi NGINX.

        kubectl apply -f nginx.yaml 
      2. Jalankan perintah berikut untuk memeriksa hasil deployment.

        kubectl get pods -o wide

        Output yang diharapkan:

        NAME                    READY   STATUS    RESTARTS   AGE   IP               NODE                            NOMINATED NODE   READINESS GATES
        nginx-9cdf7bbf9-s****   1/1     Running   0          36s   10.0.6.68        virtual-kubelet-cn-hangzhou-j   <none>           <none>
        nginx-9cdf7bbf9-v****   1/1     Running   0          36s   10.0.6.67        virtual-kubelet-cn-hangzhou-k   <none>           <none>

        Output menunjukkan bahwa Pod dijadwalkan ke node virtual, sebagaimana ditentukan oleh alibabacloud.com/acs: "true" label.

  2. Periksa detail Pod NGINX untuk memastikan bahwa Pod tersebut merupakan instans Pod ACS.

    1. Jalankan perintah berikut untuk melihat detail Pod NGINX.

      kubectl describe pod nginx-9cdf7bbf9-s**** 

      Output yang diharapkan (informasi penting):

      Annotations:      ProviderCreate: done
                        alibabacloud.com/client-token: edf29202-54ac-438e-9626-a1ca007xxxxx
                        alibabacloud.com/instance-id: acs-2ze008giupcyaqbxxxxx
                        alibabacloud.com/pod-ephemeral-storage: 30Gi
                        alibabacloud.com/pod-use-spec: 2-4Gi
                        alibabacloud.com/request-id: A0EF3BF3-37E7-5A07-AC2D-68A0CFCxxxxx
                        alibabacloud.com/schedule-result: finished
                        alibabacloud.com/user-id: 14889995898xxxxx
                        kubernetes.io/pod-stream-port: 10250
                        kubernetes.io/preferred-scheduling-node: virtual-kubelet-cn-hangzhou-j/1
                        kubernetes.io/resource-type: serverless

      Anotasi alibabacloud.com/instance-id: acs-2ze008giupcyaqbxxxxx mengonfirmasi bahwa Pod tersebut merupakan instans Pod ACS.

Contoh: Gunakan daya komputasi GPU ACS

Proses penggunaan daya komputasi GPU ACS mirip dengan daya komputasi CPU ACS, tetapi memerlukan versi komponen tertentu dan beberapa konfigurasi tambahan.

Konfigurasi komponen

Untuk kluster ACK Pro dengan versi Kubernetes berbeda, komponen kube-scheduler harus memenuhi persyaratan versi berikut.

Versi Kubernetes

Versi kube-scheduler

1.26 atau lebih baru

  • Untuk kluster 1.31, versi scheduler harus v1.31.0-aliyun.6.8.4.8f585f26 atau lebih baru.

  • Untuk kluster 1.30, versi scheduler harus v1.30.3-aliyun.6.8.4.946f90e8 atau lebih baru.

  • Untuk kluster 1.28, versi scheduler harus v1.28.12-aliyun-6.8.4.b27c0009 atau lebih baru.

  • Untuk kluster 1.26, versi scheduler harus v1.26.3-aliyun-6.8.4.4b180111 atau lebih baru.

Penggunaan

...     
     labels:
        # Nyatakan kebutuhan sumber daya GPU ACS dalam label.
        alibabacloud.com/compute-class: gpu     # Untuk tipe GPU, gunakan nilai tetap 'gpu'.
        alibabacloud.com/compute-qos: default   # Kelas QoS. Artinya sama seperti untuk daya komputasi ACS biasa.
        alibabacloud.com/gpu-model-series: example-model  # Seri model GPU. Ganti dengan model aktual Anda, seperti T4.
...
Catatan
  1. Contoh berikut menunjukkan tiga cara berbeda untuk mengonfigurasi daya komputasi GPU.

    NodeSelector

    Gunakan YAML berikut untuk membuat beban kerja GPU.

    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
            # Atribut ACS
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            alibabacloud.com/gpu-model-series: example-model  # Seri model GPU. Ganti dengan model aktual Anda, seperti T4.
        spec:
          # Tentukan label untuk node virtual.
          nodeSelector:
            type: virtual-kubelet
          # Toleransi taint node virtual.
          tolerations:
          - key: "virtual-kubelet.io/provider" # Toleransi taint pada node virtual.
            operator: "Exists"
            effect: "NoSchedule"
          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"

    ResourcePolicy

    Gunakan YAML berikut untuk membuat beban kerja GPU.

    apiVersion: scheduling.alibabacloud.com/v1alpha1
    kind: ResourcePolicy
    metadata:
      name: dep-rp-demo
      namespace: default
    spec:
      selector:
        app: dep-rp-demo
      units:
      - resource: acs
        podLabels:
          alibabacloud.com/compute-class: gpu
          alibabacloud.com/compute-qos: default
          alibabacloud.com/gpu-model-series: example-model  # Seri model GPU. Ganti dengan model aktual Anda, seperti T4.
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dep-rp-demo
      labels:
        app: dep-rp-demo
      annotations:
        resourcePolicy: "dep-rp-demo"  # Referensikan nama ResourcePolicy.
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: dep-rp-demo
      template:
        metadata:
          labels:
            app: dep-rp-demo
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            alibabacloud.com/gpu-model-series: example-model  # Seri model GPU. Ganti dengan model aktual Anda, seperti T4.
        spec:
          containers:
          - name: 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"

    Untuk informasi lebih lanjut tentang penggunaan ResourcePolicy untuk penjadwalan sumber daya, lihat Penjadwalan prioritas sumber daya kustom.

    Penjadwalan berdasarkan label Pod

    Gunakan YAML berikut untuk membuat beban kerja GPU.

    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
            # Atribut ACS
            alibabacloud.com/acs: "true" # Konfigurasikan Pod untuk menggunakan daya komputasi ACS.
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            alibabacloud.com/gpu-model-series: example-model  # Seri model GPU. Ganti dengan model aktual Anda, seperti 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. Jalankan perintah berikut untuk memeriksa status beban kerja GPU.

    kubectl get pod node-selector-demo-9cdf7bbf9-s**** -oyaml

    Output yang diharapkan (informasi penting):

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

Contoh: Gunakan daya komputasi GPU HPN ACS

Proses penggunaan daya komputasi GPU HPN ACS mirip dengan daya komputasi CPU ACS, tetapi dengan persyaratan berikut:

  • Fitur ini hanya didukung dalam kluster ACK Pro, kluster terdaftar ACK One, dan kluster Argo alur kerja terdistribusi ACK One.

  • Anda harus membeli reservasi kapasitas GPU-HPN terlebih dahulu dan mengaitkannya dengan kluster Anda.

  • Versi kube-scheduler harus memenuhi persyaratan berikut:

    Versi Kubernetes

    Versi kube-scheduler

    1.28

    v1.28.12-aliyun-6.9.3.cd73f3fe atau lebih baru.

    1.30

    v1.30.3-aliyun.6.9.3.ce7e2faf atau lebih baru.

    1.31

    v1.31.0-aliyun.6.9.3.051bb0e8 atau lebih baru.

    1.32

    v1.32.0-aliyun.6.9.3.515ac311 atau lebih baru.

    1.33

    v1.33.0-aliyun.6.9.4.8b58e6b4 atau lebih baru.

  • Komponen ACK Virtual Node harus v2.15.0 atau lebih baru.

Penggunaan

...     
labels:
  # Nyatakan kebutuhan sumber daya GPU ACS dalam label.
  alibabacloud.com/compute-class: gpu-hpn     # Harus diatur ke gpu-hpn.
  alibabacloud.com/compute-qos: default   # Kelas QoS. Artinya sama seperti untuk daya komputasi ACS biasa.
...
Catatan
  • Untuk informasi lebih lanjut tentang kelas komputasi dan kelas QoS ACS, lihat Hubungan antara kelas komputasi dan kelas QoS.

  • Untuk informasi tentang parameter lain untuk Pod ACS, lihat Konfigurasikan Pod ACS.

  • Node GPU HPN ACS hanya dapat menjadwalkan Pod dengan kelas komputasi gpu-hpn. Anda tidak perlu menentukan kebutuhan sumber daya GPU dalam deklarasi sumber daya Pod untuk Pod tersebut. Node tersebut tidak dapat menjadwalkan Pod dengan kelas komputasi lain atau Pod yang tidak mendeklarasikan kelas komputasi.

  1. Anda dapat menggunakan nodeSelector Kubernetes untuk menjadwalkan Pod ke node GPU HPN.

    Penting

    Saat mengonfigurasi Pod GPU HPN ACS, perhatikan bidang-bidang berikut:

    • Tentukan kelas komputasi: alibabacloud.com/compute-class: gpu-hpn.

    • Tentukan label node reservasi: alibabacloud.com/node-type: reserved.

    • Untuk nama sumber daya perangkat dalam bidang requests dan limits spesifikasi sumber daya, tentukan nama berdasarkan tipe kartu perangkat aktual, seperti NVIDIA atau lainnya.

    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
            # Atribut ACS
            alibabacloud.com/compute-class: gpu-hpn
            alibabacloud.com/compute-qos: default
        spec:
          # Tentukan label untuk node reservasi GPU HPN.
          nodeSelector:
            alibabacloud.com/node-type: reserved
          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" # Gunakan nama sumber daya yang sesuai dengan model GPU aktual Anda.
              requests:
                cpu: 1
                memory: 1Gi
                nvidia.com/gpu: "1" # Gunakan nama sumber daya yang sesuai dengan model GPU aktual Anda.
  2. Periksa status beban kerja GPU.

    kubectl get pod node-selector-demo-9cdf7bbf9-s**** -oyaml

    Output yang diharapkan (informasi penting):

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