Untuk membangun cluster Google Kubernetes Engine (GKE) yang skalabel dan aman, Anda harus mengelola alamat IP secara efektif. Dokumen ini memberikan ringkasan komprehensif tentang cara GKE menggunakan alamat IP untuk komunikasi cluster, model jaringan yang didukung, dan praktik terbaik untuk pengelolaan alamat IP yang efektif.
Dokumen ini ditujukan untuk Cloud Architect dan Networking Specialist yang mendesain dan merancang jaringan untuk organisasi mereka. Untuk mengetahui informasi selengkapnya tentang peran umum dan contoh tugas dalam Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum.
Sebelum melanjutkan, pastikan Anda memahami konsep berikut:
- Jaringan dasar: termasuk alamat IP, CIDR, firewall, dan Network Address Translation (NAT).
- Komponen inti Kubernetes: seperti cluster, node, Pod, dan Service.
Cara alamat IP menghubungkan komponen GKE
GKE dibangun berdasarkan model jaringan Kubernetes, yang mengharuskan setiap komponen memiliki alamat IP yang berbeda untuk komunikasi. Bagian berikut menjelaskan cara GKE menetapkan dan menggunakan alamat IP untuk komponen cluster inti:
Node: GKE menetapkan alamat IP internal ke setiap node, yang merupakan instance VM Compute Engine, dari rentang alamat IP utama subnet yang terkait dengan node pool-nya. Alamat IP ini memungkinkan komunikasi antara node dan bidang kontrol Kubernetes. Node juga dapat memiliki alamat IP eksternal untuk akses internet keluar.
Pod: mengikuti model "IP-per-Pod" Kubernetes, GKE menetapkan alamat IP unik untuk setiap Pod dari rentang CIDR Pod yang dialokasikan ke node. Di GKE, jaringan VPC merutekan alamat IP Pod secara native. Kemampuan perutean bawaan ini memungkinkan komunikasi langsung antar-Pod—bahkan di berbagai node—tanpa memerlukan Network Address Translation (NAT). Semua container dalam satu Pod menggunakan alamat IP yang sama dan dapat berkomunikasi melalui
localhost.Layanan (
ClusterIP): GKE menetapkan alamat IP virtual internal yang stabil (ClusterIP) ke setiap LayananClusterIP,NodePort, danLoadBalancer. Untuk Layanan IPv4, GKE mengalokasikan alamat ini dari rentang alamat IP sekunder khusus (atau dari rentang34.118.224.0/20). Untuk Service IPv6 (dalam cluster IPv6 dual-stack dan single-stack), GKE tidak menggunakan rentang alamat IP sekunder; sebagai gantinya, GKE menetapkan alamat dari rentang alamat IPv62600:2D00:0:4::0:0/64pribadi milik Google.ClusterIPini menyediakan endpoint internal tunggal yang andal untuk sekelompok Pod. Saat Anda mengirim traffic keClusterIP, GKE akan otomatis melakukan load balancing ke Pod yang responsif dalam Service tersebut.Bidang kontrol: di cluster pribadi, bidang kontrol berada dalam project tenant yang dikelola Google dan menggunakan rentang alamat IP internalnya sendiri. Project tenant ini terhubung ke jaringan VPC Anda, sehingga memungkinkan komunikasi yang aman antara bidang kontrol dan node di jaringan VPC cluster Anda. Koneksi ini biasanya menggunakan Private Service Connect.
Load balancer: untuk mengekspos aplikasi ke internet atau dalam jaringan VPC, Anda dapat mengonfigurasi GKE untuk menggunakan load balancerGoogle Cloud . Load balancer eksternal menggunakan alamat IP publik. Load balancer internal menggunakan alamat IP internal dari rentang subnet utama jaringan VPC Anda.
Tabel berikut merangkum cara GKE menetapkan alamat IP ke komponen cluster:
| Komponen | Cara penetapan alamat IP |
|---|---|
| Node | GKE menetapkan alamat IP internal ke setiap node. GKE mengalokasikan alamat IP ini dari rentang alamat IP utama subnet yang terkait dengan node pool node. Subnet ini dapat berupa subnet default cluster atau subnet tambahan. |
| Pod | GKE menetapkan alamat IP unik untuk setiap Pod dari rentang CIDR Pod yang dialokasikan ke node-nya. |
| Service (ClusterIP) | GKE
menetapkan alamat IP virtual yang stabil (ClusterIP) ke setiap Service.
Untuk Service IPv4, GKE mengalokasikan alamat ini dari
rentang alamat IP sekunder khusus dalam jaringan VPC
cluster (atau dari 34.118.224.0/20). Untuk
Service IPv6, GKE tidak menggunakan rentang alamat IP
sekunder. Sebagai gantinya, GKE menetapkan alamat dari rentang 2600:2D00:0:4::0:0/64. |
| Bidang kontrol | Di cluster pribadi, bidang kontrol GKE memiliki rentang alamat IP internalnya sendiri dalam project tenant yang dikelola Google. Project tenant ini terhubung ke jaringan VPC Anda, biasanya menggunakan Private Service Connect. |
| Load balancer | Load balancer eksternal menggunakan alamat IP publik. Load balancer internal menggunakan alamat IP internal dari rentang alamat IP utama subnet cluster. |
Penetapan alamat IP Kubernetes dan implementasi GKE
Agar dapat menggunakan GKE secara efektif, Anda harus memahami perbedaan antara model jaringan Kubernetes abstrak dan cara GKE mengimplementasikan model ini di Google Cloud.
Model pengalamatan IP Kubernetes: project Kubernetes open source menentukan bahwa setiap Pod menerima alamat IP yang unik. Semua alamat IP Pod dapat berkomunikasi secara langsung tanpa Network Address Translation (NAT). Pendekatan ini membantu memastikan ruang jaringan yang datar, tempat Pod dapat saling menjangkau menggunakan alamat IP yang ditetapkan.
Implementasi alamat IP GKE: GKE menerapkan model alamat IP Kubernetes di Google Cloud dengan berintegrasi dengan jaringan berbasis VPC. Di cluster IPv4 dan dual-stack, saat Anda membuat Pod, GKE mengalokasikan alamat IP-nya dari rentang alamat IP alias VPC. Dalam cluster IPv6 stack tunggal, GKE tidak menggunakan rentang alamat IP alias. Sebagai gantinya, GKE mengalokasikan alamat IP Pod langsung dari subrentang pada node. Hal ini membuat alamat IP setiap Pod dapat dirutekan secara native dalam seluruh jaringan VPC Anda. Hal ini memungkinkan komunikasi langsung tidak hanya antar-Pod, tetapi juga dengan resourceGoogle Cloud lain, seperti instance Compute Engine dan database Cloud SQL. Demikian pula, GKE mengelola alamat IP
ServiceKubernetes (sepertiClusterIP) dalam jaringan VPC. Saat Anda membuat ServiceLoadBalanceruntuk eksposur eksternal, GKE akan menyediakan Load BalancerGoogle Cloud . Load balancer ini menggunakan alamat IP publik atau IP internal dari Jaringan VPC Anda. GKE menggunakan infrastruktur jaringan dan alamat IP Google Cloudyang andal untuk menerapkan konsep jaringan berbasis IP Kubernetes secara skalabel dan aman.
Model jaringan GKE: Cluster VPC native
GKE mengimplementasikan model jaringan Kubernetes menggunakan jaringan VPC native, yang merupakan kemampuan inti Google Cloud .
Dalam cluster IPv4 dan stack ganda, model ini menggunakan rentang alamat IP alias: dalam cluster VPC native, Kubernetes mengonfigurasi alamat IP Pod sebagai rentang alamat IP alias pada antarmuka jaringan virtual node. Cluster IPv6 stack tunggal mengalokasikan rentang alamat IP node dan Pod langsung dari blok CIDR subnetwork tanpa menggunakan rentang alamat IP alias.
Implementasi ini menawarkan beberapa keuntungan utama:
- Kemampuan perutean VPC native: Alamat IP pod dapat dirutekan langsung dalam jaringan VPC Anda. Hal ini menyederhanakan desain jaringan dan memungkinkan komunikasi langsung berlatensi rendah antara Pod Anda dan resource Google Cloud lainnya, seperti instance Compute Engine dan instance Cloud SQL.
- Menghemat kuota rute: dengan menggunakan alamat IP alias untuk Pod, GKE tidak membuat rute statis kustom untuk setiap node. Hal ini menghemat kuota rute VPC Anda, yang merupakan peningkatan signifikan dibandingkan cluster berbasis rute lama, dan penting untuk deployment skala besar.
- Meningkatkan keamanan: Kemampuan perutean VPC native memungkinkan Anda menerapkan aturan firewall VPC native langsung ke traffic Pod, sehingga meningkatkan keamanan level jaringan.
VPC native adalah mode jaringan default dan yang direkomendasikan untuk semua cluster GKE.
Mengapa pengelolaan alamat IP yang efektif sangat penting
Untuk memastikan cluster Anda dapat diskalakan dan menjaga kesehatan aplikasi, Anda harus merencanakan ruang alamat IP secara efektif:
- Memastikan skalabilitas: rencanakan rentang alamat IP node, Pod, dan Service Anda secara efektif untuk mencegah kehabisan alamat IP dan memungkinkan cluster Anda diskalakan tanpa memerlukan rearsitektur jaringan yang mengganggu.
- Menjamin keandalan: hindari rentang alamat IP yang tumpang-tindih antara cluster GKE Anda dan jaringan lain, seperti lingkungan lokal yang terhubung melalui Cloud VPN. Rentang yang tumpang-tindih dapat menyebabkan konflik pemilihan rute, perilaku yang tidak dapat diprediksi, dan gangguan layanan.
- Memperkuat keamanan: mengelola alamat IP secara efektif untuk memperkuat keamanan jaringan. Tentukan Kebijakan Jaringan Kubernetes untuk mengontrol alur traffic antar-Pod dan konfigurasikan aturan firewall untuk isolasi workload di tingkat jaringan.
Memilih model alamat IP untuk cluster Anda
GKE mendukung beberapa konfigurasi stack jaringan untuk memenuhi persyaratan jaringan Anda, termasuk opsi khusus IPv4, dual-stack (alamat IPv4 dan IPv6), dan IPv6 single-stack.
Khusus IPv4 (stack tunggal)
Ini adalah konfigurasi standar dan paling umum, dengan semua komponen cluster menggunakan alamat IPv4. Bahkan dalam model khusus IPv4, GKE memberikan fleksibilitas:
- Alamat IP pribadi RFC 1918: Gunakan rentang alamat IP pribadi RFC 1918 (misalnya,
10.0.0.0/8) untuk cluster Anda. - Alamat IP publik yang digunakan secara pribadi (PUPI): jika organisasi Anda tidak memiliki ruang alamat IP pribadi yang memadai, Anda dapat menggunakan rentang alamat IP publik untuk penggunaan internal dalam jaringan VPC Anda. Saat menggunakan PUPI, Anda harus mengonfigurasi agen penyamaran IP. Agen ini menjalankan Penafsiran Alamat Jaringan Sumber (SNAT) pada traffic keluar dari Pod. Tanpa SNAT, traffic yang kembali ke Pod yang menggunakan PUPI akan dirutekan melalui internet publik dan gagal. IP Masquerade Agent mencegah hal ini dengan mengubah alamat IP sumber paket keluar dari PUPI Pod menjadi alamat IP internal node. Pendekatan ini membantu memastikan bahwa traffic kembali dirutekan dengan benar ke node, lalu diteruskan ke Pod asli.
Stack ganda (IPv4 dan IPv6)
Cluster stack ganda menggunakan protokol IPv4 dan IPv6. GKE menetapkan alamat IPv4 dan alamat IPv6 ke node, Pod, dan Service dalam cluster dual-stack. Model ini ideal untuk:
- Memfasilitasi transisi bertahap ke alamat IPv6.
- Memastikan kompatibilitas dengan workload yang mendukung IPv6 serta klien dan layanan khusus IPv4 yang ada.
Anda dapat mengaktifkan jaringan stack ganda saat membuat cluster, atau mengupdate cluster stack tunggal IPv4 yang ada ke stack ganda.
IPv6 stack tunggal (Pratinjau)
Cluster IPv6 stack tunggal hanya menetapkan alamat IPv6 di seluruh bidang data cluster (Pod, node, dan Service). Model ini mengabaikan bottleneck kehabisan alamat IPv4 pribadi (RFC 1918) sekaligus mempertahankan konektivitas ingress dan egress internal atau eksternal yang aman. Tidak seperti cluster IPv4 dan stack ganda yang menggunakan rentang alamat IP alias, cluster IPv6 stack tunggal mengalokasikan subrentang alamat IPv6 /96 per node langsung dari subnetwork Anda (/64), dan menetapkan rentang alamat /112 ke Pod di setiap node. Service (ClusterIP)
menerima
alamat dari rentang alamat IPv6 pribadi milik Google (2600:2D00:0:4::0:0/64).
Cluster IPv6 stack tunggal juga mendukung rentang alamat IPv6 BYOIP yang dikonfigurasi menggunakan
proses EAP BYOIPv6.
Untuk mempelajari lebih lanjut alokasi dan perilaku alamat IPv6 stack tunggal, lihat Membuat dan mengelola cluster IPv6 stack tunggal.
Langkah berikutnya
- Untuk mempelajari lebih lanjut manfaat mode jaringan default GKE, lihat Tentang cluster VPC native.
- Untuk memulai, pelajari cara membuat cluster VPC native.
- Untuk membuat cluster khusus IPv6, lihat Membuat dan mengelola cluster IPv6 stack tunggal.
- Untuk panduan tentang cara menentukan ukuran rentang alamat IP cluster, lihat Perencanaan rentang alamat IP untuk cluster VPC native.
- Untuk mendapatkan bantuan terkait masalah umum, lihat memecahkan masalah Agen Penyamaran IP.