Mendesain dan mengonfigurasi cluster GKE untuk pengoptimalan biaya

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:

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:

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:

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:

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:

  1. Di konsol Google Cloud , buka halaman Overview.

    Buka Ringkasan

  2. Di bagian Desain infrastruktur Anda dengan Compute Advisor, kirimkan perintah. Gemini mulai membuat respons.

  3. 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.
    

    Jalankan perintah di Compute Advisor

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

    Jalankan perintah di Compute Advisor

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

    Jalankan perintah di Compute Advisor

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.