全部产品
Search
文档中心

:Jadwalkan pod ke instance kontainer elastis yang diterapkan sebagai node virtual

更新时间:Jul 06, 2025

Saat menggunakan klaster Container Service for Kubernetes (ACK), Anda mungkin perlu membuat banyak pod dalam waktu singkat. Jika Anda memilih untuk membuat Instance ECS untuk pod tersebut, proses penskalaan akan memakan waktu. Jika Anda memilih untuk memesan Instance ECS, sumber daya akan terbuang. Dengan node virtual ACK, Anda dapat dengan cepat menjadwalkan pod ke instance kontainer elastis tanpa harus membeli atau mengelola Instance ECS. Topik ini menjelaskan cara menjadwalkan pod ke instance kontainer elastis dalam klaster ACK yang dikelola.

Skenario

Anda dapat menggunakan instance kontainer elastis untuk menangani lonjakan lalu lintas dan mengurangi biaya komputasi. Instance kontainer elastis cocok untuk skenario berikut:

  • Layanan online dengan fluktuasi lalu lintas yang jelas

    Lalu lintas dari layanan pendidikan online, e-commerce, dan lainnya biasanya memiliki fluktuasi lalu lintas yang jelas. Menggunakan pod berbasis Elastic Container Instance dapat merespons lonjakan lalu lintas lebih cepat dan mengurangi pemeliharaan kumpulan sumber daya tetap. Ini membantu Anda mengurangi biaya komputasi.

  • Tugas komputasi non-kontinu

    Gunakan pod berbasis Elastic Container Instance untuk menjalankan tugas komputasi. Dengan cara ini, Anda tidak perlu menyediakan node. Anda hanya membayar untuk sumber daya komputasi yang digunakan selama eksekusi tugas. Ini mengurangi biaya komputasi. Tugas-tugas tersebut mencakup tugas Spark dan AI.

Prasyarat

Versi Kubernetes dari klaster ACK adalah 1.16 atau lebih baru, dan wilayah tempat klaster berada mendukung instance kontainer elastis.

Catatan

Periksa apakah wilayah klaster didukung. Untuk informasi lebih lanjut, lihat Wilayah dan zona. Masuk ke Konsol Elastic Container Instance untuk mengaktifkan layanan Elastic Container Instance.

Prosedur

Langkah 1: Terapkan komponen ack-virtual-node

Catatan

Operasi berikut menggunakan klaster ACK yang dikelola sebagai contoh. Untuk klaster ACK khusus, Anda perlu menerapkan komponen ack-virtual-node di halaman Marketplace. Untuk informasi lebih lanjut, lihat Terapkan ack-virtual-node.

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

  2. Di halaman Clusters, temukan klaster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.

  3. Di halaman Add-ons, temukan ACK Virtual Node pada tab Komponen Inti, dan klik Install. Ikuti petunjuk yang disediakan di halaman.

    Selama instalasi, gunakan vSwitch default dan grup keamanan klaster sebagai konfigurasi default dari instance kontainer elastis. Untuk informasi lebih lanjut tentang cara memodifikasi konfigurasi, lihat Konfigurasikan eci-profile.

Langkah 2: Jadwalkan pod ke instance kontainer elastis

Catatan

Operasi berikut menggunakan metode penambahan label ke pod atau namespace sebagai contoh untuk menunjukkan cara menjadwalkan pod ke node virtual untuk dijalankan pada instance kontainer elastis. Untuk informasi lebih lanjut tentang solusi penjadwalan, lihat Jadwalkan pod ke node virtual.

Tambahkan label ke pod

