全部产品
Search
文档中心

Container Service for Kubernetes:Praktik terbaik untuk kelompok node instans spot

更新时间:Dec 12, 2025

Instans spot adalah instans sesuai permintaan yang tersedia dengan harga diskon dibandingkan instans pay-as-you-go. Kelompok node instans spot terdiri dari campuran instans spot dan instans pay-as-you-go. Penggunaan kelompok node instans spot secara signifikan mengurangi biaya Anda. Topik ini menjelaskan konsep dan kasus penggunaan kelompok node instans spot, serta cara mengonfigurasi campuran instans, menetapkan rasio instans spot terhadap instans pay-as-you-go, memeriksa status kedaluwarsa instans spot, dan menangani gangguan.

Pengenalan kelompok node instans spot

Instans spot menggunakan metode penagihan pay-as-you-go, di mana Anda membayar sesuai pemakaian. Harga dihitung berdasarkan harga pasar dan durasi penggunaan. Kelompok node instans spot terdiri dari campuran instans spot dan instans pay-as-you-go dengan rasio tertentu.

Instans spot merupakan jenis khusus instans pay-as-you-go dengan harga dinamis yang berfluktuasi berdasarkan faktor seperti penawaran dan permintaan. Model ini menawarkan biaya lebih rendah, dengan potensi penghematan hingga 90% dibandingkan kelompok node yang hanya menggunakan instans pay-as-you-go. Karena harga pasar instans spot berfluktuasi, Anda harus menentukan strategi penawaran saat membuatnya. Instans spot berhasil dibuat hanya jika harga pasar real-time untuk tipe instans yang ditentukan lebih rendah daripada penawaran Anda dan inventaris mencukupi.

Setelah dibuat, instans spot beroperasi seperti instans pay-as-you-go. Anda dapat menggunakannya bersama produk cloud lainnya, seperti Cloud Disks dan Elastic IP Addresses (EIPs). Secara default, instans spot memiliki periode perlindungan satu jam. Setelah periode ini, sistem memeriksa harga pasar real-time dan inventaris tipe instans setiap lima menit. Jika harga pasar melebihi penawaran Anda atau inventaris tidak mencukupi, sistem akan melepaskan instans spot tersebut.

Kasus penggunaan

  • Kelompok node instans spot

    Karena kelompok node instans spot menggunakan instans spot, node dapat ditarik kembali kapan saja. Hal ini menjadikannya ideal untuk aplikasi tanpa status dan toleran kesalahan. Beban kerja yang sesuai meliputi pemrosesan batch, pekerjaan pelatihan pembelajaran mesin, ETL data besar (seperti Apache Spark), aplikasi pemrosesan antrian, dan aplikasi API tanpa status.

    Beban kerja pada kelompok node instans spot harus mampu mentolerir periode ketika sumber daya node yang diperlukan tidak tersedia. Untuk aplikasi yang tidak dapat mentolerir gangguan semacam itu, kami merekomendasikan penggunaan kelompok node dengan instans pay-as-you-go atau instans subscription. Beban kerja yang umumnya tidak cocok untuk instans spot meliputi:

    • Alat manajemen kluster, seperti alat pemantauan dan operasi.

    • Penyebaran atau aplikasi yang memerlukan beban kerja stateful, seperti database.

  • Kelompok node instans spot dengan auto scaling

    Jika beban kerja Anda cocok untuk kelompok node instans spot dan juga memiliki periode puncak serta periode sepi yang jelas, kami merekomendasikan mengaktifkan auto scaling untuk kelompok node tersebut.

    Saat auto scaling diaktifkan, komponen node auto-scaler kluster memeriksa apakah kelompok node instans spot perlu melakukan scale-out untuk menyebar Pod di kluster dan secara otomatis melakukan scale-in ketika node memenuhi kriteria untuk scaling down. Kelompok node instans spot dengan auto scaling melakukan scale-out lebih cepat dan melepaskan sumber daya idle lebih tepat waktu. Scaling cepat ini membantu mengimbangi penarikan pasif instans spot dan meningkatkan penghematan biaya dengan mengelola penggunaan sumber daya secara efisien.

