全部产品
Search
文档中心

Elastic Container Instance:Jadwalkan pod ke node virtual berbasis x86

更新时间:Jun 29, 2025

Untuk kluster ACK Serverless Container Service for Kubernetes (ACK), semua pod berjalan pada node virtual tanpa perlu dijadwalkan. Secara default, node virtual tersebut menggunakan arsitektur x86. Untuk kluster ACK yang menggunakan instance Elastic Compute Service (ECS) pada node nyata dan instance kontainer elastis pada node virtual, pod dijadwalkan ke node nyata secara default. Anda dapat menjadwalkan pod ke node virtual sesuai dengan kebutuhan bisnis Anda. Topik ini menjelaskan cara menjadwalkan pod dalam kluster ACK ke node virtual berbasis x86 untuk menjalankan pod pada Elastic Container Instance.

Ikhtisar metode penjadwalan

Anda dapat menggunakan salah satu metode berikut untuk menjadwalkan pod ke node virtual berbasis x86:

Catatan
  • Untuk menggunakan metode berikut, Anda harus memodifikasi sumber daya yang ada. Modifikasi tersebut dapat memperkenalkan kerentanan ke dalam sistem Anda. Kami menyarankan agar Anda mengonfigurasi eci-profile untuk secara otomatis menjadwalkan pod dengan label tertentu agar berjalan pada Elastic Container Instance. Untuk informasi lebih lanjut, lihat Konfigurasikan eci-profile.

  • Jika Anda menggunakan metode penjadwalan dengan menambahkan label pod atau label namespace atau menentukan nodeName, provisioner tidak mendukung WaitForFirstConsumer StorageClass ketika volume disk yang diprovision secara dinamis dipasang ke pod berbasis Elastic Container Instance. Untuk informasi lebih lanjut, lihat Gunakan volume disk yang diprovision secara dinamis.

  • Konfigurasikan Label Pod

    Jika Anda ingin menjadwalkan sejumlah kecil pod untuk berjalan pada Elastic Container Instance, Anda dapat menambahkan label tertentu ke pod tersebut. Kemudian, pod tersebut akan berjalan pada node virtual berbasis x86.

  • Konfigurasikan Label Namespace

    Jika Anda ingin menjadwalkan sekelompok pod untuk berjalan pada Elastic Container Instance, Anda dapat membuat namespace dan menambahkan label tertentu ke namespace tersebut. Semua pod dalam namespace tersebut kemudian akan berjalan pada node virtual berbasis x86.

  • (Tidak Direkomendasikan) Metode Lainnya

    Secara default, label dan taint telah dikonfigurasi untuk node virtual berbasis x86. Anda dapat mengonfigurasi bidang nodeSelector dan tolerations untuk pod agar pod dijadwalkan untuk berjalan pada node virtual berbasis x86. Anda juga dapat menentukan bidang nodeName untuk menjadwalkan pod agar berjalan pada node virtual berbasis x86.

Metode 1: Konfigurasikan label pod

Anda dapat menambahkan label alibabacloud.com/eci=true ke pod untuk menjadwalkan pod agar berjalan pada Elastic Container Instance.

Catatan

Anda juga dapat menambahkan label eci=true ke pod, tetapi kami menyarankan agar Anda tidak menggunakan label ini.

Prosedur:

  1. Buat file konfigurasi YAML untuk pod yang ingin Anda buat.

    vim test-pod.yaml

    Contoh file test-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx1
      labels: 
        alibabacloud.com/eci: "true"   # Tambahkan label.
    spec:
      containers:
      - image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        imagePullPolicy: Always
        name: nginx
  2. Buat pod.

    kubectl create -f test-pod.yaml 

Metode 2: Konfigurasikan label namespace

Anda dapat membuat namespace dan menambahkan label alibabacloud.com/eci=true ke namespace tersebut. Semua pod dalam namespace tersebut kemudian dijadwalkan untuk berjalan pada Elastic Container Instance.

Catatan

Anda juga dapat menambahkan label virtual-node-affinity-injection=enabled ke namespace, tetapi kami menyarankan agar Anda tidak menggunakan label ini.

Prosedur:

  1. Buat namespace.

    kubectl create ns vk
  2. Tambahkan label ke namespace.

    kubectl label namespace vk alibabacloud.com/eci=true
  3. Buat file konfigurasi YAML untuk pod yang ingin Anda buat.

    vim test-pod.yaml

    Contoh file test-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      namespace: vk  # Tentukan namespace yang Anda tambahkan label di Langkah 2.
    spec:
      containers:
      - image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        imagePullPolicy: Always
        name: nginx
  4. Buat pod.

    kubectl create -f test-pod.yaml 

Metode 3: (Tidak direkomendasikan) Metode lainnya

Anda dapat menggunakan metode lain seperti mengonfigurasi bidang nodeSelector dan tolerations atau menentukan bidang nodeName untuk menjadwalkan pod agar berjalan pada Elastic Container Instance.

Prosedur:

  1. Buat file konfigurasi YAML untuk pod yang ingin Anda buat.

    vim test-pod.yaml

    Contoh file test-pod.yaml:

    • Konfigurasikan bidang nodeSelector dan tolerations.

      apiVersion: v1
      kind: Pod
      metadata:
        name: nginx
      spec:
        containers:
        - image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
          imagePullPolicy: Always
          name: nginx
        nodeSelector:     # Konfigurasikan nodeSelector.
          type: virtual-kubelet
        tolerations:      # Konfigurasikan tolerations.
        - key: virtual-kubelet.io/provider
          operator: Exists
    • Tentukan bidang nodeName.

      apiVersion: v1
      kind: Pod
      metadata:
        name: nginx
      spec:
        containers:
        - image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
          imagePullPolicy: Always
          name: nginx
        nodeName: virtual-kubelet-cn-beijing-g # Tentukan nama node

      .

  2. Buat pod.

    kubectl create -f test-pod.yaml