Untuk menjadwalkan pod tertentu agar berjalan pada instance kontainer elastis, tambahkan label seperti alibabacloud.com/eci: "true". Pod tersebut akan dijadwalkan ke node virtual arsitektur x86 untuk dijalankan sebagai instance kontainer elastis.

  1. Buat Deployment menggunakan file YAML berikut:

    kubectl create -f eci-pod.yaml

    Berikut adalah contoh file eci-pod.yaml:

    Catatan

    File YAML berikut menentukan spesifikasi instance kontainer elastis berbasis pod menggunakan anotasi k8s.aliyun.com/eci-use-specs. Untuk informasi lebih lanjut tentang cara mengonfigurasi spesifikasi instance kontainer elastis berbasis pod, lihat Tentukan spesifikasi komputasi instance kontainer elastis.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test
          labels:
            app: nginx
            alibabacloud.com/eci: "true"             # Tambahkan label tertentu untuk menjadwalkan pod ke instance kontainer elastis 
          annotations:
            k8s.aliyun.com/eci-use-specs: "2-4Gi"   # Tentukan bahwa pod berbasis Elastic Container Instance memiliki 2 vCPU dan 4 GiB memori
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
  2. Verifikasi apakah pod sedang berjalan di node virtual.

    kubectl get pod -o wide -l app=nginx

    Output yang diharapkan adalah sebagai berikut. Di bidang NODE, Anda dapat melihat bahwa pod telah dijadwalkan ke node virtual.

    NAME                    READY   STATUS    RESTARTS   AGE   IP            NODE                            NOMINATED NODE   READINESS GATES
    test-86f7fbc94f-g5m22   1/1     Running   0          38s   10.16.XX.XX   virtual-kubelet-cn-hangzhou-j   <none>           <none>
    test-86f7fbc94f-r4wcn   1/1     Running   0          38s   10.16.XX.XX   virtual-kubelet-cn-hangzhou-j   <none>           <none>
  3. Lihat detail pod berbasis Elastic Container Instance.

    kubectl get pod <pod-name> -o yaml

    Dalam file YAML yang dikembalikan, Anda dapat memperoleh ID instance kontainer elastis yang sesuai berdasarkan bidang k8s.aliyun.com/eci-instance-id dan konfirmasi spesifikasi penagihan aktual pod berbasis Elastic Container Instance berdasarkan bidang k8s.aliyun.com/eci-instance-spec.

Tambahkan label ke namespace

Untuk menjadwalkan sekelompok pod agar berjalan pada instance kontainer elastis, buat namespace dan tambahkan label seperti alibabacloud.com/eci: "true". Semua pod dalam namespace ini akan dijadwalkan ke node virtual arsitektur x86 untuk dijalankan sebagai instance kontainer elastis.

  1. Buat namespace bernama vk dan tambahkan label tertentu ke namespace.

    kubectl create ns vk
    kubectl label namespace vk alibabacloud.com/eci=true
  2. Buat Deployment di namespace vk menggunakan file YAML berikut:

    kubectl create -f eci-namespace.yaml

    Berikut adalah contoh file eci-namespace.yaml:

    Catatan

    File YAML berikut menentukan spesifikasi instance kontainer elastis berbasis pod menggunakan anotasi k8s.aliyun.com/eci-use-specs. Untuk informasi lebih lanjut tentang cara mengonfigurasi spesifikasi instance kontainer elastis berbasis pod, lihat Tentukan spesifikasi komputasi instance kontainer elastis.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      namespace: vk       # Tentukan namespace dengan label tertentu untuk menjadwalkan pod ke instance kontainer elastis
      labels:
        app: test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test
          labels:
            app: nginx
          annotations:
            k8s.aliyun.com/eci-use-specs: "2-4Gi"   # Tentukan bahwa pod berbasis Elastic Container Instance memiliki 2 vCPU dan 4 GiB memori
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
  3. Verifikasi apakah pod sedang berjalan di node virtual.

    kubectl get pod -o wide -l app=nginx -n vk

    Output yang diharapkan adalah sebagai berikut. Di bidang NODE, Anda dapat melihat bahwa pod telah dijadwalkan ke node virtual.

    NAME                   READY   STATUS    RESTARTS   AGE   IP            NODE                            NOMINATED NODE   READINESS GATES
    test-8f54bcfb5-86pvc   1/1     Running   0          14s   10.16.XX.XX   virtual-kubelet-cn-hangzhou-j   <none>           <none>
    test-8f54bcfb5-skvkg   1/1     Running   0          14s   10.16.XX.XX   virtual-kubelet-cn-hangzhou-j   <none>           <none>
  4. Lihat detail pod berbasis Elastic Container Instance.

    kubectl get pod <pod-name> -o yaml -n vk

    Dalam file YAML yang dikembalikan, Anda dapat memperoleh ID instance kontainer elastis yang sesuai berdasarkan bidang k8s.aliyun.com/eci-instance-id dan konfirmasi spesifikasi penagihan aktual pod berbasis Elastic Container Instance berdasarkan bidang k8s.aliyun.com/eci-instance-spec.