All Products
Search
Document Center

Container Service for Kubernetes:Gunakan sumber daya elastis untuk menerapkan penjadwalan berbasis Elastic Container Instance (tidak dilanjutkan)

Last Updated:Jul 06, 2025

Penjadwalan berbasis Elastic Container Instance adalah kebijakan penjadwalan yang disediakan oleh Alibaba Cloud untuk mengelola sumber daya elastis. Anda dapat menambahkan anotasi untuk menentukan sumber daya yang digunakan saat menerapkan aplikasi, seperti hanya menggunakan instance Elastic Compute Service (ECS), hanya instance kontainer elastis, atau meminta instance kontainer elastis ketika sumber daya ECS tidak mencukupi. Penjadwalan ini mendukung berbagai skenario beban kerja. Topik ini menjelaskan cara menggunakannya.

Penting

Versi Kubernetes 1.18 hingga 1.24 tetap mendukung kemampuan penjadwalan elastis dalam Elastic Container Instance. Sejak Mei 2023, Container Service for Kubernetes (ACK) telah menghentikan pemeliharaan fitur ini untuk kluster yang menjalankan Kubernetes v1.24 atau lebih baru. Kami merekomendasikan penggunaan salah satu solusi berikut:

  • Konfigurasikan Alokasi Sumber Daya Berdasarkan Instance ECS dan Instance Kontainer Elastis: Gunakan fitur penjadwalan asli Kubernetes, seperti taints, tolerations, dan node affinity, untuk menegakkan kebijakan penjadwalan seperti hanya Elastic Container Instance, hanya ECS, atau preferensi ECS untuk pod.

  • Konfigurasikan Penjadwalan Sumber Daya Berbasis Prioritas: Dibandingkan dengan penjadwalan Kubernetes asli, ResourcePolicy menawarkan strategi yang lebih canggih dan fleksibel, termasuk:

    • Penjadwalan prioritas ke instance ECS berbasis langganan, diikuti oleh instance ECS bayar sesuai pemakaian, dan akhirnya instance kontainer elastis.

    • Pengurangan skala turun dalam urutan terbalik selama pengurangan sumber daya.

    • Kemampuan migrasi non-intrusif untuk pod yang sedang berjalan.

Untuk perbandingan rinci dan rekomendasi tentang solusi penjadwalan node virtual, lihat Jadwalkan Pod ke Node Virtual.

Prasyarat

  • Tipe kluster adalah ACK managed Pro cluster.

  • Anda menggunakan versi scheduler berikut berdasarkan versi Kubernetes dari kluster. Untuk informasi lebih lanjut tentang fitur dari berbagai versi scheduler, lihat kube-scheduler.

    Versi Kubernetes

    Versi Scheduler

    1.18

    v1.18-ack-3.0 dan yang lebih baru

    1.20

    v1.20.4-ack-4.0 dan yang lebih baru

    1.22

    v1.22.3-ack-1.0 dan yang lebih baru

    1.24

    v1.24.3-ack-2.0 dan yang lebih baru

  • Komponen ack-virtual-node diterapkan di kluster. Untuk informasi lebih lanjut, lihat Jadwalkan Pod ke Instance Kontainer Elastis.

Konfigurasi

Untuk mendeklarasikan jenis sumber daya elastis untuk sebuah pod, tambahkan anotasi alibabacloud.com/burst-resource ke metadata pod. Nilai valid dan aturan penggunaannya adalah sebagai berikut:

Catatan

Anotasi ditambahkan di bawah bagian metadata pod. Misalnya, saat membuat Deployment, tambahkan anotasi di bawah spec.template.metadata.

  • Jika nilainya dibiarkan kosong, hanya sumber daya ECS yang ada di kluster yang digunakan. Ini adalah pengaturan default.

  • eci_only: Hanya instance kontainer elastis yang digunakan. Sumber daya ECS di kluster tidak digunakan.

  • eci: Instance kontainer elastis digunakan ketika sumber daya ECS di kluster tidak mencukupi.

    Penting

    alibabacloud.com/burst-resource: eci bertentangan dengan alibabacloud.com/fluid-sidecar-target: eci. Untuk contoh penggunaan alibabacloud.com/fluid-sidecar-target, lihat Percepat Akses Data dalam Komputasi Awan Tanpa Server dan topik terkait.

Penjadwalan pod gagal jika:

  • Nilai anotasi bukan eci atau eci_only.

  • Nilainya adalah eci_only tetapi tidak ada node virtual di kluster.

Dalam Kubernetes v1.22.15 dan v1.24.6, hubungan antara kegagalan penjadwalan pod dan pesan PodStatus adalah sebagai berikut:

  • Nilainya bukan eci atau eci_only: requesttypemustbeeci,eci_onlyorecs.

  • Nilainya adalah eci_only tetapi tidak ada node virtual: doesn'tfitecitype:eci_only.

Contoh

  1. Buat file bernama nginx-deployment.yaml dan salin konten berikut ke file tersebut:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 4
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: nginx
          annotations:
            alibabacloud.com/burst-resource: eci # Tentukan jenis sumber daya yang ingin digunakan untuk penjadwalan elastis.
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            resources:
              limits:
                cpu: 2
              requests:
                cpu: 2
  2. Jalankan perintah berikut untuk membuat pod yang menggunakan penjadwalan berbasis Elastic Container Instance:

    kubectl apply -f nginx-deployment.yaml