Dokumen ini membantu Anda menelusuri dokumentasi Google Kubernetes Engine (GKE) untuk menemukan panduan dan rekomendasi untuk pengoptimalan biaya. GKE menawarkan kemampuan penskalaan otomatis dan penjadwalan yang ekstensif yang dapat Anda gunakan untuk meminimalkan biaya cluster sekaligus menjaga stabilitas aplikasi.
Untuk ringkasan gabungan semua praktik terbaik GKE, lihat Praktik terbaik untuk GKE.Anda seharusnya sudah memahami hal-hal berikut:
Ringkasan
Saat menerapkan GKE, Anda harus mempertimbangkan berbagai aspek teknis agar selaras dengan persyaratan aplikasi dan bisnis. Selain menentukan jaringan, keamanan, penyimpanan, dan aspek teknis lainnya, Anda harus mengevaluasi biaya dan performa untuk memenuhi kebutuhan bisnis. Daripada memperlakukan biaya dan performa sebagai entitas yang berbeda, Anda harus mengintegrasikannya sejak tahap awal perencanaan infrastruktur untuk menentukan hubungan terpadu yang menentukan keandalan dan pembelanjaan cloud. Biaya rendah dan keandalan tinggi diharapkan, tetapi saat Anda melakukan penskalaan, kompleksitas pengelolaan kompromi ini akan meningkat.
Untuk mencapai biaya rendah dan stabilitas aplikasi, Anda dapat menyetel atau menyesuaikan fitur GKE berikut:
- Konfigurasi GKE
- Konfigurasi workload
- Dasar pengukuran dan visibilitas biaya
Anda juga dapat menemukan dan menerapkan praktik terbaik pengoptimalan biaya dengan menggunakan Compute Advisor (Pratinjau). Untuk mengetahui informasi selengkapnya, lihat bagian Menggunakan Compute Advisor.
Menggunakan Autopilot GKE
Untuk lingkungan pengembangan atau sandbox kecil, pilih cluster Autopilot. Dalam mode Autopilot, GKE mengelola node secara dinamis dan Anda hanya ditagih untuk kapasitas Pod yang diminta, sehingga membantu Anda menghindari biaya VM, sistem operasi node, dan overhead sistem.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan GKE Autopilot.
Memahami cara kerja penskalaan otomatis
Pengontrol penskalaan otomatis GKE menyesuaikan resource secara dinamis saat permintaan traffic berubah.
Menambahkan dan menghapus Pod berdasarkan metrik pemanfaatan
HorizontalPodAutoscaler (HPA) menambahkan dan menghapus Pod berdasarkan CPU atau metrik kustom.
Untuk memahami dan mengonfigurasi penskalaan otomatis Pod horizontal, lihat dokumentasi GKE berikut:
- Konsep penskalaan otomatis Pod horizontal
- Mengonfigurasi penskalaan otomatis Pod horizontal
- Melihat peristiwa Horizontal Pod Autoscaler
- Mengekspos metrik aplikasi kustom untuk penskalaan otomatis
Konfigurasi nilai minimum pemakaian target (misalnya, 70% atau 80%) untuk mempertahankan buffer yang menangani lonjakan traffic saat Pod replika tambahan dimulai.
Menskalakan Pod berdasarkan metrik pemanfaatan
Gunakan VerticalPodAutoscaler (VPA) untuk mengukur permintaan CPU dan memori container secara dinamis untuk workload yang tidak menggunakan penskalaan otomatis Pod horizontal, atau saat beban puncak tidak diketahui.
Untuk memahami dan mengonfigurasi penskalaan otomatis Pod vertikal, lihat dokumentasi GKE berikut:
Pertahankan VPA dalam mode Off (khusus rekomendasi) setidaknya selama 24 jam (sebaiknya satu minggu) di lingkungan yang mirip produksi untuk merekam pola traffic yang representatif. Untuk mencegah penyesuaian ukuran yang tidak menentu, tentukan batas minimum dan maksimum eksplisit dalam objek VerticalPodAutoscaler Anda sebelum mengaktifkan mode Initial atau Auto.
Mengotomatiskan penskalaan infrastruktur menggunakan Cluster Autoscaler
Untuk menskalakan node komputasi pokok berdasarkan simulasi penjadwalan aktif, bukan beban metrik, aktifkan Cluster Autoscaler di node pool Standar GKE. Tentukan parameter node minimum untuk mendukung kapasitas dasar pada malam hari.
Selalu konfigurasi objek PodDisruptionBudget (PDB) untuk Pod sistem dan aplikasi. Konfigurasi ini membantu memastikan bahwa Autoscaler Cluster tidak secara tidak sengaja menyebabkan gangguan layanan saat menggabungkan atau menurunkan skala kumpulan node yang kurang dimanfaatkan.
Untuk memahami dan mengonfigurasi Autoscaler Cluster, lihat dokumentasi GKE berikut:
- Tentang penskalaan otomatis cluster GKE
- Menskalakan cluster secara otomatis
- Lihat peristiwa autoscaler cluster
Men-deploy node pool dinamis menggunakan pembuatan otomatis node pool
Aktifkan pembuatan otomatis node pool untuk membuat node pool GKE kustom secara otomatis yang bentuk, jumlah CPU, atau batas memorinya sesuai dengan parameter penjadwalan Pod yang tertunda. Fitur ini meminimalkan resource yang tersisa pada node yang terlalu besar.
Untuk memahami dan mengonfigurasi pembuatan otomatis node pool, lihat dokumentasi GKE berikut:
Checklist penskalaan otomatis
Karakteristik infrastruktur
Sesuaikan hardware cluster, lokasi, dan aturan jaringan node dengan prioritas pengoptimalan biaya.
Pilih jenis mesin yang sesuai
Pilih jenis mesin yang sesuai untuk cluster Anda berdasarkan lokasi pengguna dan lokasi data yang perlu diakses cluster Anda.
Untuk mengetahui informasi selengkapnya, lihat Panduan perbandingan dan resource kelompok mesin.
Men-deploy workload fault-tolerant di Spot VM
Gunakan Spot VM untuk menjalankan workload stateless, fault-tolerant, atau batch dengan diskon hingga 91% dibandingkan dengan instance VM on-demand.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi GKE berikut:
- Konsep Spot VM
- Menjalankan workload fault-tolerant dengan biaya lebih rendah menggunakan Spot VM
- Menjalankan workload fault-tolerant dengan biaya lebih rendah di Pod Spot
Memetakan kelompok mesin yang efisien dan setelan sistem OS
Sesuaikan setelan mesin node pool dengan profil instance yang hemat biaya (misalnya, arsitektur VM E2).
Untuk mengetahui informasi selengkapnya tentang cara menentukan ukuran node, mengonfigurasi waktu penghentian sementara Spot VM, dan mengonfigurasi konfigurasi kernel, lihat Tentang kumpulan node.
Memilih region yang sesuai
Jika latensi tidak memengaruhi pengguna, jalankan workload cluster di region Compute Engine dengan biaya operasi yang lebih rendah.
Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik untuk pemilihan region Compute Engine.
Mendaftar ke CUD
Beli diskon abonemen (CUD) untuk mendapatkan harga diskon besar (hingga 70%) untuk resource komputasi dasar selama jangka waktu satu atau tiga tahun.
Untuk mengetahui informasi selengkapnya, lihat Diskon abonemen berbasis resource.
Mempertimbangkan biaya jaringan
Cluster GKE regional dan multi-zona meningkatkan keandalan aplikasi, tetapi dapat menimbulkan biaya traffic keluar jaringan lintas zona internal.
Untuk meminimalkan dan mengontrol biaya jaringan, pertimbangkan hal berikut:
- Transfer data lintas zona: meskipun cluster regional meningkatkan ketersediaan dengan menyebarkan workload di seluruh zona, ada biaya terkait untuk data yang ditransfer antar-zona ini.
Untuk mengetahui informasi selengkapnya, lihat Semua harga jaringan.
Men-deploy cluster zona tunggal untuk lingkungan non-produksi
Di lingkungan non-produksi, untuk menghindari biaya jaringan lintas zona dan mengurangi overhead VM, deploy cluster zona tunggal, bukan cluster regional atau multizona.
Untuk mengetahui informasi selengkapnya, lihat Tentang pilihan konfigurasi cluster.
Mengoptimalkan jalur resolusi DNS cluster dan traffic masuk
Untuk mengoptimalkan resolusi DNS cluster dan traffic masuk, Anda dapat men-deploy NodeLocal DNSCache dan grup endpoint jaringan (NEG).
Saat Anda menjalankan workload yang berat DNS-nya, NodeLocal DNSCache akan menjalankan daemon DNS lokal di setiap node. Konfigurasi ini mencegah beban kueri yang tinggi menghabiskan CoreDNS, sehingga tidak perlu menskalakan CoreDNS dan mengurangi biaya GKE secara keseluruhan.
Untuk traffic ingress, load balancing berbasis container melalui NEG merutekan traffic langsung ke alamat IP Pod, bukan grup instance. Perutean langsung ini memfasilitasi pengalihan traffic yang lancar selama tindakan penskalaan Pod.
Untuk informasi selengkapnya, lihat:
- Siapkan NodeLocal DNSCache
- Ringkasan load balancing berbasis container
- Mengonfigurasi Ingress untuk Load Balancer Aplikasi eksternal
Menerapkan kuota resource per namespace
Deploy objek ResourceQuota Kubernetes standar per namespace di cluster multi-tenant untuk mengunci nilai minimum dan maksimum CPU dan memori serta mencegah setiap tim menjadwalkan workload yang tidak sesuai yang memicu biaya komputasi yang tidak terduga.
Untuk mengetahui informasi selengkapnya, lihat Namespace dalam dokumentasi Kubernetes.
Menerapkan audit Pengontrol Kebijakan
Deploy Pengontrol Kebijakan untuk mengaudit dan menerapkan kepatuhan cluster secara dinamis terhadap standar perusahaan. Pengontrol Kebijakan menggunakan kontrol penerimaan untuk menolak resource yang salah dikonfigurasi.
Untuk informasi selengkapnya, lihat referensi berikut:
Menyaring manifes yang tidak sesuai di pipeline CI/CD
Validasi kepatuhan terhadap kebijakan biaya lebih awal dalam siklus proses pengembangan Anda.
Integrasikan skrip validasi (seperti parsing kpt) ke dalam pemeriksaan pra-commit atau pull request untuk mengaudit dan memblokir manifes yang tidak mematuhi kebijakan sebelum mencapai cluster.
Untuk mengetahui informasi selengkapnya, lihat Memvalidasi aplikasi berdasarkan kebijakan perusahaan di pipeline CI.
Checklist infrastruktur
Pengoptimalan aplikasi dan beban kerja
Konfigurasi beban kerja Anda untuk menggunakan resource secara efisien dan mengurangi overhead operasional.
Menentukan permintaan dan batas memori yang cocok
Tentukan permintaan CPU dan memori container yang tepat sebelum deployment. Untuk CPU, konfigurasi permintaan untuk memenuhi tujuan tingkat layanan (SLO) Anda, tetapi biarkan batas tidak dibatasi. Untuk memori, pastikan alokasi yang diminta cocok dengan batas memori.
Untuk mengetahui informasi selengkapnya, lihat Mengubah Ukuran Resource CPU dan Memori yang ditetapkan ke Kontainer dalam dokumentasi Kubernetes.
Mempercepat waktu mulai container
Buat image container sekecil mungkin untuk meminimalkan waktu download image.
Mengonfigurasi PDB
Tentukan objek PodDisruptionBudget (PDB) untuk replika aplikasi guna membatasi gangguan sukarela dan memastikan stabilitas saat GKE melakukan penskalaan atau saat upgrade node terjadi.
Untuk mengetahui informasi selengkapnya, lihat Menentukan Anggaran Gangguan untuk Aplikasi Anda.
Menetapkan pemeriksaan kesiapan dan keaktifan yang bermakna
Konfigurasi pemeriksaan kesiapan dan keaktifan untuk semua penampung guna membantu memastikan bahwa GKE hanya merutekan traffic ke Pod yang siap dan memulai ulang instance yang gagal, sehingga mencegah kehilangan traffic selama penskalaan otomatis.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Pemeriksaan Keaktifan, Kesiapan, dan Startup.
Mengonfigurasi penonaktifan aplikasi yang tuntas
Siapkan container untuk penghentian yang benar dengan memproses sinyal SIGTERM, menyelesaikan permintaan yang sedang berlangsung sebelum keluar, atau dengan mengonfigurasi hook preStop.
Untuk mengetahui informasi selengkapnya, lihat Penghentian dan penghentian normal preemptible VM.
Menerapkan percobaan ulang dengan backoff eksponensial
Terapkan percobaan ulang backoff eksponensial di tingkat aplikasi atau mesh layanan untuk menangani kegagalan sementara atau potensi preemption Spot VM.
Untuk mengetahui informasi selengkapnya, lihat Upaya Coba Lagi dalam dokumentasi Istio.
Checklist pengoptimalan aplikasi dan beban kerja
Dasar pengukuran dan visibilitas biaya
Untuk mengoptimalkan biaya, Anda harus terlebih dahulu memiliki visibilitas terhadap pengeluaran GKE dan cara alokasinya. Visibilitas ini membantu Anda mengatribusikan biaya ke tim dan unit bisnis yang menanggungnya.
Dokumentasi GKE berikut menjelaskan cara mendapatkan visibilitas mendalam ke dalam penagihan, konsumsi resource, dan metrik dasar GKE.
Mengaktifkan alokasi biaya GKE
Aktifkan alokasi biaya GKE untuk mendapatkan visibilitas ke permintaan resource workload dan biaya terkait. Alokasi biaya mengatribusikan biaya cluster ke namespace dan label Kubernetes dari workload Anda.
Ekspor detail ini ke BigQuery untuk menganalisis data di Penagihan Cloud. Gunakan analisis ini untuk mengidentifikasi beban kerja mana yang menyebabkan lonjakan penagihan, melakukan pengembalian dana, dan mengoptimalkan permintaan resource.
Untuk mengetahui informasi selengkapnya, lihat Mendapatkan analisis pengeluaran utama untuk alokasi resource GKE dan biaya cluster Anda.
Meninjau volume penyerapan log dan metrik
Mengaktifkan Cloud Logging dan Cloud Monitoring untuk cluster Anda akan menimbulkan biaya. Volume penyerapan log dan metrik kustom yang tinggi dapat menyebabkan tagihan yang tidak terduga. Mengaudit secara terpusat tingkat log dan metrik kustom yang di-ingest.
Untuk mengetahui informasi selengkapnya tentang cara memecahkan masalah penggunaan API logging yang tinggi atau waktu tunggu penulisan log yang habis, lihat:
Memantau kondisi Server Metrik
Pantau kondisi Deployment Server Metrik, karena pengontrol penskalaan otomatis bawaan GKE mengandalkannya untuk mengambil metrik CPU dan memori.
Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah penskalaan otomatis Pod horizontal.
Menumbuhkan budaya hemat biaya
Memberi developer akses ke dasbor pembelanjaan cloud dan membuat pelatihan FinOps untuk menyelaraskan keputusan arsitektur dengan anggaran biaya bisnis.
Untuk mengetahui informasi selengkapnya tentang budaya efisiensi biaya organisasi, lihat Menyebarkan budaya penghematan biaya.
Checklist visibilitas dan dasar pengukuran biaya
Menggunakan Compute Advisor
Compute Advisor adalah antarmuka yang didukung AI di konsol Google Cloud , yang didukung oleh Gemini, yang membantu Anda mendesain arsitektur yang tangguh dan hemat biaya untuk GKE.
Compute Advisor memberikan panduan ketersediaan hampir real-time untuk VM Flex-start dan VM Spot, sekaligus memverifikasi kebijakan dan kuota resource organisasi Anda sebelum deployment. Compute Advisor tidak memberikan panduan ketersediaan untuk workload yang memerlukan resource on-demand.
Untuk mengakses Gemini di konsol Google Cloud , selesaikan langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Overview.
-
Di bagian Desain infrastruktur Anda dengan Compute Advisor, kirimkan perintah. Gemini mulai membuat respons.
-
Untuk membuat rekomendasi arsitektur, jalankan salah satu contoh perintah berikut di Compute Advisor. Saat Anda mengklik tombol Run prompt in Compute Advisor, konsol Google Cloud mungkin memerlukan waktu lebih dari 15 detik untuk dimuat:
Penskalaan otomatis dan bin packing:
Kasus penggunaan: Untuk memaksimalkan bin packing dan meminimalkan overhead CPU saat tidak ada aktivitas, gunakan perintah ini untuk mengonfigurasi strategi penskalaan otomatis cluster GKE dan node pool.
Configure a GKE cluster to use autoscaler and node pool strategy to maximize bin packing and minimize idle CPU overhead.Tata kelola multi-tenancy:
Kasus penggunaan: Untuk menjaga namespace pengembangan dalam batas anggaran, gunakan perintah ini untuk membuat draf kebijakan ResourceQuota untuk cluster GKE multi-tenant.
Draft a ResourceQuota policy for a multi-tenant GKE cluster to keep development namespaces within budget bounds.Pengoptimalan beban kerja:
Kasus penggunaan: Untuk membantu Anda memutuskan apakah akan menggunakan mode GKE Autopilot atau Standar untuk workload batch dengan permintaan resource yang bervariasi, gunakan perintah ini untuk mendapatkan rekomendasi:
Recommend whether to use GKE Autopilot or Standard mode for a batch processing workload with highly variable resource demands.
Langkah berikutnya
Untuk mengetahui informasi selengkapnya tentang prinsip arsitektur dan budaya organisasi yang diperlukan untuk efisiensi biaya, lihat Praktik terbaik untuk menjalankan aplikasi Kubernetes yang hemat biaya di GKE.