全部产品
Search
文档中心

Container Service for Kubernetes:Jadwalkan pod pada ACS menggunakan node virtual

更新时间:Jan 24, 2026

Topik ini menjelaskan cara menjadwalkan pod dari kluster terdaftar ACK One ke daya komputasi Alibaba Cloud Serverless (ACS) menggunakan node virtual. Node virtual memungkinkan Anda menjalankan workload pada ACS tanpa perlu menyediakan atau mengelola node fisik.

Cara kerja

Node virtual mengintegrasikan daya komputasi ACS ke dalam kluster terdaftar ACK One Anda. Setelah komponen ack-virtual-node diinstal, sebuah node virtual akan dibuat di kluster Anda. Saat Anda menjadwalkan pod ke node virtual tersebut, ACS secara otomatis menyediakan sumber daya komputasi arsitektur tanpa server untuk pod tersebut. Pod tersebut berjalan di lingkungan terisolasi pada ACS dan dapat berkomunikasi dengan pod lain di kluster. Node virtual sangat ideal untuk workload dengan pola lalu lintas yang bervariasi atau tidak dapat diprediksi karena dapat diskalakan sesuai permintaan tanpa perlu menyediakan atau mengelola node fisik.

image

Untuk informasi selengkapnya tentang node virtual, lihat Ikhtisar kluster terdaftar.

Prasyarat

  • Anda telah membuat kluster terdaftar ACK One dan menghubungkannya ke kluster Kubernetes. Diperlukan Kubernetes versi 1.24 atau lebih baru. Untuk informasi selengkapnya, lihat Buat kluster terdaftar ACK One.

  • Komponen ack-virtual-node versi 2.13.0 atau lebih baru telah diinstal di kluster terdaftar. Untuk informasi selengkapnya, lihat Instal komponen ack-virtual-node.

Konfigurasikan izin RAM untuk komponen ack-virtual-node

onectl

  1. Instal onectl di mesin lokal Anda. Untuk informasi selengkapnya, lihat Gunakan onectl untuk mengelola kluster terdaftar.

  2. Jalankan perintah berikut untuk mengonfigurasi izin RAM untuk komponen ack-virtual-node:

    onectl ram-user grant --addon ack-virtual-node

    Output yang diharapkan:

    Ram policy ack-one-registered-cluster-policy-ack-virtual-node granted to ram user ack-one-user-ce313528c3 successfully.

Console

Sebelum menginstal komponen, buat Pengguna RAM, berikan izin yang diperlukan, dan buat AccessKey untuknya. Anda akan menggunakan AccessKey ini untuk membuat Secret yang memungkinkan komponen mengakses layanan cloud.

  1. Buka Konsol RAM.

  2. (Opsional) Buat kebijakan kustom. Gunakan konten kebijakan berikut.

    Templat kebijakan kustom

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "vpc:DescribeVSwitches",
                    "vpc:DescribeVpcs"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "eci:CreateContainerGroup",
                    "eci:DeleteContainerGroup",
                    "eci:DescribeContainerGroups",
                    "eci:DescribeContainerGroupStatus",
                    "eci:DescribeContainerGroupEvents",
                    "eci:DescribeContainerLog",
                    "eci:UpdateContainerGroup",
                    "eci:UpdateContainerGroupByTemplate",
                    "eci:CreateContainerGroupFromTemplate",
                    "eci:RestartContainerGroup",
                    "eci:ExportContainerGroupTemplate",
                    "eci:DescribeContainerGroupMetric",
                    "eci:DescribeMultiContainerGroupMetric",
                    "eci:ExecContainerCommand",
                    "eci:CreateImageCache",
                    "eci:DescribeImageCaches",
                    "eci:DeleteImageCache",
                    "eci:DescribeContainerGroupMetaInfos",
                    "eci:UpdateImageCache",
                    "eci:RestartContainer",
                    "eci:RestartContainers"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "acc:RecommendZones",
                    "acc:DescribeZones",
                    "acc:CreateInstance",
                    "acc:UpdateInstance",
                    "acc:DeleteInstance",
                    "acc:RestartInstance",
                    "acc:DescribeInstances",
                    "acc:DescribeInstanceStatus",
                    "acc:DescribeInstanceEvents",
                    "acc:DescribeInstanceDetail",
                    "acc:DescribeMultiInstanceMetric",
                    "acc:DescribeContainerLog",
                    "acc:ResizeInstanceVolume",
                    "acc:CreateCustomResource",
                    "acc:UpdateCustomResource",
                    "acc:DeleteCustomResource",
                    "acc:DescribeCustomResources",
                    "acc:DescribeCustomResourceDetail",
                    "acc:DescribeReservationMetrics"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  3. Berikan izin kepada Pengguna RAM. Anda dapat melampirkan kebijakan sistem AliyunECIFullAccess, AliyunVPCReadOnlyAccess, dan AliyunAccFullAccess, atau lampirkan kebijakan kustom yang telah Anda buat.

  4. Buat AccessKey untuk Pengguna RAM tersebut.

    Peringatan

    Konfigurasikan kebijakan akses jaringan seperti yang dijelaskan dalam Kebijakan kontrol akses jaringan untuk AccessKey untuk membatasi panggilan AccessKey hanya pada lingkungan jaringan tepercaya. Hal ini meningkatkan keamanan AccessKey Anda.

  5. Gunakan AccessKey tersebut untuk membuat Secret bernama alibaba-addon-secret di kluster terdaftar.

    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your access key id>' --from-literal='access-key-secret=<your access key secret>'

    Di sini <your access key id> dan <your access key secret> adalah nilai AccessKey yang Anda peroleh pada langkah sebelumnya.

    Saat Anda menginstal komponen ack-virtual-node, komponen tersebut secara otomatis menggunakan AccessKey ini untuk mengakses layanan cloud yang sesuai.

