全部产品
Search
文档中心

Container Service for Kubernetes:Letakkan instance ECS dan instance kontainer elastis dalam Knative

更新时间:Jul 06, 2025

Saat menggunakan Knative untuk menerapkan aplikasi, Anda dapat mengonfigurasi Knative agar pod diterapkan pada instance Elastic Compute Service (ECS) yang ada selama jam non-puncak dan secara otomatis membuat instance kontainer elastis untuk menangani lonjakan lalu lintas. Untuk melakukannya, buat ResourcePolicy untuk menentukan prioritas instance ECS dan instance kontainer elastis dalam aktivitas penskalaan keluar. Saat aktivitas penskalaan masuk dilakukan, instance ECS atau instance kontainer elastis dilepaskan berdasarkan prioritas yang ditentukan oleh ResourcePolicy dalam urutan terbalik. Dalam hal ini, instance kontainer elastis lebih disukai untuk dilepaskan.

Batasan

  • Penjadwalan sumber daya berbasis prioritas saling eksklusif dengan fitur biaya penghapusan pod. Untuk informasi lebih lanjut tentang fitur biaya penghapusan pod, lihat Biaya penghapusan pod.

  • Anda tidak dapat menggunakan penjadwalan sumber daya berbasis prioritas dan penjadwalan berbasis Elastic Container Instance secara bersamaan. Untuk informasi lebih lanjut tentang penjadwalan berbasis Elastic Container Instance, lihat Gunakan penjadwalan berbasis Elastic Container Instance.

  • Fitur ini menggunakan kebijakan BestEffort dan tidak menjamin bahwa pod dihapus dari node berdasarkan prioritas node dalam urutan menaik ketika sistem menskalakan pod untuk aplikasi.

  • Parameter max hanya tersedia jika kluster Anda menjalankan Kubernetes 1.22 atau lebih baru dan versi scheduler yang diinstal di kluster Anda adalah 5.0 atau lebih baru.

  • Jika Anda menggunakan fitur ini bersama dengan kolam node elastis, node yang tidak valid mungkin ditambahkan ke kolam node elastis. Pastikan bahwa kolam node elastis termasuk dalam unit. Jangan tentukan parameter max untuk unit tersebut.

  • Jika Anda menggunakan versi scheduler sebelum 5.0 atau versi Kubernetes kluster Anda adalah 1.20 atau lebih lama, pod yang sudah ada sebelum ResourcePolicy dibuat diprioritaskan selama aktivitas penskalaan masuk.

  • Jika Anda menggunakan versi scheduler sebelum 6.1 atau versi Kubernetes kluster Anda adalah 1.20 atau lebih lama, jangan modifikasi ResourcePolicy sebelum semua pod yang dipilih oleh ResourcePolicy dihapus.

Prosedur

Buat ResourcePolicy untuk menentukan prioritas sumber daya elastis yang berbeda. Dalam contoh ini, instance ECS memiliki prioritas lebih tinggi daripada instance kontainer elastis. Ketika instance ECS tidak mencukupi atau jumlah pod yang diterapkan pada instance ECS mencapai batas atas, instance kontainer elastis dibuat untuk menampung pod. Saat aplikasi diskalakan masuk, instance kontainer elastis lebih disukai untuk dilepaskan.

  1. Buat Layanan Knative.

    Kode sampel berikut digunakan sebagai contoh:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
            env:
            - name: TARGET
              value: "Knative"
  2. Buat ResourcePolicy dan tentukan parameter max dan nodeSelector untuk setiap sumber daya node. Parameter max menentukan jumlah maksimum pod yang dapat diterapkan pada sumber daya elastis saat ini.

    Kode sampel berikut digunakan sebagai contoh. Contoh sampel berikut menggambarkan bagaimana instance ECS diprioritaskan untuk penjadwalan pod. Ketika jumlah pod yang diterapkan pada instance ECS mencapai batas atas yang ditentukan oleh max atau instance ECS tidak mencukupi, instance kontainer elastis secara otomatis dibuat untuk menampung pod.

    apiVersion: scheduling.alibabacloud.com/v1alpha1
    kind: ResourcePolicy
    metadata:
      name: xxx
      namespace: xxx
    spec:
      selector:
        serving.knative.dev/service: helloworld-go # Tentukan nama Layanan Knative.
      strategy: prefer
      units: 
      - resource: ecs
        max: 10
        nodeSelector:
          key2: value2
      - resource: ecs
        nodeSelector:
          key3: value3
      - resource: eci

Referensi

Untuk informasi lebih lanjut tentang cara menentukan prioritas sumber daya elastis, lihat Konfigurasikan penjadwalan sumber daya berbasis prioritas.