Mengonfigurasi Pod maksimum per node

Halaman ini menjelaskan cara mengoptimalkan resource cluster untuk memastikan kapasitas penjadwalan yang memadai bagi Pod Anda dengan mengonfigurasi jumlah maksimum Pod per node di cluster Standard di Google Kubernetes Engine (GKE). Halaman ini membantu Anda memahami bagaimana hubungan antara Pod, ukuran blok CIDR, dan jumlah node memengaruhi cara GKE menjadwalkan Pod dan mengalokasikan alamat IP dalam cluster Anda. Halaman ini juga mencakup detail tentang batasan dan nilai default untuk jumlah maksimum Pod per node.

Halaman ini membantu Operator, Arsitek cloud, Developer, dan Engineer jaringan yang menyediakan dan mengonfigurasi resource cloud, men-deploy aplikasi dan layanan, serta mengelola jaringan untuk deployment cloud mereka. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang dirujuk dalam konten, lihat Peran dan tugas pengguna GKE umum. Google Cloud

Sebelum membaca halaman ini, pahami kapan harus menggunakan cluster GKE Standard, bukan Autopilot, dan model jaringan Kubernetes.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.

Pembatasan

  • Anda hanya dapat mengonfigurasi Pod maksimum per node di cluster VPC native.
  • Pembuatan node dibatasi oleh jumlah alamat yang tersedia dalam rentang alamat Pod. Periksa tabel perencanaan rentang alamat IP untuk mengetahui ukuran rentang alamat Pod default, minimum, dan maksimum. Anda juga dapat menambahkan alamat IP Pod tambahan menggunakan CIDR multi-Pod yang terpisah-pisah.
  • Setiap cluster perlu membuat Pod kube-system, seperti kube-proxy, di namespace kube-system. Ingatlah untuk memperhitungkan Pod workload dan Pod Sistem saat Anda mengurangi jumlah maksimum Pod per node. Untuk menampilkan daftar Pod Sistem di cluster, jalankan perintah berikut:

    kubectl get pods --namespace kube-system
    

Mengonfigurasi Pod maksimum per node

Anda dapat mengonfigurasi jumlah maksimum Pod per node di cluster Standar saat membuat cluster atau saat membuat node pool. Anda tidak dapat mengubah setelan ini setelah cluster atau node pool dibuat. Untuk cluster Autopilot, jumlah maksimum node telah dikonfigurasi sebelumnya dan tidak dapat diubah.

Namun, jika kehabisan alamat IP Pod, Anda dapat membuat rentang alamat IP Pod tambahan menggunakan CIDR multi-Pod yang terpisah-pisah.

Anda dapat menetapkan ukuran rentang alamat Pod saat membuat cluster menggunakan gcloud CLI atau konsol Google Cloud .

gcloud

Untuk menetapkan Pod maksimum default per node menggunakan gcloud CLI, jalankan perintah berikut:

gcloud container clusters create CLUSTER_NAME \
    --enable-ip-alias \
    --cluster-ipv4-cidr=10.0.0.0/21 \
    --services-ipv4-cidr=10.4.0.0/19 \
    --create-subnetwork=name='SUBNET_NAME',range=10.5.32.0/27 \
    --default-max-pods-per-node=MAXIMUM_PODS \
    --location=COMPUTE_LOCATION

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster baru.
  • SUBNET_NAME: nama subnetwork baru untuk cluster Anda.
  • MAXIMUM_PODS: jumlah maksimum default Pod per node untuk cluster Anda, dapat dikonfigurasi hingga 256. Jika dihilangkan, Kubernetes akan menetapkan nilai default 110.
  • COMPUTE_LOCATION: lokasi Compute Engine untuk cluster baru.

Konsol

  1. Di konsol Google Cloud , buka halaman Create a Kubernetes cluster.

    Buka Membuat cluster Kubernetes

  2. Konfigurasi cluster baru Anda.

  3. Dari panel navigasi, pada Cluster, klik Networking.

  4. Pastikan mencentang kotak Aktifkan pemilihan rute traffic VPC-native (menggunakan IP alias).

  5. Dari panel navigasi, di bagian Node pool, klik Node.

  6. Tetapkan kolom Pod maksimum per node ke 110. GKE menggunakan nilai ini untuk menyesuaikan ukuran rentang alamat IP yang ditetapkan ke node.

  7. Klik Buat.

Saat Anda mengonfigurasi jumlah maksimum Pod per node untuk cluster, Kubernetes akan menggunakan nilai ini untuk mengalokasikan rentang CIDR untuk node tersebut. Anda dapat menghitung jumlah maksimum node di cluster berdasarkan rentang alamat IP sekunder cluster untuk Pod dan rentang CIDR yang dialokasikan untuk node tersebut.

Misalnya, jika Anda menetapkan jumlah maksimum default Pod ke 110 dan rentang alamat IP sekunder untuk Pod ke /21, Kubernetes akan menetapkan rentang CIDR /24 ke node pada cluster. Penetapan rentang CIDR memungkinkan maksimum 2(24-21) = 23 = 8 node di cluster.

