Praktik terbaik untuk pengoptimalan biaya di Azure Kubernetes Service (AKS)

Pengoptimalan biaya adalah tentang memaksimalkan nilai sumber daya sambil meminimalkan pengeluaran yang tidak perlu dalam lingkungan cloud Anda. Proses ini melibatkan identifikasi opsi konfigurasi hemat biaya dan menerapkan praktik terbaik untuk meningkatkan efisiensi operasional. Lingkungan AKS dapat dioptimalkan untuk meminimalkan biaya sambil mempertimbangkan persyaratan performa dan keandalan.

Dalam artikel ini, Anda mempelajari tentang:

  • Mulai dengan AKS Automatic untuk optimasi biaya bawaan.
  • Pemantauan holistik dan praktik FinOps.
  • Pemilihan infrastruktur strategis.
  • Penyesuaian dinamis dan penskalaan otomatis.
  • Memanfaatkan diskon Azure untuk penghematan yang substansial.

Mulai dengan AKS Otomatis untuk pengoptimalan biaya bawaan

AKS Otomatis adalah mode kluster yang mengonfigurasi sebelumnya banyak praktik pengoptimalan biaya yang dijelaskan dalam artikel ini. Jika Anda membuat kluster baru, pertimbangkan AKS Otomatis untuk mengurangi upaya rekayasa, risiko konfigurasi, dan overhead operasional yang sedang berlangsung yang menyebabkan pengeluaran cloud yang tidak perlu.

AKS Otomatis menyediakan kemampuan pengoptimalan biaya berikut secara default, tanpa konfigurasi tambahan:

Kemampuan Analisis biaya-manfaat
Penyediaan otomatis simpul (NAP) Secara otomatis memilih SKU VM yang paling hemat biaya untuk setiap beban kerja berdasarkan permintaan sumber daya pod yang sebenarnya. Menghilangkan pengelolaan pool node secara manual dan provisioning berlebih.
Penskalaan otomatis beban kerja (VPA, HPA, dan KEDA) Semua penskala otomatis beban kerja diaktifkan secara bawaan, sehingga pod dan node diskalakan secara dinamis sesuai permintaan aktual, bukan berdasarkan asumsi beban puncak.
Pengemasan bin yang efisien Pod ditempatkan untuk memaksimalkan pemanfaatan node, sehingga mengurangi jumlah total node yang diperlukan untuk melayani beban kerja Anda.
Prometheus Terkelola Prometheus Terkelola adalah platform metrik bawaan. Anda menghindari biaya metrik Container Insights yang lebih tinggi tanpa upaya migrasi apa pun.
Pengaman penerapan Azure Policy mengontrol penerapan permintaan dan batasan sumber daya pada semua pod dalam mode penegakan, mencegah konsumsi sumber daya yang tidak terkendali dan provisi berlebih di tingkat kluster.

Untuk beban kerja yang memerlukan Standar AKS, sisa artikel ini menjelaskan masing-masing praktik ini dan cara mengonfigurasinya secara manual. Jika AKS Otomatis menyediakan praktik secara default, catatan menunjukkan bahwa tidak ada langkah tambahan yang diperlukan.

Merangkul FinOps untuk membangun budaya penghematan biaya

Operasi keuangan (FinOps) adalah disiplin yang menggabungkan akuntabilitas keuangan dengan manajemen dan pengoptimalan cloud. Ini berfokus pada mendorong keselarasan antara tim keuangan, operasi, dan teknik untuk memahami dan mengontrol biaya cloud. Fondasi FinOps memiliki beberapa proyek penting, seperti Kerangka Kerja FinOps dan Spesifikasi FOKUS.

Untuk informasi selengkapnya, lihat Apa itu FinOps?

Pilih infrastruktur hemat biaya dan konfigurasi kluster

Mengevaluasi kelompok SKU

Catatan

Jika Anda menggunakan AKS Otomatis, provisi otomatis simpul (NAP) secara otomatis memilih SKU VM yang paling hemat biaya untuk setiap beban kerja berdasarkan permintaan sumber dayanya. Anda tidak perlu mengevaluasi, membuat, atau mengelola kumpulan simpul secara manual.

