全部产品
Search
文档中心

Elastic Container Instance:Jalankan pekerjaan pada instance kontainer elastis preemptible

更新时间:Jul 02, 2025

Elastic Container Instance mendukung instance preemptible. Anda dapat menjalankan pekerjaan jangka pendek dan aplikasi tanpa status yang memiliki skalabilitas tinggi serta toleransi kesalahan, seperti layanan situs web yang dapat diskalakan, pada instance ini untuk mengurangi biaya penggunaan. Topik ini menjelaskan cara membuat pod berbasis Elastic Container Instance preemptible guna menjalankan pekerjaan.

Informasi latar belakang

Sebelum menggunakan instance kontainer elastis preemptible, perhatikan hal-hal berikut:

  • Aturan Penagihan

    Harga pasar instance preemptible berfluktuasi berdasarkan penawaran dan permintaan untuk spesifikasi instansinya. Saat membuat instance preemptible, Anda harus menentukan kebijakan penawaran. Jika harga penawaran Anda lebih tinggi dari harga pasar waktu nyata dan inventaris sumber daya mencukupi, instance preemptible akan dibuat. Setelah pembuatan, instance memasuki periode perlindungan selama 1 jam, di mana ia ditagih berdasarkan harga pasar saat pembelian. Setelah periode perlindungan berakhir, instance ditagih berdasarkan harga pasar waktu nyata.

  • Mekanisme Penarikan

    Setelah periode perlindungan berakhir, sistem memeriksa harga pasar dan inventaris sumber daya setiap 5 menit. Jika harga pasar waktu nyata melebihi harga penawaran Anda atau inventaris tidak mencukupi, instance preemptible dilepaskan. Elastic Container Instance mengirimkan peristiwa ke daftar peristiwa Kubernetes sekitar 5 menit sebelum pelepasan. Selama periode ini, Anda dapat melakukan operasi tertentu, seperti mengonfigurasi untuk menolak arah masuk, guna mencegah gangguan bisnis.

  • Metode Pembuatan

    Anda dapat membuat instance kontainer elastis preemptible dengan menentukan tipe ECS instance atau jumlah vCPU dan ukuran memori.

  • Metode Konfigurasi

    Tambahkan Anotasi k8s.aliyun.com/eci-spot-strategy ke metadata dalam file konfigurasi pod untuk membuat instance preemptible. Anotasi ini menentukan kebijakan penawaran untuk instance tersebut.

    Nilai yang valid:

    • SpotAsPriceGo: Instance dibuat sebagai preemptible dengan harga pasar saat pembelian digunakan sebagai harga penawaran.

    • SpotWithPriceLimit: Instance dibuat sebagai preemptible dengan harga maksimum per jam yang ditentukan. Jika menggunakan nilai ini, tambahkan anotasi k8s.aliyun.com/eci-spot-price-limit untuk menentukan harga maksimum per jam.

Untuk informasi lebih lanjut, lihat Buat instance kontainer elastis preemptible.

Prosedur

Dalam Kubernetes, pekerjaan digunakan untuk memproses tugas jangka pendek dan satu kali secara batch. Bagian ini memberikan contoh cara menjalankan pekerjaan pada instance preemptible:

  1. Siapkan file konfigurasi pekerjaan dan beri nama spot_job.yaml.

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi
    spec:
      template:
        metadata:
          annotations:
            k8s.aliyun.com/eci-use-specs: ecs.c5.large,2-4Gi # Menentukan beberapa spesifikasi instance untuk meningkatkan tingkat keberhasilan pembuatan instance.
            k8s.aliyun.com/eci-spot-strategy: SpotAsPriceGo    # Harga pasar saat ini secara otomatis digunakan sebagai harga penawaran.
        spec:
          containers:
          - name: pi
            image: registry-vpc.cn-beijing.aliyuncs.com/ostest/perl
            command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
          restartPolicy: Never
  2. Buat pekerjaan.

    kubectl create -f spot_job.yaml
  3. Periksa status pod.

    kubectl get pod
    • Jika pekerjaan sedang berjalan, status pod adalah Running.

      NAME       READY   STATUS      RESTARTS   AGE
      pi-frmr8   1/1     Running     0          35s
    • Jika pekerjaan selesai sesuai harapan, status pod berubah menjadi Completed.

      NAME       READY   STATUS      RESTARTS   AGE
      pi-frmr8   0/1     Completed   0          2h
    • Jika pod dilepaskan sebelum pekerjaan selesai karena mekanisme penarikan instance preemptible, Job Controller di Kubernetes secara otomatis membuat pod baru untuk melanjutkan pekerjaan.

      Dalam hal ini, informasi pod asli dipertahankan dan status pod berubah menjadi BidFailed.

      Catatan

      Setelah instance preemptible dibuat, ia berjalan sesuai harapan selama periode perlindungan. Setelah periode perlindungan berakhir, instance dilepaskan jika harga pasar lebih tinggi dari harga penawaran Anda atau inventaris sumber daya tidak mencukupi. Peristiwa pra-rilis (SpotToBeReleased) dihasilkan sekitar 5 menit sebelum pelepasan. Untuk informasi lebih lanjut, lihat Pelepasan instance preemptible.

      NAME       READY   STATUS      RESTARTS   AGE
      pi-frmr8   1/1     BidFailed   0          4h53m
      pi-kp5zx   1/1     Running     0          3h45m