Jaringan Google Kubernetes Engine (GKE) menyediakan fondasi yang andal, skalabel, dan aman untuk aplikasi dalam container Anda, yang dibangun di VPC global Google. Jaringan ini menerjemahkan model jaringan Kubernetes abstrak menjadi resource konkret berperforma tinggi seperti load balancer global dan jaringan VM dengan throughput tinggi.
Dokumen ini dan kumpulan dokumentasi lainnya ditujukan untuk arsitek cloud dan spesialis jaringan yang mendesain arsitektur jaringan organisasi mereka.
Mengapa jaringan Kubernetes berbeda
Saat Anda menggunakan Kubernetes untuk mengatur aplikasi, Anda akan berpikir berbeda tentang desain jaringan. Dengan Kubernetes, Anda berfokus pada cara Pod, Service, dan klien eksternal berkomunikasi, bukan mengelola jaringan host atau mesin virtual (VM) satu per satu. Abstraksi ini menyederhanakan deployment dan penskalaan aplikasi dengan menghilangkan kompleksitas seperti pemetaan port manual.
Prasyarat
Sebelum mempelajari jaringan di GKE, Anda harus memahami hal berikut:
- Konsep utama dalam jaringan umum, Google Cloud, dan Kubernetes.
- Baca Mulai mempelajari GKE.
Jaringan inti dan Google Cloud dasar-dasar
GKE dibangun berdasarkan prinsip jaringan standar. Untuk memahami cara GKE mengelola dan merutekan traffic di dalam dan di seluruh cluster, Anda harus memahami konsep jaringan inti berikut.
Lapisan dan protokol jaringan
Untuk memahami cara data berpindah melalui jaringan, mulailah dengan lapisan jaringan. GKE menggunakan konsep secara ekstensif dari lapisan transport, internet, dan aplikasi dari stack jaringan. Anda harus memahami fungsi dasar dan protokol umum seperti HTTP, DNS, dan rangkaian TCP/IP. Untuk mengetahui informasi selengkapnya, lihat model OSI.
Lapisan transport—Transmission Control Protocol (TCP) atau User Datagram Protocol (UDP): menangani komunikasi end-to-end antar-aplikasi. Transmission Control Protocol (TCP) menyediakan pengiriman yang andal, berurutan, dan diperiksa kesalahannya, yang penting untuk sebagian besar traffic aplikasi. User Datagram Protocol (UDP) menawarkan komunikasi tanpa koneksi yang lebih cepat, yang sering digunakan untuk streaming atau game. GKE menggunakan kedua protokol untuk komunikasi Pod dan Service.
Lapisan internet—Internet Protocol (IP): menangani dan merutekan paket di berbagai jaringan. Setiap Pod dan node di GKE mendapatkan alamat IP, dan perutean alamat IP menentukan cara traffic menemukan jalurnya melalui cluster dan jaringan VPC Anda.
Lapisan aplikasi—Hypertext Transfer Protocol (HTTP) dan Domain Name System (DNS): lapisan ini adalah tempat aplikasi berinteraksi dengan jaringan. HTTP dan HTTPS sangat penting untuk komunikasi web dan biasanya digunakan oleh pengontrol Ingress dan load balancer untuk mengekspos aplikasi. DNS sangat penting untuk penemuan layanan di Kubernetes, yang menerjemahkan nama layanan yang dapat dibaca manusia ke dalam alamat IP.
Pengalamatan IP dan notasi CIDR
Anda harus memahami pengalamatan IP
dan notasi CIDR (Classless Inter-Domain
Routing)
karena model jaringan Kubernetes menggunakan alamat IP secara ekstensif untuk
komunikasi antar-semua komponennya. CIDR sangat penting untuk merencanakan alokasi alamat IP cluster Anda dalam jaringan VPC. Google CloudCIDR memungkinkan Anda menentukan blok alamat IP untuk Pod, Service, dan Node. Misalnya, mengalokasikan 10.10.0.0/16 untuk Pod Anda akan mencadangkan 65.536 alamat IP. Perencanaan CIDR yang tepat membantu mencegah situasi kehabisan alamat IP saat cluster Anda diskalakan.
Utilitas jaringan Linux
GKE menggunakan fitur kernel Linux yang mendasarinya untuk menerapkan perutean traffic dan load balancing dalam cluster. Anda harus memahami
konsep dan utilitas pengelolaan jaringan Linux dasar seperti tabel perutean dan
iptables.
Secara tradisional, kube-proxy, komponen Kubernetes utama di setiap node, memprogram utilitas ini untuk mencegat traffic yang ditujukan ke Service dan mengarahkannya ke salah satu Pod backend. Cluster GKE modern yang menggunakan
GKE Dataplane V2 mengganti iptables dengan eBPF untuk meningkatkan
performa dan observabilitas.
Memahami model jaringan Kubernetes
Model jaringan Kubernetes menentukan cara aplikasi dalam container berkomunikasi dalam cluster. Tidak seperti model konvensional yang berfokus pada mesin virtual, Kubernetes menekankan komunikasi berbasis Pod-ke-Pod dan Service. Model ini membuat jaringan aplikasi lebih dapat diprediksi dengan mengabstraksikan ketidakandalan alamat IP Pod dinamis. Karena Pod bersifat sementara dan dapat dibuat ulang kapan saja dengan alamat IP baru, komunikasi langsung dengan alamat IP Pod pada dasarnya tidak stabil. Kubernetes memecahkan masalah ini dengan mengelompokkan Pod ke dalam Service. Service menyediakan alamat IP virtual (ClusterIP) yang stabil dan nama DNS yang konsisten, yang dapat dihubungkan oleh aplikasi secara andal. Endpoint stabil ini, dikombinasikan dengan jaringan datar yang memungkinkan semua Pod berkomunikasi langsung tanpa memerlukan NAT, menciptakan fondasi yang kuat untuk aplikasi dalam container modern.
Prinsip utama model jaringan Kubernetes
Setiap Pod memiliki alamat IP unik: setiap Pod di cluster Kubernetes mendapatkan alamat IP-nya sendiri, yang digunakan bersama oleh semua container dalam Pod tersebut. Alamat IP unik ini memungkinkan Pod bertindak seperti host individual di jaringan, mirip dengan mesin virtual.
Komunikasi Pod-ke-Pod datar tanpa NAT: semua Pod dapat berkomunikasi langsung satu sama lain dengan menggunakan alamat IP-nya, terlepas dari node tempat mereka berjalan. Di GKE, komunikasi langsung ini dicapai menggunakan cluster VPC native, tempat alamat IP Pod adalah alamat IP alias dalam jaringan VPC Anda. Alamat IP alias ini membuat Pod dapat dirutekan langsung dalam VPC, yang menghilangkan kebutuhan akan Network Address Translation (NAT) dan menyederhanakan komunikasi lintas node.
Service menyediakan endpoint stabil: karena Pod bersifat sementara dan dapat dibuat ulang kapan saja dengan alamat IP baru, komunikasi langsung dengan alamat IP Pod tidak dapat diandalkan. Service Kubernetes mengatasi masalah ini dengan mengelompokkan sekumpulan Pod dan mengekspos alamat IP (
ClusterIP) dan nama DNS yang stabil. Abstraksi masalah ini memungkinkan akses yang konsisten ke kumpulan Pod dinamis.Penemuan Service bawaan dengan DNS: Kubernetes menyertakan layanan DNS bawaan yang secara otomatis menetapkan nama DNS ke Service. Aplikasi dapat menggunakan nama ini (misalnya,
my-service.my-namespace.svc.cluster.local) untuk menemukan dan berkomunikasi dengan Service lain secara andal.Load balancing terintegrasi. saat klien mengirim traffic ke alamat
ClusterIPService, aturan jaringan di node (diprogram olehkube-proxyatau GKE Dataplane V2) akan mencegat traffic dan menyeimbangkan beban di semua Pod yang responsif dalam Service tersebut. Distribusi ini terjadi di sumber, sehingga sangat efisien dan membantu memastikan ketersediaan tinggi.
Singkatnya, model jaringan Kubernetes mengabstraksikan banyak kompleksitas jaringan konvensional menjadi sekumpulan primitif yang lebih sederhana dan lebih canggih untuk aplikasi dalam container. Dengan mengaktifkan komunikasi Pod langsung, endpoint Service yang stabil, serta DNS dan load balancing terintegrasi, model ini menyediakan fondasi yang kuat dan skalabel untuk aplikasi dalam container modern.
Hubungan GKE dan Google Cloud
Jaringan GKE bertindak sebagai jembatan antara model konseptual jaringan Kubernetes dan infrastruktur fisik Google Cloud:
Model jaringan Kubernetes: Kubernetes menentukan aturan tempat setiap Pod mendapatkan alamat IP-nya sendiri, sehingga memungkinkan komunikasi Pod-ke-Pod langsung tanpa memerlukan NAT.
Google Cloud Jaringan: ini adalah infrastruktur yang mendasarinya, termasuk VPC, subnet, firewall, dan load balancer.
Jaringan GKE: lapisan penghubung ini menerapkan model Kubernetes dengan menggunakan Google Cloud's infrastruktur.
Container Network Interface (CNI): GKE menggunakan plugin CNI di setiap node untuk menangani alokasi alamat IP Pod dan menghubungkan Pod ke jaringan node.
Bidang kontrol GKE: komponen ini berinteraksi dengan Google Cloud untuk mengonfigurasi rute VPC secara otomatis untuk rentang IP Pod, mengelola aturan firewall, dan menyediakan load balancer berdasarkan deployment Kubernetes Anda.
Mengapa Google Cloud pengetahuanjaringan sangat penting untuk GKE
GKE dibangun berdasarkan Google Cloud infrastruktur jaringan. GKE tidak membuat lapisan jaringan terpisah—melainkan menggunakan komponen Google Cloud jaringan yang ada. Oleh karena itu, memahami Google Cloud jaringan sangat penting untuk mendesain dan mengamankan cluster GKE Anda.
Berikut alasan dasar-dasarjaringan penting: Google Cloud
Cluster Anda berjalan di VPC: setiap cluster GKE beroperasi dalam VPC. Semua alamat IP—untuk node, Pod, dan Service—diambil dari rentang alamat IP yang ditentukan di subnet VPC Anda. Untuk mengalokasikan alamat IP dengan benar dan menghindari kehabisan alamat IP, Anda memerlukan pengetahuan yang memadai tentang desain VPC dan subnet. Untuk mengetahui informasi selengkapnya, lihat dokumentasi VPC.
Eksposur aplikasi menggunakan Google Cloud Load Balancer: saat Anda mengekspos aplikasi di luar cluster dengan menggunakan Service LoadBalancer atau Ingress, GKE akan menyediakan Google Cloud load balancer bawaan. Service LoadBalancer biasanya digunakan untuk traffic Lapisan 4, dan Ingress digunakan untuk traffic HTTP(S) Lapisan 7. Memahami cara kerja load balancer ini membantu Anda mengelola traffic eksternal, menyiapkan pemeriksaan kesehatan, dan memecahkan masalah konektivitas secara efektif. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Cloud Load Balancing.
Keamanan diterapkan melalui Google Cloud aturan firewall: GKE secara otomatis membuat beberapa aturan firewall untuk mengizinkan traffic cluster penting. Namun, mengamankan workload Anda memerlukan penentuan aturan firewall VPC kustom. Konfigurasi yang salah dapat memblokir traffic penting, jadi penting untuk memahami cara kerja aturan ini. Untuk mengetahui informasi selengkapnya, lihat Cloud Next Generation Firewall dokumentasi.
Langkah berikutnya
- Baca tentang tiga pilar jaringan GKE untuk mempelajari arsitektur lebih mendalam.
- Pelajari tentang Kebijakan Jaringan GKE dan kebijakan jaringan Kubernetes.
- Pelajari cara mengekspos aplikasi menggunakan Service dan konsep Service Kubernetes.
- Pahami Ingress untuk GKE dan Ingress Kubernetes.
- Pelajari lebih dalam tentang cluster VPC native.
- Pelajari manfaat GKE Dataplane V2.
- Memecahkan masalah jaringan GKE.