Menambahkan rentang alamat IP Pod


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.

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

  1. Buka halaman Jaringan VPC di konsol Google Cloud.

    Buka jaringan VPC

  2. Di daftar jaringan VPC, pilih jaringan yang ingin Anda perluas.

  3. Dalam daftar Subnet, pilih subnet yang diinginkan.

  4. Klik Edit.

  5. Klik Tambahkan rentang IP.

  6. Untuk Nama rentang subnet, masukkan nama rentang Pod tambahan. Contoh, pod-range-2.

  7. Untuk Rentang IP sekunder, masukkan rentang IP. Contoh, 10.2.204.0/22.

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

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

    Buka Google Kubernetes Engine

  2. Di samping cluster yang ingin diedit, klik Tindakan, lalu klik Edit.

  3. Di bagian Networking, di samping Rentang cluster IPv4 Pod (tambahan), klik Edit.

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

  5. Klik Simpan Perubahan.

gcloud

  1. 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.
  2. 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 untuk range, 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 parameter nonMasqueradeCIDRs, Anda harus memperbarui nonMasqueradeCIDRs untuk menyertakan semua rentang sekunder tambahan.
  • Jika Anda menggunakan NetworkPolicy yang dikonfigurasi dengan ipBlock 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.

Menambahkan node pool ke cluster dengan rentang alamat IP Pod sekunder yang telah habis menggunakan CIDR multi-Pod yang tidak terhubung
Diagram: Menggunakan CIDR multi-Pod yang tidak terhubung

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