Demikian pula, jika Anda menetapkan Pod maksimum default ke 8 dan rentang alamat IP sekunder cluster untuk Pod ke /21, Kubernetes akan menetapkan rentang CIDR /28 ke node. Penetapan rentang CIDR memungkinkan maksimum 2(28-21) = 27 = 128 node di cluster.

Mengonfigurasi jumlah maksimum Pod dalam node pool baru untuk cluster yang ada

Anda juga dapat menentukan jumlah maksimum Pod per node saat membuat node pool di cluster Standar yang ada. Dengan membuat node pool baru, Anda dapat mengoptimalkan alokasi alamat IP, bahkan di cluster yang ada yang tidak mengonfigurasi jumlah maksimum default Pod per node di level cluster.

Menetapkan jumlah maksimum Pod pada level node pool akan menggantikan nilai maksimum default level cluster. Jika Anda tidak mengonfigurasi jumlah maksimum Pod per node saat membuat node pool, jumlah maksimum level cluster akan berlaku.

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster=CLUSTER_NAME \
    --max-pods-per-node=MAXIMUM_PODS

Ganti kode berikut:

  • POOL_NAME: nama node pool baru.
  • CLUSTER_NAME: nama cluster tempat Anda ingin membuat node pool.
  • MAXIMUM_PODS: jumlah maksimum Pod dalam node pool.

Konsol

  1. Buka halaman Google Kubernetes Engine di Google Cloud konsol.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Klik Add Node Pool.

  4. Dari panel navigasi, klik Node.

  5. Di bagian Networking, masukkan nilai untuk kolom Jumlah Pod Maksimum per node. GKE menggunakan nilai ini untuk menyesuaikan ukuran rentang alamat IP yang ditetapkan ke node.

Rentang sekunder Pod dan Pod maksimum per node

Saat mengonfigurasi jumlah maksimum Pod per node, Anda secara tidak langsung memengaruhi ukuran rentang sekunder Pod yang diperlukan. GKE memerlukan blok CIDR minimum /24 per node pool. Mencoba menentukan rentang sekunder Pod yang lebih kecil dari /24 saat membuat node pool akan menghasilkan error berikut:

Pod secondary range 'Pod' must have a CIDR block of at least /24

Jika Anda memerlukan rentang yang lebih kecil dari /24 untuk keseluruhan cluster, Anda dapat menentukannya di tingkat cluster menggunakan argumen --cluster-ipv4-cidr dengan Google Cloud CLI. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster dengan rentang CIDR tertentu. Anda juga dapat menggunakan CIDR multi-Pod yang berjauhan untuk menambahkan lebih banyak rentang alamat IP Pod ke cluster.

Setiap cluster perlu membuat Pod kube-system, seperti kube-proxy, di namespace kube-system. Ingatlah untuk memperhitungkan Pod workload dan Pod Sistem saat Anda mengonfigurasi jumlah maksimum Pod per node.

Tentang Pod maksimum default per node

Secara default, GKE mengizinkan hingga 110 Pod per node pada cluster Standard, tetapi cluster Standard dapat dikonfigurasi untuk mengizinkan hingga 256 Pod per node. Cluster Autopilot, berdasarkan kepadatan Pod workload yang diharapkan, memilih jumlah maksimum Pod per node dari rentang antara 8 dan 256. Kubernetes menetapkan rentang alamat IP untuk setiap node, blok CIDR, sehingga setiap Pod dapat memiliki alamat IP yang unik. Ukuran blok CIDR sesuai dengan jumlah maksimum Pod per node.

Rentang CIDR Pod di cluster Standard

Dengan jumlah default maksimum 110 Pod per node untuk cluster Standard, Kubernetes menetapkan blok CIDR /24 (256 alamat) ke setiap node. Dengan memiliki alamat IP yang tersedia lebih banyak dua kali lipat daripada jumlah maksimum Pod yang bisa dibuat di sebuah node, Kubernetes dapat mengurangi penggunaan kembali alamat IP saat Pod ditambahkan ke dan dihapus dari node.

Meskipun memiliki 256 Pod per node adalah batas mutlak, Anda dapat mengurangi jumlah Pod pada sebuah node. Ukuran blok CIDR yang ditetapkan ke sebuah node bergantung pada Pod maksimum per nilai node. Blok selalu berisi alamat setidaknya dua kali lebih banyak dari jumlah maksimum Pod per node.

Tabel berikut mencantumkan ukuran blok CIDR dan jumlah masing-masing alamat IP yang tersedia yang ditetapkan Kubernetes ke node berdasarkan Pod maksimum per node:

Pod Maksimum per Node Rentang CIDR per Node Jumlah alamat IP
8 /28 16
9 – 16 /27 32
17 – 32 /26 64
33 – 64 /25 128
65 – 128 /24 256
129 - 256 /23 512

Pertimbangan pengukuran cluster untuk rentang alamat IP sekunder untuk Pod

