Kuota dan batas

Halaman ini menjelaskan kuota dan batas GKE on Bare Metal merilis 1,28 untuk project, cluster, dan node Google Cloud.

Batas

Bagian berikut menguraikan beberapa batasan dasar untuk cluster Anda. Pertimbangkan batasan ini saat mendesain aplikasi Anda untuk dijalankan di GKE di Bare Metal.

Cluster pengguna maksimum per cluster admin

Cluster admin mengelola siklus proses untuk cluster pengguna dan node terkait. Cluster admin mengontrol operasi cluster pengguna yang penting, seperti pembuatan cluster, reset cluster atau node, upgrade cluster, dan update cluster. Jumlah total node cluster pengguna adalah salah satu faktor utama yang membatasi performa dan keandalan.

Berdasarkan pengujian yang berkelanjutan, cluster admin dapat mendukung secara andal maksimal 100 cluster pengguna yang memiliki 10 node masing-masing dengan total 1.000 node.

Jumlah maksimum pod per cluster pengguna

Sebaiknya batasi jumlah pod per cluster pengguna hingga 15.000 atau kurang. Misalnya, jika cluster memiliki 200 node, Anda harus membatasi jumlah pod per node menjadi 75 atau kurang. Demikian pula, jika ingin menjalankan 110 pod per node, Anda harus membatasi jumlah node dalam cluster menjadi 136 atau kurang. Tabel berikut memberikan contoh konfigurasi yang direkomendasikan dan tidak direkomendasikan.

Pod per node Node per cluster Pod per Cluster Hasil
110 200 22.000 Terlalu banyak pod, tidak direkomendasikan
110 136 14.960 Dalam batas
100 150 15.000 Dalam batas
75 200 15.000 Dalam batas

Jumlah maksimum pod per rekomendasi cluster pengguna lebih diutamakan daripada rekomendasi untuk pod per node dan node per cluster pengguna dalam bagian berikut.

Jumlah maksimum node per cluster pengguna

Kami menguji GKE pada Bare Metal untuk menjalankan workload dengan maksimal 500 node. Namun, untuk memastikan performa dan keandalan yang optimal, sebaiknya jangan melebihi 200 node per cluster saat menjalankan beban kerja dalam produksi.

Jenis cluster Node minimum Node maksimum yang direkomendasikan Node maksimum absolut
Pengguna, Mandiri, atau Hybrid 1 200 500

Untuk cluster node tunggal, Anda harus menghapus taint node-role.kubernetes.io/master:NoSchedule untuk menjalankan workload pada node tersebut. Untuk mengetahui detailnya, lihat taint dan toleransi Kubernetes.

Jumlah maksimum pod per node

GKE di Bare Metal mendukung konfigurasi pod maksimum per node dalam setelan nodeConfig.PodDensity.MaxPodsPerNode dari file konfigurasi cluster. Tabel berikut menunjukkan nilai minimum dan maksimum yang didukung untuk MaxPodsPerNode, yang mencakup pod yang menjalankan layanan add-on:

Jenis cluster Nilai minimum yang diizinkan Nilai maksimum yang direkomendasikan Nilai maksimum yang diizinkan
Semua cluster pengguna dengan ketersediaan tinggi (HA) dan cluster pengguna tanpa ketersediaan tinggi (HA) 32 110 250
Semua cluster non-HA lainnya 64 110 250

Jumlah maksimum endpoint

Di Red Hat Enterprise Linux (RHEL), ada batasan tingkat cluster sebanyak 100.000 endpoint. Angka ini adalah jumlah semua pod yang dirujuk oleh layanan Kubernetes. Jika dua layanan mereferensikan kumpulan pod yang sama, situasi ini akan dihitung sebagai dua kumpulan endpoint yang terpisah. Implementasi nftable yang mendasarinya pada RHEL menyebabkan batasan ini; tetapi bukan batasan intrinsik GKE pada Bare Metal.

Mitigasi

Untuk RHEL, tidak ada mitigasi. Untuk sistem Ubuntu dan Debian, sebaiknya beralih dari nftables default ke iptables lama pada cluster skala besar.

GKE Dataplane V2

GDCV untuk Bare Metal menggunakan GKE Dataplane V2, yaitu sebuah dataplane cluster yang diimplementasikan dengan Cilium dan eBPF, yang dioptimalkan untuk jaringan Kubernetes.

Batas NetworkPolicy GKE Dataplane V2

GKE Dataplane V2 menggunakan Cilium untuk mengelola resource NetworkPolicy Kubernetes. Batas berikut berlaku untuk GKE Anda di cluster Bare Metal:

Dimensi Batas yang didukung
Tingkat perubahan maksimum untuk label namespace Paling banyak, satu perubahan per jam untuk setiap namespace.