Pilih dan konfigurasikan campuran instans spot

Tidak ada solusi "satu ukuran untuk semua" dalam memilih tipe instans. Kami merekomendasikan memilih konfigurasi yang paling sesuai dengan kebutuhan bisnis Anda dan mencapai keseimbangan optimal antara inventaris, biaya, dan performa. Untuk memenuhi berbagai kebutuhan bisnis, Alibaba Cloud ECS menyediakan berbagai tipe instans. Untuk menggunakan kelompok node instans spot secara efektif, Anda harus terlebih dahulu mempelajari cara memilih campuran instans yang tepat, terutama dalam skenario penawaran, guna meminimalkan dampak potensial terhadap bisnis Anda.

Anda dapat memilih dan mengonfigurasi campuran instans spot dengan cara berikut.

Berdasarkan rekomendasi konsol

Konsol Alibaba Cloud Container Service for Kubernetes (ACK) menyediakan rekomendasi pemilihan instans. Saat Anda membuat atau mengedit kelompok node, konsol menampilkan tipe instans yang saat ini tersedia di wilayah yang dipilih. Saring lebih lanjut tipe instans tersebut berdasarkan kebutuhan sumber daya Anda. Setelah memilih tipe instans, konsol menghitung kekuatan elastisitas dan rentang harga instans tersebut. Gunakan rekomendasi kekuatan elastisitas untuk menambahkan lebih banyak tipe instans dan menetapkan harga maksimum untuk instans Anda.

Untuk informasi selengkapnya tentang cara membuat atau mengedit kelompok node, lihat Buat dan kelola kelompok node.

image

Gunakan CLI spot-instance-advisor

ACK menyediakan alat baris perintah open-source, spot-instance-advisor, yang dapat Anda gunakan untuk mengambil informasi fluktuasi harga historis dan harga saat ini untuk instans spot. Alat spot-instance-advisor memanggil API untuk mengambil tipe instans dan kurva harga historis untuk suatu wilayah. Alat ini kemudian menggunakan analisis statistik untuk memberi peringkat tipe instans dengan biaya core-hour terendah dan menghitung nilai berdasarkan volatilitas harga, yang ditampilkan di kolom ratio. Nilai ratio yang lebih tinggi menunjukkan fluktuasi harga yang lebih sering. Kami merekomendasikan memilih tipe instans dengan nilai ratio rendah.

Catatan

Untuk mengunduh spot-instance-advisor, kunjungi repositori spot-instance-advisor.

spot-instance-advisor mendukung parameter filter berikut.

Usage of ./spot-instance-advisor:
  -accessKeyId string
        Your accessKeyId of cloud account
  -accessKeySecret string
        Your accessKeySecret of cloud account
  -cutoff int
        Discount of the spot instance prices (default 2)
  -family string
        The spot instance family you want (e.g. ecs.n1,ecs.n2)
  -limit int
        Limit of the spot instances (default 20)
  -maxcpu int
        Max cores of spot instances  (default 32)
  -maxmem int
        Max memory of spot instances (default 64)
  -mincpu int
        Min cores of spot instances (default 1)
  -minmem int
        Min memory of spot instances (default 2)
  -region string
        The region of spot instances (default "cn-hangzhou")
  -resolution int
        The window of price history analysis (default 7)

Jalankan perintah berikut untuk mendapatkan konfigurasi tipe instans paling sesuai untuk wilayah saat ini.

Parameter accessKeyId, accessKeySecret, dan region wajib diisi. Ganti nilai placeholder dengan informasi aktual Anda.
./spot-instance-advisor --accessKeyId=<id> --accessKeySecret=<secret> --region=<cn-zhangjiakou>

Contoh output