Penting untuk mengevaluasi persyaratan sumber daya aplikasi Anda sebelum penyebaran. Beban kerja pengembangan kecil memiliki kebutuhan infrastruktur yang berbeda dari beban kerja besar yang siap produksi. Meskipun kombinasi konfigurasi kapasitas CPU, memori, dan jaringan sangat memengaruhi efektivitas biaya SKU, pertimbangkan jenis komputer virtual (VM) berikut:

Keluarga SKU Deskripsi Paling cocok untuk
Azure Spot Virtual Machines Azure Spot Virtual Machine Scale Sets mendukung kumpulan node Spot dan diterapkan ke satu domain kesalahan tanpa jaminan ketersediaan tinggi maupun perjanjian tingkat layanan (SLA). Spot VM memungkinkan Anda memanfaatkan kapasitas Azure yang tidak digunakan dengan diskon signifikan (hingga 90% dibandingkan dengan harga bayar sesuai penggunaan). Jika Azure membutuhkan kapasitas kembali, infrastruktur Azure akan mengeluarkan simpul Spot. Lingkungan dev/test, beban kerja yang dapat menangani gangguan seperti pekerjaan pemrosesan batch, dan beban kerja dengan waktu eksekusi yang fleksibel.
Prosesor berbasis arm (Arm64) VM Arm64 hemat daya dan hemat biaya tanpa mengorbankan performa. Dengan dukungan kumpulan simpul Arm64 di AKS, Anda dapat membuat simpul agen Arm64 Ubuntu dan mencampur node arsitektur Intel dan Arm dalam kluster. VM ini dirancang untuk menjalankan beban kerja yang dinamis dan skalabel secara efisien, serta dapat memberikan rasio harga-kinerja hingga 50% lebih baik dibandingkan VM berbasis x86 yang sebanding untuk beban kerja scale-out. Server web atau aplikasi, database sumber terbuka, aplikasi cloud-native, server game, dan banyak lagi.
SKU yang dioptimalkan untuk GPU Bergantung pada sifat beban kerja Anda, pertimbangkan untuk menggunakan SKU VM yang dioptimalkan untuk komputasi, dioptimalkan memori, dioptimalkan penyimpanan, atau GPU. Ukuran VM GPU adalah VM khusus yang tersedia dalam konfigurasi GPU tunggal, multi-GPU, dan GPU fraksional. Kumpulan simpul Linux berkemampuan GPU di AKS adalah yang terbaik untuk beban kerja intensif komputasi seperti penyajian grafis, pelatihan model besar, dan inferensi.

Catatan

Biaya komputasi bervariasi di seluruh wilayah. Saat memilih wilayah yang lebih murah untuk menjalankan beban kerja, sadari potensi dampak latensi serta biaya transfer data. Untuk mempelajari selengkapnya tentang SKU VM dan karakteristiknya, lihat Ukuran untuk komputer virtual di Azure.

Meninjau opsi penyimpanan

Untuk informasi selengkapnya tentang opsi penyimpanan dan pertimbangan biaya terkait, lihat artikel berikut ini:

Menggunakan konfigurasi pengaturan awal kluster

Mungkin sulit untuk memilih SKU VM yang tepat, wilayah, jumlah simpul, dan opsi konfigurasi lainnya. Konfigurasi prasetel kluster di portal Azure mengurangi tantangan awal ini dengan menyediakan konfigurasi yang direkomendasikan untuk berbagai lingkungan aplikasi yang hemat biaya dan berkinerja tinggi. Preset Dev/Test adalah yang terbaik untuk mengembangkan beban kerja baru atau menguji beban kerja yang ada. Prasetel Ekonomi Produksi paling cocok untuk menangani lalu lintas produksi dengan hemat biaya jika beban kerja Anda dapat menoleransi gangguan. Fitur noncritical nonaktif secara default, dan Anda dapat memodifikasi nilai prasetel kapan saja.

