全部产品
Search
文档中心

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

更新时间:Jul 02, 2025

Container Compute Service (ACS) diintegrasikan dengan kluster terdaftar Distributed Cloud Container Platform for Kubernetes (ACK One). Anda dapat memanfaatkan kluster terdaftar ACK One untuk mengakses daya komputasi yang disediakan oleh ACS. Topik ini menjelaskan cara menggunakan daya komputasi ACS dalam kluster terdaftar ACK One.

Cara menggunakan daya komputasi ACS di kluster terdaftar ACK One

Container Compute Service (ACS) adalah layanan komputasi awan yang menyediakan sumber daya kontainer sesuai spesifikasi Kubernetes. ACS menggunakan arsitektur berlapis untuk mengimplementasikan kontrol Kubernetes dan daya komputasi. Lapisan sumber daya komputasi bertugas menjadwalkan dan mengalokasikan sumber daya ke pod, sedangkan lapisan kontrol Kubernetes mengelola beban kerja seperti Deployment, Layanan, StatefulSet, dan CronJob.

Daya komputasi ACS dapat diimplementasikan di kluster Kubernetes melalui node virtual. Dengan pendekatan ini, kluster Kubernetes mendapatkan elastisitas tinggi tanpa dibatasi oleh kapasitas komputasi fisik. Setelah menggunakan ACS untuk mengelola infrastruktur pod, kluster Kubernetes tidak perlu lagi menjadwalkan atau meluncurkan pod secara individual, serta tidak perlu memperhatikan sumber daya VM bawahnya. ACS dapat memenuhi kebutuhan sumber daya pod kapan saja.

Di kluster terdaftar ACK One, Anda harus menginstal komponen ack-virtual-node untuk menerapkan node virtual dan membuat pod ACS. Jika memerlukan peningkatan kapasitas kluster, Anda dapat membuat pod ACS pada node virtual tanpa merencanakan kapasitas sumber daya node. Pod ACS dapat berkomunikasi dengan pod pada node fisik di kluster. Untuk efisiensi sumber daya, waktu penskalaan lebih singkat, dan pengurangan biaya, kami sarankan menjadwalkan beban kerja jangka panjang dengan lalu lintas elastis ke node virtual. Saat lalu lintas bisnis menurun, pod pada node virtual dapat dilepaskan dengan cepat untuk mengurangi biaya. Pod pada node virtual beroperasi di lingkungan aman dan terisolasi yang dibangun di atas ACS, yang disebut sebagai pod ACS. Untuk informasi lebih lanjut, lihat Ikhtisar kluster terdaftar.

Prasyarat

Cara menggunakan daya komputasi CPU ACS di kluster terdaftar ACK One

Setelah menginstal versi yang diperlukan dari ACK Virtual Node atau memperbarui komponen ke versi 2.13.0 atau lebih baru, Anda dapat membuat pod ACS dan instance kontainer elastis.

Catatan

Saat menjadwalkan pod ke node virtual, jika Anda tidak menentukan kelas komputasi pod, instance kontainer elastis diprioritaskan untuk penjadwalan pod secara default.

Untuk menggunakan daya komputasi ACS di kluster ACK, ikuti langkah-langkah berikut:

  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" # Gunakan daya komputasi ACS.
            alibabacloud.com/compute-class: general-purpose # Kelas komputasi pod ACS.
            alibabacloud.com/compute-qos: default # Kelas QoS 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
  2. Jalankan perintah berikut untuk membuat aplikasi NGINX:

    kubectl apply -f nginx.yaml 
  3. Jalankan perintah berikut untuk memeriksa apakah aplikasi NGINX telah diterapkan:

    kubectl get pods -o wide

    Output yang diharapkan:

    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 perintah menunjukkan bahwa kedua pod diterapkan pada node dengan type=virtual-kubelet label, yang ditentukan oleh parameter nodeSelector dalam konfigurasi Deployment.

  4. Jalankan perintah berikut untuk menanyakan detail pod yang dibuat untuk aplikasi 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

    Output perintah menunjukkan bahwa konfigurasi pod mencakup anotasi alibabacloud.com/instance-id: acs-uf6008giwgjxlvn*****. Ini menunjukkan bahwa pod tersebut adalah pod ACS.

Cara menggunakan daya komputasi GPU ACS di kluster terdaftar ACK One

Prosedur untuk menggunakan daya komputasi GPU ACS serupa dengan prosedur untuk menggunakan daya komputasi CPU ACS. Namun, Anda juga perlu memastikan bahwa komponen penjadwalan memenuhi persyaratan versi dan menambahkan beberapa konfigurasi tambahan.

Aktivasi

Fitur menggunakan daya komputasi GPU ACS di kluster ACK sedang dalam pratinjau undangan. Untuk menggunakan fitur ini, submit a ticket.

Cara menggunakan daya komputasi ACS di kluster terdaftar ACK One

...     
     labels:
        # Tambahkan label untuk meminta sumber daya GPU ACS.
        alibabacloud.com/compute-class: gpu     #Atur ke gpu jika daya komputasi GPU digunakan.
        alibabacloud.com/compute-qos: default   #Kelas QoS, sama dengan daya komputasi ACS biasa.
        alibabacloud.com/gpu-model-series: GN8IS  # Model GPU. Tentukan model sebenarnya yang Anda gunakan.
...
Catatan
  1. Gunakan konten 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" # Gunakan daya komputasi ACS.
            alibabacloud.com/compute-class: gpu
            alibabacloud.com/compute-qos: default
            alibabacloud.com/gpu-model-series: example-model  # Model GPU. Tentukan model sebenarnya yang ingin Anda gunakan, 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 menanyakan status beban kerja yang dipercepat 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"