All Products
Search
Document Center

Container Service for Kubernetes:Jadwalkan pod ke ECI dengan node virtual

Last Updated:Mar 27, 2026

Saat Anda perlu membuat banyak Pod secara cepat, penskalaan instans ECS mungkin tidak cukup cepat, dan menyediakan instans tambahan akan membuang sumber daya. Node virtual ACK memungkinkan Anda menjadwalkan Pod ke Elastic Container Instance (ECI) tanpa harus menyediakan atau mengelola instans ECS. Topik ini menjelaskan cara menjadwalkan Pod agar berjalan di ECI dalam Kluster ACK yang dikelola.

Catatan penggunaan

Untuk kube-scheduler v6.11.0 atau versi lebih baru, jika Anda membuat lebih dari 1.000 pod ECI secara bersamaan dengan menambahkan label, lakukan upgrade ke versi terbaru dan aktifkan fitur gate SchedulerBatchMoveEvents=true.

Kasus penggunaan

Menjalankan Pod di ECI sangat ideal untuk menangani lonjakan traffic dan mengurangi biaya komputasi. Kasus penggunaan umum meliputi:

  • Layanan online dengan pola traffic yang fluktuatif

    Pod ECI membantu Anda merespons lonjakan traffic lebih cepat, mengurangi pemeliharaan pada kolam sumber daya tetap, serta menekan biaya komputasi.

  • Tugas komputasi jangka pendek atau batch

    Saat menjalankan tugas komputasi sebagai pod ECI, Anda tidak perlu memelihara Node khusus dan hanya membayar sumber daya komputasi yang digunakan selama eksekusi tugas. Pendekatan ini mengurangi biaya untuk workload seperti pekerjaan Spark dan AI.

Prasyarat

Kluster ACK Anda harus menjalankan Kubernetes 1.16 atau versi lebih baru dan berada di wilayah yang mendukung ECI.

Catatan

Untuk memeriksa apakah wilayah kluster Anda didukung, lihat Wilayah dan zona yang didukung oleh ECI. Kemudian, login ke Konsol Elastic Container Instance untuk mengaktifkan layanan ECI.

Prosedur

Langkah 1: Deploy komponen ack-virtual-node

Catatan

Langkah-langkah berikut menggunakan contoh Kluster ACK yang dikelola. Untuk Cluster khusus ACK, Anda harus mendeploy komponen ack-virtual-node dari halaman Marketplace. Untuk informasi lebih lanjut, lihat Deploy komponen ack-virtual-node.

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

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Components and Add-ons.

  3. Di halaman Add-ons, klik tab Core Components, temukan ACK Virtual Node, lalu klik Install. Ikuti petunjuk di layar untuk menyelesaikan instalasi.

    Selama instalasi, vSwitch dan security group default kluster digunakan sebagai parameter konfigurasi awal ECI. Untuk mengubah parameter tersebut, Anda dapat memperbaruinya dengan mengonfigurasi eci-profile.

Langkah 2: Jadwalkan pod ke ECI

Catatan

Contoh berikut menunjukkan cara menjadwalkan Pod ke node virtual agar berjalan di ECI dengan menambahkan label ke Pod atau Namespace. Untuk metode penjadwalan lainnya, lihat Jadwalkan Pod ke node virtual.

Pod

Untuk menjalankan Pod individual di ECI, tambahkan label alibabacloud.com/eci: "true" ke Pod tersebut. Hal ini akan menjadwalkan Pod ke node virtual arsitektur x86 untuk berjalan sebagai pod ECI.

  1. Buat Deployment dari file YAML berikut.

    kubectl create -f eci-pod.yaml

    Kode berikut menunjukkan contoh file eci-pod.yaml:

    Catatan

    Pada YAML berikut, anotasi k8s.aliyun.com/eci-use-specs menentukan spesifikasi komputasi untuk pod ECI. Untuk informasi lebih lanjut tentang mengonfigurasi spesifikasi pod ECI, lihat Tentukan spesifikasi komputasi pod ECI.

    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 ini untuk menjadwalkan Pod ke ECI. 
          annotations:
            k8s.aliyun.com/eci-use-specs: "2-4Gi"   # Tentukan 2 vCPU dan 4 GiB memori untuk pod ECI.
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
  2. Verifikasi bahwa Pod berjalan di node virtual.

    kubectl get pod -o wide -l app=nginx

    Output yang diharapkan menunjukkan bahwa Pod telah dijadwalkan ke node virtual, sebagaimana terlihat pada kolom NODE.

    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 ECI.

    kubectl get pod <pod-name> -o yaml

    Pada output YAML, temukan ID instans ECI yang sesuai dalam anotasi k8s.aliyun.com/eci-instance-id dan konfirmasi spesifikasi komputasi pod ECI yang digunakan untuk penagihan dalam anotasi k8s.aliyun.com/eci-instance-spec.

Namespace

Jika Anda ingin menjalankan kategori tertentu Pod di ECI, Anda dapat membuat Namespace dan menambahkan label alibabacloud.com/eci: "true" ke Namespace tersebut. Semua Pod yang dibuat dalam Namespace ini kemudian akan dijadwalkan ke node virtual arsitektur x86 untuk berjalan sebagai pod ECI.

  1. Buat Namespace bernama vk dan tambahkan label yang diperlukan.

    kubectl create ns vk
    kubectl label namespace vk alibabacloud.com/eci=true
  2. Gunakan YAML berikut untuk membuat Deployment di namespace vk.

    kubectl create -f eci-namespace.yaml

    Kode berikut menunjukkan contoh file eci-namespace.yaml:

    Catatan

    Pada YAML berikut, anotasi k8s.aliyun.com/eci-use-specs menentukan spesifikasi komputasi untuk pod ECI. Untuk informasi lebih lanjut tentang mengonfigurasi spesifikasi pod ECI, lihat Tentukan spesifikasi komputasi pod ECI.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      namespace: vk       # Tentukan Namespace berlabel untuk menjadwalkan Pod ke ECI.
      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 2 vCPU dan 4 GiB memori untuk pod ECI.
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
  3. Verifikasi bahwa Pod berjalan di node virtual.

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

    Output yang diharapkan menunjukkan bahwa Pod telah dijadwalkan ke node virtual, sebagaimana terlihat pada kolom NODE.

    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 ECI.

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

    Pada output YAML, temukan ID instans ECI yang sesuai dalam anotasi k8s.aliyun.com/eci-instance-id dan konfirmasi spesifikasi komputasi pod ECI yang digunakan untuk penagihan dalam anotasi k8s.aliyun.com/eci-instance-spec.