Umumnya, batas ini tidak diperlukan. Selama perubahan tidak sering dilakukan, misalnya setiap detik, atau jumlah identitas Cilium (set label unik) tidak mendekati batas: 16.000 set label dengan kebijakan jaringan izinkan semua, atau 65.535 set label per cluster.

Jumlah maksimum endpoint Layanan per cluster 100.000 endpoint adalah batas yang telah diuji dan direkomendasikan. Batas hardcode untuk endpoint Layanan adalah 262.000.
Jumlah maksimum kebijakan dan aturan jaringan Paling banyak, 40.000 kebijakan jaringan dan 80.000 aturan. Misalnya, Anda dapat menentukan 40.000 kebijakan jaringan masing-masing dengan dua aturan, atau Anda dapat menentukan 20.000 kebijakan dengan masing-masing empat aturan.
Tingkat perubahan maksimum untuk kebijakan jaringan Maksimum 20 perubahan (pembuatan atau penghapusan) per detik.
Jumlah maksimum kumpulan label pod unik 65.535 (216-1). Ini adalah batas Identitas keamanan Cilium.
Jumlah maksimum kumpulan label pod unik yang dipilih oleh pemilih kebijakan 16.000 (ukuran peta eBPF tetap). Entri peta pemilih kebijakan tertentu terdiri dari hal berikut: identitas keamanan, port, dan protokol.

Batas eBPF GKE Dataplane V2

Jumlah entri maksimum di lbmap BPF untuk Dataplane V2 adalah 65.536. Peningkatan di area berikut dapat menyebabkan jumlah total entri bertambah:

  • Jumlah layanan
  • Jumlah port per layanan
  • Jumlah backend per layanan

Sebaiknya pantau jumlah entri sebenarnya yang digunakan oleh cluster untuk memastikan Anda tidak melebihi batas. Gunakan perintah berikut untuk mendapatkan entri saat ini:

kubectl get po -n kube-system -l k8s-app=cilium | cut -d " " -f1 | grep anetd | head -n1 | \
    xargs -I % kubectl -n kube-system exec % -- cilium bpf lb list | wc -l

Sebaiknya gunakan juga pipeline pemantauan Anda sendiri untuk mengumpulkan metrik dari DaemonSet anetd. Pantau kondisi berikut untuk mengidentifikasi kapan jumlah entri menyebabkan masalah:

cilium_bpf_map_ops_total{map_name="lb4_services_v2",operation="update",outcome="fail" } > 0
cilium_bpf_map_ops_total{map_name="lb4_backends_v2",operation="update",outcome="fail" } > 0

Batas port LoadBalancer dan NodePort Services

Batas port untuk Layanan LoadBalancer dan NodePort adalah 2.768. Rentang port default adalah 30000-32767. Jika melebihi batas, Anda tidak dapat membuat Layanan LoadBalancer atau NodePort baru dan tidak dapat menambahkan port node baru untuk layanan yang ada.

Secara default, Kubernetes mengalokasikan port node ke Layanan jenis LoadBalancer. Alokasi ini dapat menghabiskan port node yang tersedia dengan cepat dari 2.768 yang dialokasikan untuk cluster Anda. Untuk menyimpan port node, nonaktifkan alokasi port node load balancer dengan menetapkan kolom allocateLoadBalancerNodePorts ke false di spesifikasi LoadBalancer Service. Setelan ini mencegah Kubernetes mengalokasikan port node ke LoadBalancer Services. Untuk mengetahui informasi selengkapnya, baca Menonaktifkan alokasi NodePort load balancer dalam dokumentasi Kubernetes.

Gunakan perintah berikut untuk memeriksa jumlah port yang dialokasikan:

kubectl get svc -A | grep : | tr -s ' ' | cut -d ' '  -f6 | tr ',' '\n' | wc -l

Batas koneksi node load balancer paket

Jumlah koneksi yang diizinkan untuk setiap node yang digunakan untuk paket load balancing (MetalLB) adalah 28.000. Rentang port ephemeral default untuk koneksi ini adalah 32768-60999. Jika Anda melebihi batas koneksi, permintaan ke LoadBalancer Service mungkin akan gagal.

Jika Anda perlu mengekspos layanan load balancer yang mampu menangani sejumlah besar koneksi (misalnya untuk Ingress), sebaiknya pertimbangkan metode load balancing alternatif untuk menghindari batasan ini dengan MetalLB.

Kuota cluster

Anda dapat mendaftarkan maksimum 15 cluster secara default. Untuk mendaftarkan lebih banyak cluster di GKE Hub, Anda dapat mengirimkan permintaan untuk menambah kuota di Konsol Google Cloud:

Buka Quotas

Informasi penskalaan

Informasi dalam dokumen ini relevan untuk merencanakan cara meningkatkan skala cluster Anda. Untuk mengetahui informasi selengkapnya, lihat Meningkatkan skala GKE pada cluster Bare Metal.

Tidak menemukan apa yang Anda cari? Klik Kirim masukan dan beri tahu kami apa saja yang kurang.