Initialize cache ready with 619 kinds of instanceTypes
Filter 93 of 98 kinds of instanceTypes.
Fetch 93 kinds of instanceTypes prices successfully.
Successfully compare 199 kinds of instanceTypes
      instanceTypeId               ZoneId     Price(Core)        Discount           ratio
        ecs.c6.large     cn-zhangjiakou-c          0.0135             1.0             0.0
        ecs.c6.large     cn-zhangjiakou-a          0.0135             1.0             0.0
      ecs.c6.2xlarge     cn-zhangjiakou-a          0.0136             1.0             0.0
      ecs.c6.2xlarge     cn-zhangjiakou-c          0.0136             1.0             0.0
      ecs.c6.3xlarge     cn-zhangjiakou-a          0.0137             1.0             0.0
      ecs.c6.3xlarge     cn-zhangjiakou-c          0.0137             1.0             0.0
       ecs.c6.xlarge     cn-zhangjiakou-c          0.0138             1.0             0.0
       ecs.c6.xlarge     cn-zhangjiakou-a          0.0138             1.0             0.0
     ecs.hfc6.xlarge     cn-zhangjiakou-a          0.0158             1.0             0.0
      ecs.hfc6.large     cn-zhangjiakou-a          0.0160             1.0             0.0
      ecs.hfc6.large     cn-zhangjiakou-c          0.0160             1.0             0.0
      ecs.g6.3xlarge     cn-zhangjiakou-a          0.0175             1.0             0.0
      ecs.g6.3xlarge     cn-zhangjiakou-c          0.0175             1.0             0.0
        ecs.g6.large     cn-zhangjiakou-a          0.0175             1.0             0.0
       ecs.g6.xlarge     cn-zhangjiakou-a          0.0175             1.0             0.0
      ecs.g6.2xlarge     cn-zhangjiakou-a          0.0175             1.0             1.0
      ecs.g6.2xlarge     cn-zhangjiakou-c          0.0175             1.0             3.0
        ecs.g6.large     cn-zhangjiakou-c          0.0175             1.0             30.8
       ecs.g6.xlarge     cn-zhangjiakou-c          0.0175             1.0             9.7
      ecs.hfg6.large     cn-zhangjiakou-c          0.0195             1.0             0.2

Output menunjukkan bahwa tipe instans dengan peringkat tertinggi memiliki harga relatif stabil dan volatilitas rendah (kolom ratio). Meskipun tipe instans yang tercantum di bagian bawah juga menawarkan diskon 90% (nilai Discount 1.0 setara dengan diskon 90%), nilai ratio-nya lebih tinggi. Oleh karena itu, saat mengonfigurasi tipe instans Anda, prioritaskan kombinasi dengan harga lebih rendah dan nilai ratio lebih rendah.

Konfigurasikan rasio instans spot terhadap instans pay-as-you-go

Anda dapat mengonfigurasi rasio instans spot terhadap instans pay-as-you-go dalam satu kelompok node. Hal ini memungkinkan Anda mengurangi biaya dengan memaksimalkan penggunaan instans spot sekaligus mempertahankan basis instans pay-as-you-go yang stabil.