Contoh: Gunakan daya komputasi CPU ACS

Setelah Anda menginstal atau memperbarui komponen ack-virtual-node ke versi 2.13.0 atau lebih baru, komponen tersebut mendukung daya komputasi ACS maupun Elastic Container Instance (ECI).

Catatan

Dalam skenario di mana pod dijadwalkan ke node virtual, ECI digunakan secara default jika Anda tidak menentukan ACS sebagai tipe daya komputasi.

Lakukan langkah-langkah berikut untuk menggunakan daya komputasi CPU ACS dengan kluster terdaftar ACK One:

  1. Perbarui konfigurasi grup keamanan kluster terdaftar.

  2. Pada halaman Basic Information kluster, klik ID Control Plane Security Group.

  3. Pada halaman detail grup keamanan, klik Add Rule. Konfigurasikan aturan dengan nilai-nilai berikut.

    Rule Type

    Protocol

    Port Range

    Source IP Range

    Description

    Inbound

    TCP

    80

    Blok CIDR kluster IDC, misalnya, 192.168.1.0/24.

    Untuk mengonfigurasi skenario titik akhir ACS.

    Inbound

    TCP

    443

    Blok CIDR kluster IDC, misalnya, 192.168.1.0/24.

    Untuk mengonfigurasi skenario titik akhir ACS.

    Inbound

    TCP

    10250

    Blok CIDR kluster IDC, misalnya, 192.168.1.0/24.

    Port yang didengarkan oleh layanan kubelet arsitektur tanpa server.

  4. Buat Penyebaran yang menggunakan daya komputasi ACS.

  5. Buat file bernama nginx.yaml dan salin konten berikut ke dalam file tersebut:

    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 untuk menggunakan daya komputasi ACS.
            alibabacloud.com/compute-class: general-purpose # Konfigurasikan tipe daya komputasi untuk pod ACS.
            alibabacloud.com/compute-qos: default # Konfigurasikan kualitas daya komputasi untuk pod ACS.
        spec:
          containers:
          - name: nginx
            image: mirrors-ssl.aliyuncs.com/nginx:stable-alpine
            ports:
              - containerPort: 80
                protocol: TCP 
            resources:
              limits:
                cpu: 2
              requests:
                cpu: 2
  6. Jalankan perintah berikut untuk membuat aplikasi nginx:

    kubectl apply -f nginx.yaml 
  7. Jalankan perintah berikut untuk memeriksa status penyebaran:

    kubectl get pods -o wide

    Output yang diharapkan (disederhanakan):

    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>

    Output tersebut menunjukkan bahwa kedua pod dijadwalkan ke node dengan label type=virtual-kubelet.

  8. Jalankan perintah berikut untuk melihat detail pod nginx:

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

    Output yang diharapkan:

    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

    Jika output berisi Annotation alibabacloud.com/instance-id: acs-uf6008giwgjxlvn*****, maka pod tersebut merupakan instans pod ACS.

