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 hak dinamis dan penskalaan otomatis
  • Memanfaatkan diskon Azure untuk penghematan besar
  • 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 VM berikut:

  • Kumpulan simpul Spot Azure Spot Machines - didukung oleh set skala komputer Virtual Azure Spot dan disebarkan ke satu domain kesalahan tanpa jaminan ketersediaan tinggi atau 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 AMR64 di AKS, Anda dapat membuat simpul agen ARM64 Ubuntu dan bahkan mencampur node 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 - Tergantung pada sifat beban kerja Anda, pertimbangkan untuk menggunakan komputasi yang dioptimalkan, memori yang dioptimalkan, penyimpanan 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.

Menggunakan konfigurasi prasetel kluster

Memilih SKU VM, wilayah, jumlah simpul, dan opsi konfigurasi lainnya yang tepat dapat menjadi sulit di muka. 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, kluster dan infrastruktur dapat dibagikan 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, perencanaan tambahan diperlukan untuk mencegah penyewa memengaruhi 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 akan mempercepat waktu penyebaran dan meningkatkan efisiensi operasi penskalaan. Selangkah lagi, Streaming Artefak di AKS memungkinkan Anda mengalirkan 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, namespace layanan individual dicegah untuk menggunakan lebih banyak sumber daya daripada yang dialokasikan. Ini sangat penting untuk kluster multi-penyewa di mana tim berbagi infrastruktur.

Gunakan penghentian mulai kluster

Pengembangan kecil dan kluster pengujian, ketika dibiarkan tanpa pengawasan, dapat mewujudkan sejumlah besar pengeluaran yang tidak perlu. Nonaktifkan kluster yang tidak perlu berjalan setiap saat menggunakan mulai dan hentikan kluster. Melakukannya mematikan semua kumpulan simpul sistem dan pengguna sehingga Anda tidak membayar komputasi tambahan. Semua objek dan status kluster akan 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 akan 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 metrik 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.

Jika Anda mengandalkan penyerapan log, sebaiknya gunakan API Log Dasar untuk mengurangi biaya Analitik Log. Untuk mempelajari selengkapnya, lihat Praktik terbaik Azure Monitor dan mengelola biaya untuk wawasan Kontainer.

Mengoptimalkan beban kerja melalui autoscaling

Aktifkan Autoscaling Aplikasi

Autoscaling Pod Vertikal

Permintaan dan batasan yang secara signifikan 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. Vertical Pod Autoscaler (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.

Horizontal Pod Autoscaling

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 bersama 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 bersama 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 tambahan 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

Autoscaling Kluster

Untuk mengikuti permintaan aplikasi, Cluster Autoscaler mengawasi pod yang tidak dapat dijadwalkan karena kendala sumber daya dan menskalakan jumlah simpul di kumpulan simpul yang sesuai. Ketika simpul tidak memiliki pod yang berjalan, Autoscaler Kluster akan menurunkan jumlah simpul. Perhatikan bahwa pengaturan profil Autoscaler Kluster berlaku untuk semua nodepool yang diaktifkan autoscaler di kluster. Untuk mempelajari lebih lanjut, 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, berdasarkan persyaratan sumber daya pod yang tertunda, konfigurasi VM optimal 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 Azure Savings Plan. 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. Yayasan FinOps telah merilis beberapa proyek penting:

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