Bagikan melalui


Mengoptimalkan 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:

  • Pemilihan infrastruktur strategis.
  • Penskalaan dinamis dan penskalaan otomatis.
  • Memanfaatkan diskon Azure untuk penghematan yang substansial.
  • Pemantauan holistik dan praktik FinOps.

Menyiapkan lingkungan aplikasi

Mengevaluasi keluarga SKU

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

Keluarga SKU Deskripsi Gunakan huruf besar
Azure Spot Virtual Machines Skala komputer Azure Spot Virtual mengatur kembali kumpulan simpul Spot dan disebarkan ke satu domain kesalahan tanpa jaminan ketersediaan tinggi atau 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. Terbaik untuk lingkungan dev/test, beban kerja yang dapat menangani gangguan seperti pekerjaan pemrosesan batch, dan beban kerja dengan waktu eksekusi yang fleksibel.
Prosesor berbasis Ampere Altra Arm (Arm64) VM Arm64 hemat daya dan hemat biaya tetapi tidak membahayakan performa. Dengan dukungan kumpulan simpul Arm64 di AKS, Anda dapat membuat simpul agen Arm64 Ubuntu dan bahkan mencampur simpul arsitektur Intel dan ARM dalam kluster. VM ARM ini direkayasa untuk menjalankan beban kerja dinamis dan dapat diskalakan secara efisien dan dapat memberikan performa harga hingga 50% lebih baik daripada VM berbasis x86 yang sebanding untuk beban kerja peluasan skala. Terbaik untuk server web atau aplikasi, database sumber terbuka, aplikasi cloud-native, server game, dan banyak lagi.
SKU yang dioptimalkan GPU Bergantung pada sifat beban kerja Anda, pertimbangkan untuk menggunakan komputasi yang dioptimalkan, memori yang dioptimalkan, penyimpanan yang dioptimalkan, atau bahkan SKU VM yang dioptimalkan unit pemrosesan grafis (GPU). Ukuran VM GPU adalah VM khusus yang tersedia dengan GPU tunggal, ganda, dan pecahan. 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 prasetel kluster

Mungkin sulit untuk memilih SKU VM yang tepat, wilayah, jumlah simpul, dan opsi konfigurasi lainnya. Konfigurasi prasetel kluster dalam portal Azure membongkar tantangan awal ini dengan menyediakan konfigurasi yang direkomendasikan untuk lingkungan aplikasi yang berbeda yang sadar biaya dan berkinerja. Preset Dev/Test adalah yang terbaik untuk mengembangkan beban kerja baru atau menguji beban kerja yang ada. Preset Ekonomi Produksi adalah yang terbaik untuk melayani lalu lintas produksi dengan cara yang sadar biaya jika beban kerja Anda dapat mentolerir gangguan. Fitur noncritical nonaktif secara default, dan nilai prasetel dapat dimodifikasi kapan saja.

Pertimbangkan multitenansi

AKS menawarkan fleksibilitas dalam cara Anda menjalankan kluster multipenyewa dan mengisolasi sumber daya. Untuk multitenansi yang ramah, Anda dapat berbagi kluster dan infrastruktur di seluruh tim dan unit bisnis melalui isolasi logis. Namespace Layanan Kube 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 selengkapnya tentang multitenansi di AKS dan untuk menentukan apakah itu tepat untuk kebutuhan organisasi Anda, lihat pertimbangan AKS untuk kluster multitenansi dan Desain 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. Menambahkan overhead manajemen dan keuangan akan menjadi tradeoff.

Membangun aplikasi asli cloud

Buat kontainer Anda sesandar mungkin

Kontainer ramping mengacu pada pengoptimalan ukuran dan jejak sumber daya aplikasi kontainer. 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. Streaming Artefak 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

Kuota sumber daya menyediakan cara untuk memesan dan membatasi sumber daya di seluruh tim pengembangan atau proyek. Kuota ditentukan pada namespace layanan dan dapat diatur pada sumber daya komputasi, sumber daya penyimpanan, dan jumlah objek. Saat Anda menentukan kuota sumber daya, itu mencegah namespace layanan individual mengonsumsi lebih banyak sumber daya daripada yang dialokasikan. Kuota sumber daya berguna untuk kluster multipenyewa tempat tim berbagi infrastruktur.

Menggunakan kluster mulai/berhenti

Ketika dibiarkan tidak diawasi, kluster pengembangan/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.

Menggunakan 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 ada ke kumpulan simpul menjamin kapasitas yang dialokasikan untuk kumpulan simpul Anda dan membantu Anda menghindari potensi lonjakan harga sesuai permintaan 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

Jika Anda menyerap data metrik melalui wawasan Kontainer, sebaiknya migrasi ke Prometheus terkelola, yang menawarkan pengurangan biaya yang 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 wawasan Kontainer.

Log Analytics

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.

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

Permintaan dan batasan yang lebih tinggi dari penggunaan aktual dapat mengakibatkan beban kerja yang kelebihan provisi dan sumber daya yang terbuang. Sebaliknya, permintaan dan batasan yang terlalu rendah dapat mengakibatkan masalah pembatasan dan beban kerja karena kurangnya 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.

Penskalakan 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 menskalakan, menambahkan lebih banyak replika pod untuk mendistribusikan beban kerja. Selama periode permintaan rendah, HPA menskalakan masuk, mengurangi jumlah replika untuk 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

Add-on Autoscaler berbasis Peristiwa (KEDA) Kubernetes 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.

Mengaktifkan autoscaling infrastruktur

Penskalaan otomatis kluster

Untuk mengikuti permintaan aplikasi, Autoscaler Kluster mengawasi pod yang tidak dapat dijadwalkan karena kendala sumber daya dan menskalakan jumlah simpul di kumpulan simpul yang sesuai. Ketika node tidak memiliki pod yang berjalan, Autoscaler Kluster menurunkan jumlah simpul. Pengaturan profil Autoscaler Kluster berlaku untuk semua kumpulan simpul berkemampuan autoscaler dalam kluster. Untuk informasi selengkapnya, lihat Praktik dan pertimbangan terbaik Penskala Otomatis Kluster.

Provisi otomatis simpul

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. Node Autoprovision (NAP) menyederhanakan proses pemilihan SKU dan memutuskan konfigurasi VM optimal berdasarkan persyaratan sumber daya pod yang tertunda untuk menjalankan beban kerja dengan cara yang paling efisien dan hemat biaya.

Simpan dengan diskon Azure

Reservasi 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 berkomitmen untuk berjalan di SKU dan wilayah yang sama selama jangka waktu yang lama.

Azure Savings Plan

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.

Keuntungan Azure Hybrid

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.

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:

  • FinOps Framework: Model operasi tentang cara mempraktikkan dan mengimplementasikan FinOps.
  • Spesifikasi FOKUS: Spesifikasi teknis dan standar terbuka untuk penggunaan cloud, biaya, dan data penagihan di semua layanan penyedia cloud utama.

Langkah berikutnya

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