Halaman ini menunjukkan cara menambahkan rentang alamat IP Pod sekunder baru atau yang sudah ada ke cluster GKE dengan CIDR multi-Pod yang tidak terhubung.
Alasan menambahkan lebih banyak rentang IPv4 Pod
Sebagai administrator platform, Anda dapat menambahkan lebih banyak rentang IPv4 Pod dengan membuat rentang sekunder tambahan. Hal ini dapat berguna dalam skenario berikut:
- Saat cluster kehabisan alamat IP Pod.
- Saat Anda ingin mengalokasikan alamat IP secara efisien untuk antisipasi masa depan.
- Saat Anda dapat menggunakan ruang alamat IP yang terfragmentasi untuk cluster Anda. .
- Kapan Anda dapat mengalokasikan ulang alamat IP sebagai respons terhadap kebutuhan bisnis yang berubah.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Mengaktifkan Google Kubernetes Engine API. Mengaktifkan Google Kubernetes Engine API
- Jika Anda 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
gcloud components update
.
- Tinjau bagian Menambahkan lebih banyak rentang IPv4 Pod untuk kasus penggunaan tertentu.
- Hanya gunakan cluster -native VPC.
Tambahkan lebih banyak rentang IPv4 Pod dengan GKE Autopilot
Untuk cluster GKE Autopilot di versi 1.26 atau yang lebih baru, Anda dapat menambahkan lebih banyak rentang IPv4 Pod dengan membuat rentang sekunder tambahan dan menetapkannya ke cluster.
Membuat rentang sekunder tambahan untuk subnet
Konsol
Buka halaman Jaringan VPC di konsol Google Cloud.
Di daftar jaringan VPC, pilih jaringan yang ingin Anda perluas.
Dalam daftar Subnet, pilih subnet yang diinginkan.
Klik Edit.
Klik Tambahkan rentang IP.
Untuk Nama rentang subnet, masukkan nama rentang Pod tambahan. Contoh,
pod-range-2
.Untuk Rentang IP sekunder, masukkan rentang IP. Contoh,
10.2.204.0/22
.Klik Simpan.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--add-secondary-ranges ADDITIONAL_RANGE=RANGE \
--region=COMPUTE_REGION
Ganti kode berikut:
SUBNET_NAME
: Nama subnet yang ingin Anda tambahi rentang (harus berupa subnet yang ditetapkan ke cluster).ADDITIONAL_RANGE
: Nama rentang Pod yang akan ditambahkan ke cluster. Contoh,pod-range-2
. Untuk menentukan beberapa rentang, pisahkan nama rentang dengan koma. Contoh,pod-range-1
,pod-range-2
.RANGE
: Rentang alamat IP yang akan ditambahkan ke cluster.COMPUTE_REGION
: Region subnet
Tetapkan rentang sekunder tambahan ke cluster
Buat rentang sekunder tambahan, lalu tetapkan ke cluster tersebut. Anda dapat menggunakan konsol Google Cloud atau Google Cloud CLI:
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di samping cluster yang ingin diedit, klik more_vert Tindakan, lalu klik edit Edit.
Di bagian Networking, di samping Rentang cluster IPv4 Pod (tambahan), klik edit Edit.
Pada dialog Edit tambahan rentang cluster IPv4 Pod, pilih Rentang CIDR sekunder pod yang ingin ditambahkan ke cluster. Gunakan nama rentang Pod yang sama dengan yang Anda buat di subnet sebagai rentang sekunder tambahan untuk cluster.
Klik Simpan Perubahan.
gcloud
Update cluster Anda untuk menggunakan rentang alamat IP tambahan:
gcloud container clusters update CLUSTER_NAME \ --additional-pod-ipv4-ranges=ADDITIONAL_RANGE \ --region=COMPUTE_REGION
Ganti kode berikut:
CLUSTER_NAME
: Nama cluster. Cluster Anda harus menjalankan versi 1.26.0 atau yang lebih baru.ADDITIONAL_RANGE
: Nama rentang Pod yang akan ditambahkan ke cluster. Gunakan nama rentang Pod yang sama dengan yang Anda buat di subnet sebagai rentang sekunder tambahan ke cluster.COMPUTE_REGION
: Region cluster.
Pastikan alamat IP baru ditetapkan ke cluster:
gcloud container clusters describe CLUSTER_NAME
Outputnya mirip dengan hal berikut ini:
ipAllocationPolicy: additionalPodRangesConfig: podRangeNames: - pod-range-1 - pod-range-2 clusterIpv4Cidr: 10.10.0.0/23 clusterIpv4CidrBlock: 10.10.0.0/23 clusterSecondaryRangeName: cluster-pods
Menambahkan lebih banyak rentang IPv4 Pod dengan GKE Standard
Untuk cluster GKE Standard, Anda dapat menambahkan lebih banyak rentang IPv4 Pod menggunakan salah satu metode berikut:
- Buat dan tetapkan rentang sekunder tambahan ke cluster: direkomendasikan untuk pengguna yang tidak perlu mengontrol rentang alamat IP Pod di level node pool. Metode ini tersedia di GKE versi 1.26.0 atau yang lebih baru. Untuk mengetahui informasi selengkapnya, lihat cara Menambahkan lebih banyak rentang IPv4 Pod dengan GKE Autopilot.
- Buat node pool dengan rentang alamat IP Pod sekunder baru: direkomendasikan untuk pengguna yang perlu mengontrol rentang alamat IP Pod sepenuhnya dari node pool Anda. Metode ini tersedia di GKE versi 1.20.4-gke.500 atau yang lebih baru.
- Buat node pool menggunakan alamat IP Pod sekunder yang ada: direkomendasikan untuk pengguna yang perlu sepenuhnya mengontrol rentang alamat IP Pod yang ada dari node pool. Metode ini tersedia di GKE versi 1.20.4-gke.500 atau yang lebih baru.
Membuat node pool dengan rentang IP Pod sekunder baru
Secara default, GKE mengaitkan satu rentang Pod ke node pool. Rentang ini dapat berupa rentang alamat IP Pod default cluster atau salah satu rentang Pod tambahan (jika ada) yang terkait dengan cluster tersebut. Dengan rentang sekunder tambahan, Anda dapat menentukan rentang alamat IPv4 Pod selama pembuatan node pool dan node pool menggunakan rentang tersebut, bukan rentang alamat IP Pod sekunder default cluster.
Di bagian ini, Anda akan membuat node pool dengan rentang alamat IP Pod sekunder.
Anda dapat menggunakan Google Cloud CLI atau GKE API.
gcloud
gcloud container node-pools create POOL_NAME \
--cluster CLUSTER_NAME \
--create-pod-ipv4-range name=RANGE_NAME,range=RANGE
Ganti kode berikut:
POOL_NAME
: nama node pool baru.CLUSTER_NAME
: nama cluster.RANGE_NAME
: nama opsional rentang alamat IP Pod sekunder yang baru.RANGE
: rentang alamat IP Pod opsional yang disediakan sebagai netmask (/20
) atau rentang CIDR (10.12.4.0/20
). Jika Anda menyediakan netmask, GKE akan mengalokasikan rentang dari rentang yang tersedia di jaringan cluster. Jika Anda tidak memberikan nilai untukrange
, GKE akan otomatis mengalokasikan netmask/14
, ukuran default untuk rentang IP sekunder untuk Pod subnet.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": true,
"podRange": "RANGE_NAME",
"podIpv4CidrBlock": "RANGE"
}
}
Ganti kode berikut:
POOL_NAME
: nama node pool baru.RANGE_NAME
: nama opsional rentang alamat IP Pod sekunder yang baru.RANGE
: rentang alamat IP Pod opsional yang disediakan sebagai netmask (/20
) atau rentang CIDR (10.12.0.0/20
). Jika netmask ditentukan, rentang IP akan otomatis dialokasikan dari ruang kosong di jaringan cluster. Jika tidak ada nilai yang diberikan, GKE akan otomatis mengalokasikan netmask/14
, yaitu ukuran default untuk rentang IP sekunder subnet untuk Pod.
Membuat node pool menggunakan rentang IP Pod sekunder yang ada
Di bagian ini, Anda akan membuat node pool dengan rentang alamat IP Pod sekunder yang ada.
Anda dapat menggunakan gcloud CLI atau GKE API.
gcloud
gcloud container node-pools create POOL_NAME \
--cluster CLUSTER_NAME \
--pod-ipv4-range RANGE_NAME
Ganti kode berikut:
POOL_NAME
: nama node pool baru.CLUSTER_NAME
: nama cluster.RANGE_NAME
: nama rentang alamat IP Pod sekunder yang ada di subnetwork cluster.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"podRange": "RANGE_NAME"
}
}
Ganti kode berikut:
POOL_NAME
: nama node pool baru.RANGE_NAME
: nama rentang alamat IP Pod sekunder yang ada di subnetwork cluster.
Memverifikasi blok CIDR Pod untuk node pool
Untuk menentukan blok CIDR Pod mana yang digunakan untuk Pod dalam node pool tertentu, gunakan perintah berikut:
gcloud container node-pools describe POOL_NAME \
--cluster CLUSTER_NAME
Outputnya mirip dengan hal berikut ini:
...
networkConfig:
podIpv4CidrBlock: 192.168.0.0/18
podRange: podrange
...
Jika node pool menggunakan CIDR multi-Pod yang tidak terhubung, podRange
dan
podIpv4CidrBlock
akan menampilkan nilai yang dikonfigurasi untuk node pool ini.
Jika node pool tidak menggunakan CIDR multi-Pod yang tidak terhubung, podRange
dan podIpv4CidrBlock
akan menampilkan nilai default cluster,
clusterSecondaryRangeName
dan clusterIpv4CidrBlock
dari
IPAllocationPolicy
Menambahkan rentang IPv4 Pod lainnya untuk kasus penggunaan tertentu
- Jika Anda menggunakan
ip-masq-agent
yang dikonfigurasi dengan parameternonMasqueradeCIDRs
, Anda harus memperbaruinonMasqueradeCIDRs
untuk menyertakan semua rentang sekunder tambahan. - Jika Anda menggunakan
NetworkPolicy
yang dikonfigurasi denganipBlock
untuk menentukan traffic, Anda harus memperbarui nilai CIDR untuk menyertakan semua rentang CIDR Pod. - Untuk VPC Bersama, Anda perlu menetapkan Akun Layanan lain terlebih dahulu.
- Untuk menambahkan rentang alamat IP Pod sekunder ke cluster atau membuat node pool dengan rentang alamat IP Pod sekunder yang baru, Anda harus memiliki peran Admin Jaringan. Peran pengguna hanya dapat menggunakan resource ini jika dibuat oleh Admin Jaringan.
- Jika project memiliki lebih dari satu cluster, pastikan Anda membuat dan menambahkan rentang alamat IP Pod sekunder di setiap cluster.
Cara kerja CIDR multi-Pod yang tidak terhubung
Saat Anda membuat node pool baru, secara default node pool tersebut akan menggunakan rentang alamat IP Pod default cluster, yang juga dikenal sebagai CIDR cluster. Dengan fitur ini, Anda dapat menentukan rentang alamat IP Pod selama pembuatan node pool dan node pool menggunakan rentang tersebut, bukan rentang alamat IP Pod default cluster.
Diagram berikut menunjukkan cluster yang dikelola pengguna dengan blok CIDR /24 sebagai rentang alamat IP Pod sekunder (256 alamat IP) dan dua node yang menggunakan blok CIDR /25 untuk alamat IP Pod (masing-masing 128 alamat IP). Rentang alamat IP Pod sekunder habis dan Anda tidak dapat menambahkan node lain ke cluster. Daripada menghapus dan membuat ulang cluster, Anda dapat menggunakan CIDR multi-Pod yang tidak terhubung untuk memperluas alamat IP Pod dengan blok CIDR /20. Cluster ini diperluas agar menyertakan node ketiga yang menggunakan blok CIDR /25 untuk alamat IP Pod yang berasal dari blok /20.
Aturan firewall yang dimodifikasi
Saat membuat cluster, GKE membuat aturan firewall untuk mengaktifkan komunikasi Pod-to-Pod, gke-[cluster-name]-[cluster-hash]-all
.
Saat Anda membuat atau menghapus node pool dengan CIDR multi-Pod yang tidak terhubung yang diaktifkan, GKE akan memperbarui nilai sumber aturan firewall ini ke semua CIDR yang digunakan oleh cluster untuk IP Pod.
Pemecahan masalah
Anda dapat mengaktifkan Log Aliran VPC untuk menentukan apakah paket dikirim ke node dengan benar.
Langkah berikutnya
- Pelajari lebih lanjut cluster VPC native.
- Baca ringkasan jaringan GKE.
- Pelajari lebih lanjut cara Mengoptimalkan alokasi alamat IP.
- Pelajari insight penggunaan alamat IP GKE.