Penting
  • Versi kluster Anda harus 1.9 atau lebih baru. Untuk meningkatkan kluster Anda, lihat Tingkatkan kluster secara manual.

  • Pastikan Anda dapat menambahkan jumlah node yang cukup ke kluster Anda. Untuk informasi tentang kuota node dan cara mengajukan peningkatan kuota, lihat Kuota dan batasan.

  • Untuk memastikan node dapat mengakses internet publik dan mencegah kegagalan saat menambahkan node yang ada, pastikan instans ECS dalam Virtual Private Cloud (VPC) telah dikaitkan dengan Elastic IP Address (EIP) atau VPC yang sesuai telah dikonfigurasi dengan NAT Gateway.

  1. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, pilih Clusters.

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, pilih Nodes > Node Pools.

  3. Pada halaman Node Pools, klik Create Node Pool dan konfigurasikan kelompok node tersebut.

    Tabel berikut hanya menjelaskan parameter inti. Untuk petunjuk lengkap, lihat Buat dan kelola kelompok node.

    Item Konfigurasi

    Deskripsi

    vSwitch

    Pilih vSwitch di zona berbeda untuk meningkatkan ketersediaan tinggi (high availability/HA) kluster Anda.

    Billing Method

    Pilih Spot instance.

    Bentangkan Advanced Options di bawah ini dan konfigurasikan parameter berikut.

    扩缩容策略.png

    Scaling Policy

    Konfigurasikan cara kelompok node memilih instans selama penskalaan.

    • Priority: Melakukan scaling berdasarkan prioritas vSwitch yang dikonfigurasi untuk kluster (prioritas vSwitch menurun dari atas ke bawah). Jika instans tidak dapat dibuat di zona vSwitch dengan prioritas lebih tinggi, vSwitch dengan prioritas berikutnya akan digunakan secara otomatis.

    • Cost Optimization: Melakukan scaling berdasarkan harga per unit vCPU, dari yang terendah ke tertinggi.

      Jika kelompok node menggunakan Spot Instances, instans spot diprioritaskan. Anda juga dapat mengonfigurasi Proportion Of On-demand Instances (%). Saat tipe instans spot tidak dapat dibuat karena ketersediaan inventaris atau alasan lain, instans on-demand akan digunakan secara otomatis sebagai pelengkap.

    • Distribution Balancing: Mendistribusikan instans ECS secara merata di beberapa zona dalam skenario multi-zona. Jika distribusi zona menjadi tidak seimbang akibat ketersediaan inventaris yang tidak mencukupi atau alasan lain, Anda dapat melakukan operasi rebalancing.

    Use On-Demand Instances To Supplement Spot Capacity

    Fitur ini wajib diaktifkan ketika metode penagihan diatur ke spot instance.

    Jika fitur ini diaktifkan dan jumlah instans spot yang cukup tidak dapat dibuat karena masalah harga atau inventaris, ACK secara otomatis akan mencoba membuat instans on-demand sebagai pelengkap.

    Sumber daya cloud dan penagihan: imageECS Instance

    Enable Supplemental Spot Instance

    Jika fitur ini diaktifkan, ACK akan mencoba melakukan scale out instans baru sebagai kompensasi saat menerima pesan sistem bahwa sebuah instans spot akan segera ditarik kembali (5 menit sebelum penarikan).

    • Kompensasi berhasil: ACK mengosongkan (drain) node lama dan menghapusnya dari kluster.

    • Kompensasi gagal: ACK tidak mengosongkan node lama. Instans tetap ditarik dan dilepas setelah 5 menit. Saat inventaris dipulihkan atau kondisi harga terpenuhi, ACK secara otomatis membeli instans untuk mempertahankan jumlah node yang diharapkan. Untuk informasi selengkapnya, lihat Best practices for spot instance node pools.

    Pelepasan proaktif instans spot dapat menyebabkan gangguan pada bisnis. Untuk meningkatkan tingkat keberhasilan kompensasi, kami menyarankan agar Anda juga mengaktifkan Use On-Demand Instances To Supplement Spot Capacity.

    Sumber daya cloud dan penagihan: imageECS Instance

Setelah menyelesaikan konfigurasi, Anda dapat membuka daftar kelompok node, klik Details di kolom Actions, lalu klik tab Overview. Di bagian Node Configurations, Anda dapat melihat persentase instans pay-as-you-go.

Periksa status kedaluwarsa instans spot

Untuk mencegah terminasi node yang tidak terduga saat instans spot kedaluwarsa, ACK menggunakan komponen ack-node-problem-detector (NPD) untuk mengambil informasi tentang pelepasan instans yang akan datang dan memberi tahu Anda.

Untuk menginstal komponen NPD, lihat Langkah 1: Instal komponen ack-node-problem-detector.

Dalam kluster ACK, instans ECS berfungsi sebagai node yang mendukung kluster dan layanan yang berjalan di atasnya. Berdasarkan kebijakan pembuatannya, beberapa instans (seperti instans spot dan subscription) dilepas secara otomatis saat kedaluwarsa. Jika Anda tidak melakukan tindakan pencegahan seperti eviction Pod, drain node, atau penggantian node sebelum instans dilepas, layanan kluster Anda mungkin terganggu. Terminasi tak terduga pada node bidang kontrol bahkan dapat menyebabkan kegagalan tingkat kluster. Untuk mencegah masalah akibat kedaluwarsa instans spot, Anda dapat menggunakan status InstanceExpired dari komponen NPD untuk mendapatkan informasi tentang pelepasan instans yang akan datang.

  1. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, pilih Clusters.

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, pilih Nodes > Nodes.

  3. Pada halaman Nodes, klik nama node target atau pilih More > Details di kolom Actions.

  4. Pada halaman detail node, periksa status InstanceExpired.

    Di bagian Status, lihat status kondisi InstanceExpired.实例是否到期

    Status InstanceExpired dijelaskan di bawah ini:

    InstanceExpired status

    Deskripsi

    True

    Jika statusnya True dan Content-nya InstanceToBeTerminated, artinya instans spot akan segera kedaluwarsa dan dilepas.

    False

    Jika statusnya False dan Content-nya InstanceNotToBeTerminated, artinya instans spot belum kedaluwarsa dan masih dapat digunakan.

    Unknown

    Menunjukkan error plugin. Silakan submit a ticket untuk bantuan.

    Jika status InstanceExpired adalah True, Anda dapat melihat event berikut di bagian Events.实例过期event

