Kelompok node spot instans berisi campuran spot instans dan instans pay-as-you-go dalam rasio tertentu untuk mengurangi biaya. Topik ini memperkenalkan konsep dan kasus penggunaan kelompok node spot instans, serta menjelaskan cara mengonfigurasi campuran instans, menetapkan rasio antara spot instans dan instans pay-as-you-go, memeriksa status kedaluwarsa spot instans, serta menangani kedaluwarsa spot instans secara mulus.
Ikhtisar
Spot instans menggunakan model penagihan pay-as-you-go, di mana Anda membayar resource setelah menggunakannya. Biaya dihitung berdasarkan harga pasar dan durasi penggunaan.
Spot instans adalah jenis khusus instans pay-as-you-go yang harganya berfluktuasi mengikuti permintaan dan penawaran. Spot instans menawarkan penghematan biaya signifikan, mengurangi biaya node hingga 90% dibandingkan dengan instans pay-as-you-go biasa. Saat membuat spot instans, Anda harus menentukan mode penawaran (bidding mode). Jika harga pasar real-time untuk tipe instans yang ditentukan berada di bawah penawaran Anda dan tersedia stok yang cukup, spot instans berhasil dibuat.
Setelah dibuat, spot instans beroperasi seperti instans pay-as-you-go standar. Anda dapat menggunakannya bersama produk cloud lainnya, seperti cloud disk dan elastic IP addresses (EIPs). Spot instans memiliki periode perlindungan default selama satu jam. Setelah periode tersebut, sistem memeriksa harga pasar real-time dan ketersediaan stok setiap lima menit. Jika harga pasar melebihi penawaran Anda atau stok tidak mencukupi, spot instans akan dilepas (release).
Kasus penggunaan
-
Kelompok Node Instans Spot
Karena spot instans dalam kelompok node dapat ditarik kembali sewaktu-waktu, spot instans paling cocok untuk aplikasi tanpa status (stateless) dan toleran terhadap kegagalan. Contohnya termasuk pemrosesan batch, beban kerja pelatihan pembelajaran mesin, ETL data besar (seperti Apache Spark), aplikasi pemrosesan antrian, dan aplikasi API tanpa status.
Untuk aplikasi yang tidak dapat mentolerir gangguan semacam itu, gunakan kelompok node dengan instans pay-as-you-go atau instans langganan. Beban kerja tersebut meliputi:
-
Alat manajemen kluster, seperti alat pemantauan dan operasional.
-
Penyebaran atau aplikasi yang memerlukan beban kerja stateful, seperti database.
-
-
Kelompok node spot instans dengan auto scaling
Jika beban kerja Anda cocok untuk kelompok node spot instans dan memiliki periode puncak serta periode tidak sibuk yang jelas, pertimbangkan untuk menggunakan kelompok node spot instans dengan auto scaling yang diaktifkan.
Saat auto scaling diaktifkan, cluster autoscaler memeriksa apakah kelompok node spot instans perlu melakukan scale-out untuk menyebar Pod dan secara otomatis melakukan scale-in ketika node memenuhi kriteria scale-in. Kelompok node spot instans dengan auto scaling yang diaktifkan melakukan scale-out lebih cepat dan melepas resource idle lebih tepat waktu. Kemampuan menambah instans dengan cepat membantu mengimbangi pelepasan pasif spot instans dan meningkatkan penghematan biaya dengan melepas resource idle.
Pilih dan konfigurasi campuran spot instans
Tidak ada solusi “satu ukuran untuk semua” dalam memilih tipe instans. Pilih konfigurasi yang paling seimbang antara ketersediaan stok, biaya, dan performa sesuai kebutuhan bisnis Anda. Alibaba Cloud ECS menyediakan berbagai macam tipe instans. Langkah pertama untuk menggunakan kelompok node spot instans secara efektif adalah memilih campuran instans yang meminimalkan potensi dampak terhadap bisnis, terutama dalam skenario penawaran.
Anda dapat memilih dan mengonfigurasi campuran spot instans menggunakan metode berikut.
Gunakan rekomendasi konsol
Konsol ACK menyediakan saran pemilihan instans. Saat Anda membuat atau mengedit kelompok node, konsol menyarankan tipe instans yang saat ini tersedia stoknya di wilayah yang dipilih. Anda dapat memfilter lebih lanjut tipe instans tersebut berdasarkan kebutuhan resource Anda. Setelah memilih tipe instans, konsol menghitung kekuatan elastisitas dan rentang harga instans tersebut. Anda dapat menggunakan rekomendasi kekuatan elastisitas untuk menambahkan lebih banyak tipe instans dan menetapkan harga maksimum instans.
Untuk informasi lebih lanjut tentang cara membuat atau mengedit kelompok node, lihat Buat dan kelola kelompok node.
Di bagian Selected Specifications, Anda dapat melihat tipe instans yang dipilih dan menyesuaikan prioritas pembeliannya menggunakan tombol Move Up dan Move Down. Di bagian bawah halaman ditampilkan tingkat kekuatan elastisitas grup penskalaan (misalnya, "Medium") dan saran peningkatan, seperti memilih beberapa vSwitch di zona berbeda dan memilih beberapa tipe instans dengan stok yang mencukupi.
Gunakan CLI spot-instance-advisor
ACK menyediakan alat open-source berbasis command-line, spot-instance-advisor, untuk mengambil informasi fluktuasi harga historis dan harga saat ini untuk spot instans. Alat spot-instance-advisor menggunakan API untuk mengambil tipe instans dan kurva harga historis untuk suatu wilayah. Alat ini kemudian menggunakan analisis statistik untuk menghitung dan mengurutkan tipe instans dengan biaya core-hour terendah serta menghitung nilai entropi harga berdasarkan dispersi harga. Nilai entropi yang lebih tinggi menunjukkan fluktuasi harga yang lebih sering. Kami merekomendasikan memilih tipe instans dengan entropi rendah.
Untuk mengunduh spot-instance-advisor, lihat 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.
ParameteraccessKeyId,accessKeySecret, danregionwajib diisi. Tentukan nilainya sesuai kebutuhan bisnis Anda.
./spot-instance-advisor --accessKeyId=<id> --accessKeySecret=<secret> --region=<cn-zhangjiakou>
Konfigurasi rasio spot terhadap pay-as-you-go
Dengan mengonfigurasi rasio antara spot instans dan instans pay-as-you-go dalam kelompok node, Anda dapat memastikan garis dasar instans pay-as-you-go yang stabil sekaligus mengurangi biaya dengan proporsi terencana spot instans.
-
Kluster Anda harus menggunakan versi 1.9 atau lebih baru. Untuk meningkatkan versi kluster, lihat Tingkatkan kluster secara manual.
-
Pastikan kluster Anda dapat menambahkan jumlah node yang mencukupi. Untuk informasi tentang kuota node dan cara meminta peningkatan kuota, lihat Kuota dan batasan.
-
Saat menambahkan node yang sudah ada, pastikan instans ECS dalam Virtual Private Cloud (VPC) Anda telah mengikat elastic IP address (EIP), atau VPC yang sesuai telah dikonfigurasi dengan NAT Gateway. Hal ini memastikan node dapat mengakses internet publik dan mencegah kegagalan saat penambahan node.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Node Pools, klik Create Node Pool dan konfigurasi parameter-parameter tersebut.
Tabel berikut hanya menjelaskan item konfigurasi utama. Untuk petunjuk lengkap, lihat Buat dan kelola kelompok node.
Parameter
Deskripsi
vSwitch
Kami merekomendasikan memilih vSwitch di zona berbeda untuk meningkatkan ketersediaan tinggi kluster.
Billing Method
Pilih Spot Instance.
Buka Opsi Lanjutan dan konfigurasi parameter berikut.
Atur scaling policy ke cost optimization policy, atur Pay-As-You-Go Instance Percentage (%) ke
20, centang kotak use pay-as-you-go instances to supplement spot capacity (ini akan meluncurkan instans pay-as-you-go untuk memenuhi jumlah yang diperlukan jika spot instans tidak tersedia karena harga atau stok), dan centang kotak enable supplemental spot instance (ini secara proaktif menguras dan mengganti instans 5 menit sebelum pelepasan; menonaktifkan opsi ini dapat menyebabkan gangguan layanan).Scaling Policy
-
Priority-based Policy: Melakukan penskalaan node berdasarkan prioritas vSwitch yang Anda konfigurasi (prioritas menurun dari atas ke bawah). Jika instans tidak dapat dibuat di zona prioritas lebih tinggi, sistem secara otomatis menggunakan vSwitch berikutnya dalam daftar prioritas.
-
Cost Optimization: Melakukan scale-out instans dengan harga satuan vCPU terendah terlebih dahulu.
Jika kelompok node menggunakan Preemptible Instance, instans tersebut diprioritaskan. Anda juga dapat mengonfigurasi Pay-as-you-go Instance Percentage (%). Jika spot instans tipe tertentu tidak dapat dibuat karena stok tidak mencukupi, sistem secara otomatis mencoba membuat instans pay-as-you-go sebagai pelengkap.
-
Distribution Balancing: Mendistribusikan instans ECS secara merata di beberapa zona. Kebijakan ini hanya berlaku untuk penerapan multi-zona. Jika distribusi menjadi tidak seimbang karena masalah seperti stok tidak mencukupi, Anda dapat menjalankan kembali operasi penyeimbangan.
Use Pay-as-you-go Instances When Spot Instances Are Insufficient
Jika opsi ini diaktifkan dan jumlah spot instans yang dapat dibuat tidak mencukupi karena kendala harga atau stok, ACK secara otomatis mencoba membuat instans pay-as-you-go sebagai pelengkap.
Enable Supplemental Spot Instance
Saat diaktifkan, setelah menerima notifikasi sistem bahwa spot instans akan ditarik kembali (5 menit sebelum pelepasan), ACK mencoba melakukan scale-out instans baru sebagai kompensasi.
Kompensasi berhasil: ACK menguras node lama dan menghapusnya dari kluster.
Kompensasi gagal: ACK tidak menguras node lama, dan instans dilepas setelah 5 menit. Saat stok dipulihkan atau kondisi harga terpenuhi, ACK secara otomatis membeli instans untuk mempertahankan jumlah node yang diinginkan. Untuk detailnya, lihat Praktik terbaik kelompok node spot instans.
Pelepasan aktif spot instans dapat menyebabkan gangguan bisnis. Untuk meningkatkan tingkat keberhasilan kompensasi, kami merekomendasikan juga mengaktifkan Use Pay-as-you-go Instances When Spot Instances Are Insufficient.
Informasi resource cloud dan penagihan:
ECS instance -
Setelah konfigurasi selesai, Anda dapat membuka daftar kelompok node, klik Details di kolom Actions, lalu klik tab Basic Information. Di bagian Node Configurations, Anda dapat melihat persentase instans pay-as-you-go.
Periksa status kedaluwarsa spot instans
Untuk mencegah node keluar secara tak terduga akibat kedaluwarsa spot instans, ACK menggunakan komponen ack-node-problem-detector (NPD) untuk mendapatkan informasi tentang pelepasan instans yang akan datang dan memberi tahu Anda.
Untuk menginstal komponen NPD, lihat Langkah 1: Instal komponen ack-node-problem-detector.
Di kluster ACK, instans ECS berfungsi sebagai node yang mendukung kluster dan layanan yang berjalan di dalamnya. Bergantung pada kebijakan pembuatannya, beberapa instans—seperti spot instans dan instans langganan—akan dilepas secara otomatis saat kedaluwarsa. Jika tindakan preventif seperti evakuasi Pod, pengurasan node, atau penggantian node tidak dilakukan sebelum instans dilepas secara otomatis, layanan kluster dapat terganggu. Keluarnya node master secara tak terduga dapat menyebabkan kegagalan tingkat kluster. Untuk mencegah masalah akibat kedaluwarsa spot instans, Anda dapat menggunakan status InstanceExpired dari komponen NPD untuk mengetahui pelepasan yang akan datang.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Nodes, klik nama node target atau, di kolom Actions untuk node target, pilih .
-
Di halaman detail node, periksa status kondisi InstanceExpired.
Di bagian Status, periksa status kondisi InstanceExpired.
Deskripsi status InstanceExpired:
Status InstanceExpired
Deskripsi
True
Jika status InstanceExpired adalah True dan Content adalah InstanceToBeTerminated, spot instans akan segera kedaluwarsa dan dilepas.
False
Jika status InstanceExpired adalah False dan Content adalah InstanceNotToBeTerminated, spot instans tidak akan kedaluwarsa dan dapat terus digunakan.
Unknown
Status Unknown menunjukkan kesalahan plugin. Silakan kirim tiket untuk menyelesaikan masalah tersebut.
Jika status InstanceExpired adalah True, Anda dapat melihat event terkait kedaluwarsa instans di bagian Events.
Jika status InstanceExpired adalah True, spot instans akan segera kedaluwarsa dan dilepas. Jika Anda perlu terus menggunakan layanan di node tersebut, jadwalkan aplikasi Anda ke node lain. Untuk informasi lebih lanjut, lihat Jadwalkan aplikasi ke node tertentu.
Tangani kedaluwarsa spot instans secara mulus
Penanganan kedaluwarsa spot instans secara mulus terutama melibatkan pemantauan dan notifikasi, pelengkap node proaktif serta kebijakan, dan perilaku penanganan kustom.
Pemantauan dan notifikasi
Untuk memberi tahu Anda sedini mungkin tentang pelepasan spot instans, kluster ACK menggunakan komponen NPD untuk memantau pesan pra-pelepasan spot instans.
-
Saat tidak ada pesan pra-pelepasan yang terdeteksi untuk spot instans, nilai InstanceExpired dalam status node adalah False. Di halaman detail node, klik tab Status dan periksa kondisi InstanceExpired dalam daftar kondisi. Saat statusnya False dan pesannya
InstanceNotToBeTerminated, artinya spot instans saat ini tidak sedang ditarik kembali. -
Saat nilai InstanceExpired dari spot instans adalah True, artinya spot instans akan segera kedaluwarsa dan dilepas. ACK memberi tahu Anda tentang pelepasan yang akan datang melalui event Kubernetes. Saat pesan pra-pelepasan terdeteksi, event
InstanceToBeTerminatedmuncul di panel Events kluster, menandakan bahwa instans akan segera dilepas.
Enable Supplemental Spot Instance
Kedaluwarsa dan pelepasan spot instans merupakan faktor utama yang memengaruhi stabilitas beban kerja di node. ACK menyediakan berbagai metode untuk merespons cepat event pelepasan spot instans, mulai dari konfigurasi dan auto scaling hingga pemantauan dan notifikasi. Namun, metode-metode ini umumnya bekerja setelah spot instans ditarik kembali. Selama periode antara pelepasan dan penyediaan instans baru, resource yang tersedia di kluster berkurang. Untuk meminimalkan atau menghilangkan dampak ini, ACK menggunakan fitur pelengkap node untuk memicu peluncuran instans baru sebelum instans yang akan kedaluwarsa dilepas.
Setelah Anda mengaktifkan fitur pelengkap spot instans, ACK secara otomatis memantau apakah instans node akan segera dilepas. Saat ACK mendeteksi pelepasan yang akan datang, ACK secara otomatis memicu aktivitas penskalaan untuk meluncurkan node baru. Instans baru ini, yang dibuat untuk menggantikan instans yang akan dilepas, disebut instans pelengkap. Setelah instans pelengkap berhasil berjalan, instans tersebut memicu scale-in dan pelepasan spot instans yang akan kedaluwarsa. Strategi pelepasan mencakup prosedur shutdown yang mulus seperti cordoning node (menjadikannya tidak dapat dijadwalkan), menguras node, dan menghapus node dari kluster. Proses ini membantu memastikan beban kerja di spot instans yang akan kedaluwarsa dipindahkan secara mulus ke node lain di kluster, sehingga meminimalkan dampak kedaluwarsa instans terhadap bisnis Anda.
-
Jika pelengkap instans gagal karena alasan seperti stok tidak mencukupi, ACK tidak menguras node lama. Preemption spot instans dapat menyebabkan gangguan layanan. Setelah kegagalan, saat stok dipulihkan atau kondisi harga terpenuhi, ACK secara otomatis membeli instans untuk memastikan jumlah node yang diinginkan.
Untuk meningkatkan tingkat keberhasilan pelengkap, kami merekomendasikan agar Anda juga mengaktifkan Use Pay-as-you-go Instances When Spot Instances Are Insufficient.
-
Hasil pelengkap instans tidak memengaruhi pelepasan spot instans yang akan kedaluwarsa. Terlepas dari apakah Anda Enable Supplemental Spot Instance atau tidak, instans yang akan kedaluwarsa tetap dilepas 5 menit setelah pemberitahuan pra-pelepasan.

Tambahkan logika penanganan kustom
Dalam banyak skenario dunia nyata, decommissioning node memerlukan langkah lebih dari sekadar shutdown yang mulus, seperti menghapus informasi node dari pusat DNS terdaftar. Untuk menangani kebutuhan semacam itu, pantau status InstanceExpired node atau dengarkan event InstanceToBeTerminated. Saat Anda menerima notifikasi bahwa instans node akan kedaluwarsa atau dilepas, Anda dapat memperlakukan node tersebut sebagai node yang akan decommissioning, lalu menjalankan logika kustom Anda. Untuk petunjuk spesifik tentang cara memantau status kedaluwarsa spot instans, lihat Periksa status kedaluwarsa spot instans.