Untuk pendekatan yang lebih komprehensif yang melampaui preset statis, pertimbangkan AKS Otomatis. AKS Automatic mengelola sepenuhnya pool node menggunakan penyediaan otomatis node (NAP), yang terus menyesuaikan ukuran infrastruktur dengan kebutuhan beban kerja aktual Anda. Ini juga mengaktifkan semua penskala otomatis beban kerja secara bawaan dan menerapkan tata kelola sumber daya melalui pengaman deployment, yang merupakan manfaat tambahan yang tidak disediakan oleh preset kluster.

Pertimbangkan penerapan multitenansi

AKS menawarkan fleksibilitas dalam cara Anda menjalankan kluster multipenyewa dan mengisolasi sumber daya. Untuk multitenansi yang lebih ramah, Anda dapat membagikan kluster dan infrastruktur di antara tim dan unit bisnis melalui isolasi logis. Namespace Kubernetes membentuk batas isolasi logis untuk beban kerja dan sumber daya. Infrastruktur berbagi mengurangi overhead manajemen kluster sekaligus meningkatkan pemanfaatan sumber daya dan kepadatan pod dalam kluster. Untuk mempelajari lebih lanjut tentang multitenancy di AKS dan menentukan apakah itu sesuai untuk kebutuhan organisasi Anda, lihat pertimbangan AKS untuk multitenancy dan desain kluster untuk multitenancy.

Peringatan

Lingkungan Kubernetes tidak sepenuhnya aman untuk multitenansi yang bermusuhan. Jika ada penyewa pada infrastruktur bersama yang tidak dapat dipercaya, diperlukan lebih banyak perencanaan untuk mencegah penyewa berdampak pada keamanan layanan lain.

Pertimbangkan batas isolasi fisik. Dalam model ini, tim atau beban kerja ditetapkan ke kluster mereka sendiri. Tambahan beban manajemen dan keuangan merupakan konsekuensinya.

Mengurangi limbah sumber daya melalui konfigurasi aplikasi dan kluster

Buat kontainer Anda seefisien mungkin

Kontainer ramping merujuk pada pengoptimalan ukuran dan penggunaan sumber daya dari aplikasi yang dikontainerisasi. Periksa apakah gambar dasar Anda minimal dan hanya berisi dependensi yang diperlukan. Hapus pustaka dan paket yang tidak perlu. Gambar kontainer yang lebih kecil mempercepat waktu penyebaran dan meningkatkan efisiensi operasi penskalaan. Artifact Streaming di AKS memungkinkan Anda melakukan streaming gambar kontainer dari Azure Container Registry (ACR). Ini hanya menarik lapisan yang diperlukan untuk startup pod awal, mengurangi waktu tarik untuk gambar yang lebih besar dari menit ke detik.

Menerapkan kuota sumber daya

Catatan

Kluster Otomatis AKS memberlakukan permintaan dan batasan sumber daya pada semua pod secara otomatis melalui perlindungan penyebaran, yang diaktifkan dalam mode penerapan secara default. Ini mencegah konsumsi sumber daya yang tidak terkendali dan provisi berlebih tanpa memerlukan konfigurasi kebijakan manual. Untuk kluster Standar AKS, konfigurasikan kuota sumber daya di tingkat namespace seperti yang dijelaskan di bagian ini.

Kuota sumber daya menyediakan cara untuk mengalokasikan dan membatasi sumber daya di seluruh tim pengembangan atau proyek. Kuota didefinisikan pada namespace layanan dan dapat diatur pada sumber daya komputasi, sumber daya penyimpanan, dan jumlah objek. Saat Anda menentukan kuota sumber daya, masing-masing namespace tidak dapat menggunakan sumber daya melebihi alokasi yang ditetapkan. Kuota sumber daya berguna untuk kluster multipenyewa tempat tim berbagi infrastruktur.

Menggunakan kluster mulai/berhenti

Ketika dibiarkan, kluster pengembangan dan pengujian kecil dapat mengumpulkan biaya yang tidak perlu. Anda dapat menonaktifkan kluster yang tidak perlu berjalan setiap saat menggunakan fitur mulai dan hentikan kluster. Fitur ini mematikan semua kumpulan simpul sistem dan pengguna sehingga Anda tidak membayar komputasi tambahan. Status kluster dan objek Anda dipertahankan saat Anda memulai kluster lagi.