Saat Anda membuat cluster, ukuran rentang alamat IP sekunder untuk Pod tidak dapat diubah. Anda harus merencanakan ukuran rentang ini dengan cermat untuk mengakomodasi kebutuhan workload saat ini dan di masa mendatang. Ruang alamat IP yang tidak mencukupi untuk Pod dapat menyebabkan kegagalan penjadwalan dan mencegah cluster Anda melakukan penskalaan.

Jika Anda tidak yakin dengan ukuran yang diperlukan, sebaiknya mulai dengan rentang yang lebih besar, seperti /21, yang merupakan default untuk cluster yang dibuat dengan Google Cloud CLI. Rentang yang lebih besar menyediakan alamat IP yang cukup untuk cluster berukuran sedang dan memberi Anda fleksibilitas untuk pertumbuhan di masa mendatang. Jika kehabisan alamat IP Pod, Anda dapat menggunakan CIDR multi-Pod yang terpisah-pisah untuk menambahkan rentang alamat IP Pod lainnya.

Namun, jika Anda bekerja di lingkungan dengan ruang alamat IP yang terbatas, Anda mungkin perlu menggunakan rentang yang lebih kecil. Dalam kasus tersebut, Anda dapat mengurangi jumlah maksimum Pod per node. Dengan mengurangi jumlah maksimum Pod per node, setiap node dapat memiliki rentang CIDR Pod yang lebih kecil, yang pada gilirannya memungkinkan lebih banyak node masuk dalam rentang sekunder Pod yang lebih kecil untuk seluruh cluster. Konfigurasi ini merupakan kompromi antara kepadatan Pod per node dan jumlah total node dalam cluster Anda.

Untuk menghitung jumlah maksimum Pod yang dapat didukung cluster Anda, Anda memberikan nilai input untuk jumlah Pod per node dan rentang CIDR. GKE menggunakan input ini untuk menentukan ukuran rentang alamat untuk node dan Pod Anda.

Nilai yang ditentukan pengguna

Ini adalah nilai yang Anda berikan saat membuat cluster atau node pool.

  • Q: Jumlah maksimum Pod per node.
    • Untuk cluster Autopilot, Q ditetapkan (saat ini 32).
    • Untuk cluster Standard, Anda dapat mengonfigurasi Q.
  • DS: Panjang awalan subnet Pod. Misalnya, untuk rentang CIDR /17, panjang awalan adalah 17.
  • S: Panjang awalan subnet utama. Misalnya, untuk rentang CIDR /24, panjang awalan adalah 24.

Nilai yang dihitung

GKE menghitung nilai berikut berdasarkan input Anda.

  • M: Ukuran netmask untuk rentang Pod setiap node. none M = 31 - ⌈log₂(Q)⌉ Gunakan fungsi ceiling (⌈ ⌉) untuk membulatkan ke bilangan bulat terdekat.

  • HM: Jumlah bit host untuk netmask rentang Pod node. none HM = 32 - M

  • HD: Jumlah bit host untuk netmask subnet Pod CIDR yang dipilih. none HD = 32 - DS

  • MN: Jumlah maksimum node yang dapat didukung oleh subnet Pod. none MN = 2^(HD - HM)

  • MP: Jumlah maksimum Pod yang dapat didukung oleh subnet Pod. none MP = MN * Q

  • N: Jumlah alamat IP yang dapat digunakan dalam rentang utama. none N = 2^(32-S) - 4

Catatan penting:

  • Semua alamat IP dalam rentang sekunder dapat digunakan untuk Pod.
  • Penghitungan ini memberikan nilai maksimum teoretis. Performa di dunia nyata dapat dipengaruhi oleh faktor lain.

Contoh:

Misalkan Anda membuat cluster GKE Autopilot dengan hal berikut:

  • CIDR subnet Pod /17 (DS = 17).
  • Maksimum 32 Pod per node (Q = 32).

Hitung jumlah maksimum Pod:

  1. M = 31 - ⌈log₂(32)⌉ = 26
  2. HM = 32 - 26 = 6
  3. HD = 32 - 17 = 15
  4. MN = 2(15 - 6) = 512
  5. MP = 512 * 32 = 16,384

Cluster ini dapat mendukung maksimum 512 node dan 16.384 Pod.

Mengurangi jumlah maksimum Pod

Dengan mengurangi jumlah maksimum Pod per node, cluster dapat memiliki lebih banyak node, karena setiap node memerlukan bagian yang lebih kecil dari total ruang alamat IP. Atau, Anda dapat mendukung jumlah node yang sama dalam cluster dengan menentukan ruang alamat IP yang lebih kecil untuk Pod pada waktu pembuatan cluster.

Dengan mengurangi jumlah maksimum Pod per node, Anda juga dapat membuat cluster lebih kecil yang memerlukan lebih sedikit alamat IP. Misalnya, dengan delapan Pod per node, setiap node diberi CIDR /28. Rentang alamat IP ini ditambah rentang subnet dan sekunder yang Anda tentukan akan menentukan jumlah alamat IP yang diperlukan agar berhasil membuat cluster.

Anda dapat mengonfigurasi jumlah maksimum Pod per node pada waktu pembuatan cluster dan pada waktu pembuatan node pool.

Langkah berikutnya