Jika status InstanceExpired adalah True, artinya instans spot akan segera dilepas. Jika Anda perlu terus menjalankan layanan di node ini, Anda harus menjadwalkan aplikasi ke node lain. Untuk petunjuk lengkap, lihat Jadwalkan aplikasi ke node tertentu.

Tangani gangguan instans spot secara mulus

Menangani gangguan instans spot secara mulus melibatkan tiga strategi utama: pemantauan dan notifikasi, kompensasi node proaktif, serta logika penanganan kustom.

Pahami notifikasi gangguan

Untuk memastikan Anda diberi tahu sedini mungkin tentang pelepasan instans spot dalam kelompok node, ACK menggunakan komponen NPD untuk memantau pesan pra-pelepasan instans spot.

  • Saat tidak ada pesan pra-pelepasan yang terdeteksi untuk instans spot, nilai InstanceExpired dalam status node adalah False.抢占式实例节点状态.png

  • Saat nilai InstanceExpired untuk instans spot adalah True, artinya instans akan segera kedaluwarsa dan dilepas. ACK akan memberi tahu Anda tentang pelepasan yang akan datang melalui event kluster (Kubernetes Event).抢占式实例释放.png

Aktifkan instans spot pelengkap

Instans spot dapat ditarik kembali dengan pemberitahuan singkat, yang dapat mengganggu beban kerja dan sementara mengurangi kapasitas kluster.

Untuk meminimalkan gangguan, ACK menawarkan instans spot pelengkap—fitur penggantian node proaktif yang secara otomatis meluncurkan instans baru sebelum instans spot yang kedaluwarsa ditarik kembali.

Hal ini membantu mempertahankan kapasitas kluster yang stabil dan memberikan waktu bagi beban kerja untuk bermigrasi secara mulus, sehingga mengurangi risiko gangguan layanan.

Praktik terbaik:

Kami merekomendasikan mengaktifkan fitur ini saat menjalankan beban kerja stateful atau sensitif latensi pada instans spot.

Cara Mengaktifkan

Dalam konfigurasi kelompok node Anda, aktifkan Enable Supplemental Spot Instance.

Setelah diaktifkan, ACK secara otomatis memicu aktivitas scaling penggantian saat mendeteksi penarikan yang akan datang.

Penting
  • Jika penggantian gagal (misalnya karena inventaris atau harga), instans spot asli tetap akan ditarik sesuai jadwal. Namun, ACK akan mencoba memulihkan jumlah node target begitu kondisi memungkinkan.

抢占式实例节点预补偿.png

Sesuaikan perilaku penanganan

Dalam banyak skenario bisnis nyata, decommissioning node memerlukan langkah-langkah tambahan selain shutdown yang mulus standar, seperti menghapus informasi node dari pusat DNS terdaftar. Untuk mengatasi kebutuhan tersebut, kami merekomendasikan memantau status InstanceExpired node atau mendengarkan event InstanceToBeTerminated. Saat Anda menerima notifikasi bahwa instans node akan kedaluwarsa atau dilepas, Anda dapat memperlakukannya sebagai node yang menunggu decommissioning dan menjalankan logika penanganan kustom Anda. Untuk petunjuk lengkap tentang cara memantau status kedaluwarsa instans spot, lihat Periksa status kedaluwarsa instans spot.