Contoh: Gunakan daya komputasi GPU ACS

Daya komputasi GPU ACS untuk kluster terdaftar ACK One sedang dalam pratinjau undangan. Untuk mengaktifkan fitur ini, submit a tick.

Konfigurasikan workload GPU

Setelah fitur diaktifkan, Anda dapat mengonfigurasi workload GPU. Contoh berikut menunjukkan label yang diperlukan untuk menjadwalkan pod ke daya komputasi GPU ACS:

...     
     labels:
        # Deklarasikan persyaratan sumber daya GPU ACS dalam label.
        alibabacloud.com/compute-class: gpu     # Jika tipe-nya GPU, atur ke gpu.
        alibabacloud.com/compute-qos: default   # Tipe QoS untuk komputasi. Maknanya sama seperti daya komputasi ACS biasa.
        alibabacloud.com/gpu-model-series: GN8IS  # Model GPU. Ganti dengan model aktual.
...
Catatan
  1. Buat workload GPU menggunakan contoh YAML berikut:

    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
            # Properti ACS
            alibabacloud.com/acs: "true" # Konfigurasikan untuk menggunakan daya komputasi ACS.
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            alibabacloud.com/gpu-model-series: example-model  # Model kartu GPU. Ganti sesuai kebutuhan, misalnya 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 berjalan workload GPU:

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

    Output yang diharapkan:

        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 penggunaan daya komputasi CPU ACS, tetapi memiliki persyaratan berikut:

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

  • Daya komputasi GPU HPN ACS memerlukan peningkatan komponen ack-virtual-node. Versi komponen yang diperlukan saat ini sedang dalam pratinjau undangan. Untuk mengaktifkan fitur ini, submit a ticket.

Konfigurasikan workload GPU HPN

Untuk menggunakan daya komputasi GPU HPN ACS, konfigurasikan label berikut dalam spesifikasi pod Anda:

...     
labels:
  # Deklarasikan persyaratan sumber daya GPU ACS dalam label.
  alibabacloud.com/compute-class: gpu-hpn     # Atur ke tipe gpu-hpn.
  alibabacloud.com/compute-qos: default    # Tipe QoS komputasi. Maknanya sama seperti daya komputasi ACS biasa.
  alibabacloud.com/acs: "true"           # Label untuk mengonfigurasi penggunaan daya komputasi ACS.
...
Catatan
  • Untuk informasi selengkapnya tentang hubungan antara tipe komputasi ACS dan kualitas daya komputasi, lihat Hubungan antara tipe komputasi dan kualitas daya komputasi.

  • Untuk informasi selengkapnya tentang parameter lain dari pod ACS, lihat ACS Pod.

  • Node tipe ACS GPU HPN hanya dapat menjadwalkan pod dengan kelas komputasi gpu-hpn. Persyaratan sumber daya GPU dapat dihilangkan dari deklarasi sumber daya pod. Node ini tidak dapat menjadwalkan pod dengan kelas komputasi lain atau pod yang tidak memiliki deklarasi kelas komputasi.

  1. Gunakan nodeSelector Kubernetes untuk menjadwalkan Pod ke node GPU HPN. Contohnya:

    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
            # Properti ACS
            alibabacloud.com/compute-class: gpu-hpn
            alibabacloud.com/compute-qos: default
            alibabacloud.com/acs: "true" 
        spec:
          # Tentukan label 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" # Masukkan nama sumber daya yang sesuai berdasarkan model kartu aktual.
              requests:
                cpu: 1
                memory: 1Gi
                nvidia.com/gpu: "1" # Masukkan nama sumber daya yang sesuai berdasarkan model kartu aktual.
    Penting

    Untuk pod tipe ACS GPU HPN, perhatikan konfigurasi 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 di bidang requests dan limits dalam spesifikasi sumber daya, gunakan model perangkat aktual, seperti NVIDIA.

  2. Lihat status berjalan workload GPU.

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

    Output berikut adalah cuplikan informasi penting:

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