Penggunaan reservasi kapasitas

Reservasi kapasitas memungkinkan Anda memesan kapasitas komputasi di wilayah Azure atau zona ketersediaan selama durasi waktu apa pun. Kapasitas yang dipesan tersedia untuk segera digunakan hingga reservasi dihapus. Mengaitkan grup reservasi kapasitas yang sudah ada pada kumpulan simpul menjamin kapasitas yang dialokasikan untuk kumpulan simpul Anda dan membantu Anda menghindari potensi lonjakan harga secara mendadak selama periode permintaan komputasi yang tinggi.

Memantau lingkungan dan pengeluaran Anda

Meningkatkan visibilitas dengan Microsoft Cost Management

Microsoft Cost Management menawarkan serangkaian kemampuan yang luas untuk membantu anggaran cloud, prakiraan, dan visibilitas untuk biaya baik di dalam maupun di luar kluster. Visibilitas yang tepat sangat penting untuk menguraikan tren pengeluaran, mengidentifikasi peluang pengoptimalan, dan meningkatkan akuntabilitas di antara pengembang aplikasi dan tim platform. Aktifkan add-on Analisis Biaya AKS untuk perincian biaya kluster terperinci oleh konstruksi Kubernetes bersama dengan kategori Azure Compute, Network, dan Storage.

Azure Monitor

Catatan

Kluster Otomatis AKS menggunakan Prometheus terkelola sebagai platform metrik default. Metrik Container Insights tidak diaktifkan secara default. Jika Anda menggunakan AKS Otomatis, pengoptimalan biaya ini sudah ada dan tidak ada langkah migrasi yang diperlukan.

Jika Anda mengumpulkan data metrik melalui analisis Kontainer, sebaiknya migrasi ke Prometheus yang dikelola, yang menawarkan pengurangan biaya signifikan. Anda dapat menonaktifkan metrik wawasan Kontainer menggunakan aturan pengumpulan data (DCR) dan menyebarkan add-on Prometheus terkelola, yang mendukung konfigurasi melalui Azure Resource Manager, Azure CLI, portal Azure, dan Terraform.

Untuk informasi selengkapnya, lihat praktik terbaik Azure Monitor dan mengelola biaya untuk Container Insights.

Analitik Log

Untuk log sarana kontrol, pertimbangkan untuk menonaktifkan kategori yang tidak Anda butuhkan dan/atau menggunakan API Log Dasar jika berlaku untuk mengurangi biaya Analitik Log. Untuk informasi selengkapnya, lihat sarana kontrol/log sumber daya Azure Kubernetes Service (AKS). Untuk log data plane, atau log aplikasi, pertimbangkan untuk menyesuaikan pengaturan pengoptimalan biaya.

Anda juga dapat menggunakan Transformasi di Azure Monitor untuk memfilter atau memodifikasi log lapisan kontrol dan lapisan data sebelum dikirim ke ruang kerja Log Analytics. Untuk informasi selengkapnya tentang cara membuat transformasi, lihat Membuat transformasi di Azure Monitor.

Rekomendasi biaya Azure Advisor

Rekomendasi biaya AKS di Azure Advisor memberikan rekomendasi untuk membantu Anda mencapai efisiensi biaya tanpa mengorbankan keandalan. Advisor menganalisis konfigurasi sumber daya Anda dan merekomendasikan solusi pengoptimalan. Untuk informasi selengkapnya, lihat Mendapatkan rekomendasi biaya Azure Kubernetes Service (AKS) di Azure Advisor.

Mengoptimalkan beban kerja melalui autoscaling

Membuat garis besar

Sebelum mengonfigurasi pengaturan penskalaan otomatis, Anda dapat menggunakan Azure Load Testing untuk membuat garis besar untuk aplikasi Anda. Pengujian beban membantu Anda memahami bagaimana aplikasi Anda berkinerja dalam kondisi lalu lintas yang berbeda dan mengidentifikasi hambatan performa. Setelah memiliki garis besar, Anda dapat mengonfigurasi pengaturan penskalakan otomatis untuk memastikan aplikasi Anda dapat menangani beban yang diharapkan.

Mengaktifkan autoscaling aplikasi

Penskalakan otomatis pod vertikal

Catatan

Kluster Otomatis AKS mengaktifkan VPA secara default. Jika Anda menggunakan Standar AKS, lihat Gunakan Autoscaler Pod Vertikal di Azure Kubernetes Service (AKS) untuk mengaktifkan dan mengonfigurasi VPA.

Permintaan dan batasan yang lebih tinggi dari penggunaan aktual dapat mengakibatkan beban kerja yang berlebihan dalam penyediaan dan pemborosan sumber daya. Sebaliknya, permintaan dan batasan yang terlalu rendah dapat mengakibatkan masalah penundaan dan beban kerja karena kekurangan memori. Penskala Otomatis Pod Vertikal (VPA) memungkinkan Anda menyempurnakan sumber daya CPU dan memori yang diperlukan oleh pod Anda. VPA menyediakan nilai yang direkomendasikan untuk permintaan dan batasan CPU dan memori berdasarkan penggunaan kontainer historis, yang dapat Anda atur secara manual atau diperbarui secara otomatis. Terbaik untuk aplikasi dengan tuntutan sumber daya yang berfluktuasi. Mode nonaktif khusus rekomendasi VPA memungkinkan tim untuk meninjau saran sumber daya tanpa memberlakukannya secara otomatis. Mode ini dapat diaktifkan selama pengujian, dan rekomendasi VPA dapat digunakan untuk mengatur permintaan dan batas CPU dan memori untuk lingkungan produksi.

Penyesuaian skala otomatis pod horizontal

Catatan

Kluster AKS Otomatis mengaktifkan HPA secara default. Jika Anda menggunakan AKS Standard, konfigurasikan HPA untuk beban kerja Anda seperti yang dijelaskan dalam Penskalaan otomatis pod horizontal.

Horizontal Pod Autoscaler (HPA) secara dinamis menskalakan jumlah replika pod berdasarkan metrik yang diamati, seperti pemanfaatan CPU atau memori. Selama periode permintaan tinggi, HPA meningkatkan skala dengan menambahkan lebih banyak replika pod untuk mendistribusikan beban kerja. Selama periode permintaan rendah, HPA mengecilkan skala dengan mengurangi jumlah replika agar dapat menghemat sumber daya. Terbaik untuk aplikasi dengan tuntutan sumber daya yang dapat diprediksi.

Peringatan

Anda tidak boleh menggunakan VPA dengan HPA pada metrik CPU atau memori yang sama. Kombinasi ini dapat menyebabkan konflik, karena kedua penskala otomatis mencoba merespons perubahan permintaan menggunakan metrik yang sama. Namun, Anda dapat menggunakan VPA untuk CPU atau memori dengan HPA untuk metrik kustom untuk mencegah tumpang tindih dan memastikan bahwa setiap autoscaler berfokus pada aspek penskalaan beban kerja yang berbeda.

Autoscaling berbasis peristiwa Kubernetes

Catatan

Kluster AKS Otomatis mengaktifkan KEDA secara default. Jika Anda menggunakan AKS Standard, lihat Install add-on KEDA menggunakan Azure CLI untuk mengaktifkan KEDA.

Add-on Kubernetes Event-driven Autoscaler (KEDA) memberikan fleksibilitas ekstra untuk menskalakan berdasarkan berbagai metrik berbasis peristiwa yang selaras dengan perilaku aplikasi Anda. Misalnya, untuk aplikasi web, KEDA dapat memantau lalu lintas permintaan HTTP masuk dan menyesuaikan jumlah replika pod untuk memastikan aplikasi tetap responsif. Untuk memproses pekerjaan, KEDA dapat menskalakan aplikasi berdasarkan panjang antrean pesan. Dukungan terkelola disediakan untuk semua Azure Scalers. KEDA juga memungkinkan Anda menurunkan skala ke 0 replika, terutama membantu beban kerja berbasis peristiwa sporadis, pembelajaran mesin berkala (ML) atau beban kerja GPU, dan lingkungan dev/test atau lalu lintas rendah.

Mengaktifkan penskalaan otomatis infrastruktur

Penskalaan otomatis kluster

Catatan

Di AKS Automatic, penskalaan node ditangani oleh penyediaan otomatis node (NAP), yang telah diprakonfigurasi secara default. Untuk AKS Standard tanpa NAP, konfigurasikan Cluster Autoscaler seperti yang dijelaskan di bagian ini.

Untuk memenuhi permintaan aplikasi, Cluster Autoscaler memantau pod yang tidak dapat dijadwalkan karena kendala sumber daya dan menyesuaikan jumlah simpul dalam kumpulan simpul yang sesuai. Ketika node tidak memiliki pod yang berjalan, Kluster Autoscaler mengurangi jumlah node. Pengaturan profil Autoscaler Kluster berlaku untuk semua pool node yang diaktifkan autoscaler dalam kluster. Untuk informasi selengkapnya, lihat Praktik Terbaik dan Pertimbangan Penskala Otomatis Kluster.

Penyediaan Otomatis Node

Catatan

Di AKS Automatic, penyediaan otomatis node (NAP) sudah dikonfigurasi secara default. AKS memilih SKU VM optimal untuk setiap beban kerja secara otomatis, tanpa pembuatan kumpulan simpul manual atau pemilihan SKU yang diperlukan. Untuk kluster Standar AKS, ikuti langkah-langkah dalam Mengaktifkan atau menonaktifkan NAP di AKS untuk mengaktifkan NAP.

Beban kerja yang rumit mungkin memerlukan beberapa kumpulan simpul dengan konfigurasi ukuran VM yang berbeda untuk mengakomodasi persyaratan CPU dan memori. Memilih dan mengelola beberapa konfigurasi kumpulan simpul secara akurat menambah kompleksitas dan overhead operasional. Penyediaan node otomatis (NAP) menyederhanakan proses pemilihan SKU dan menentukan konfigurasi VM yang optimal berdasarkan kebutuhan sumber daya pod yang masih tertunda untuk menjalankan beban kerja dengan cara yang paling efisien dan hemat biaya.

Simpan dengan diskon Azure

Pemesanan Azure

Jika beban kerja Anda dapat diprediksi dan ada untuk jangka waktu yang lama, pertimbangkan untuk membeli Reservasi Azure untuk mengurangi biaya sumber daya Anda lebih lanjut. Reservasi Azure beroperasi pada jangka waktu satu tahun atau tiga tahun, menawarkan diskon hingga 72% dibandingkan dengan harga bayar sesuai pemakaian untuk komputasi. Reservasi secara otomatis berlaku untuk sumber daya yang cocok. Terbaik untuk beban kerja yang akan dijalankan pada SKU dan wilayah yang sama dalam jangka waktu yang lama.

Azure Savings Plan (Rencana Penghematan Azure)

Jika Anda memiliki pengeluaran yang konsisten, tetapi penggunaan sumber daya yang berbeda di seluruh SKU dan wilayah membuat Reservasi Azure tidak layak, pertimbangkan untuk membeli Paket Penghematan Azure. Seperti Reservasi Azure, Azure Savings Plans beroperasi pada jangka waktu satu tahun atau tiga tahun dan secara otomatis berlaku untuk sumber daya apa pun dalam cakupan manfaat. Anda berkomitmen untuk menghabiskan jumlah per jam tetap pada sumber daya komputasi terlepas dari SKU atau wilayah. Terbaik untuk beban kerja yang menggunakan sumber daya yang berbeda dan/atau wilayah pusat data yang berbeda.

Azure Hybrid Benefit

Azure Hybrid Benefit untuk Azure Kubernetes Service (AKS) memungkinkan Anda memaksimalkan lisensi lokal tanpa biaya tambahan. Gunakan lisensi lokal yang memenuhi syarat yang juga memiliki Jaminan Perangkat Lunak (SA) aktif atau langganan yang memenuhi syarat untuk mendapatkan VM Windows di Azure dengan biaya yang berkurang.

Langkah berikutnya

Pengoptimalan biaya adalah upaya berkelanjutan dan berulang. Pelajari selengkapnya dengan meninjau rekomendasi dan panduan arsitektur berikut: