Mempelajari dasar-dasar jaringan GKE

Jaringan Google Kubernetes Engine (GKE) menyediakan fondasi yang andal, skalabel, dan aman untuk aplikasi dalam container Anda, yang dibangun di VPC global Google. Hal ini menerjemahkan model jaringan Kubernetes abstrak menjadi resource berperforma tinggi yang konkret 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.

Alasan 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-hal berikut:

Dasar-dasar dan Google Cloud jaringan inti

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 secara ekstensif menggunakan konsep dari lapisan transport, internet, dan aplikasi stack jaringan. Anda harus memahami fungsi dasar dan protokol umum seperti HTTP, DNS, dan TCP/IP suite. 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 error, yang penting untuk sebagian besar traffic aplikasi. User Datagram Protocol (UDP) menawarkan komunikasi tanpa koneksi yang lebih cepat, yang sering digunakan untuk streaming atau bermain 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 jalannya 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 umumnya digunakan oleh pengontrol Ingress dan load balancer untuk mengekspos aplikasi. DNS sangat penting untuk penemuan layanan di Kubernetes, yang menerjemahkan nama layanan yang mudah dibaca 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 dalam jaringan VPC Google Cloud. Dengan fitur ini, Anda dapat menentukan blok alamat IP untuk Pod, Layanan, 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 di mana Anda 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. Biasanya, kube-proxy, komponen Kubernetes utama di setiap node, memprogram utilitas ini untuk mencegat traffic yang ditujukan untuk Layanan dan mengalihkannya ke salah satu Pod backend. Cluster GKE modern yang menggunakan GKE Dataplane V2 menggantikan iptables dengan eBPF untuk meningkatkan performa dan kemampuan observasi.

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 mengabstraksi 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 mengatasi masalah ini dengan mengelompokkan Pod ke dalam Service. Service menyediakan alamat IP virtual yang stabil (ClusterIP) dan nama DNS yang konsisten, yang dapat dihubungkan oleh aplikasi secara andal. Endpoint stabil ini, dikombinasikan dengan jaringan datar yang memungkinkan semua Pod berkomunikasi secara langsung tanpa memerlukan NAT, menciptakan fondasi yang andal untuk aplikasi modern dalam container.

Prinsip utama model jaringan Kubernetes

  • Setiap Pod memiliki alamat IP unik: setiap Pod dalam 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 menggunakan alamat IP-nya, terlepas dari node tempat Pod tersebut berjalan. Di GKE, komunikasi langsung ini dicapai menggunakan cluster native VPC, di mana alamat IP Pod adalah alamat IP alias dalam jaringan VPC Anda. Alamat IP alias ini membuat Pod dapat dirutekan secara langsung dalam VPC, sehingga tidak memerlukan Network Address Translation (NAT) dan menyederhanakan komunikasi lintas-node.

  • Service menyediakan endpoint yang 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 Layanan bawaan dengan DNS: Kubernetes menyertakan layanan DNS bawaan yang secara otomatis menetapkan nama DNS ke Layanan. Aplikasi dapat menggunakan nama ini (misalnya, my-service.my-namespace.svc.cluster.local) untuk menemukan dan berkomunikasi dengan Layanan lain secara andal.

  • Load balancing terintegrasi. Saat klien mengirim traffic ke alamat ClusterIP Service, aturan jaringan di node (diprogram oleh kube-proxy atau GKE Dataplane V2) akan mencegat traffic dan melakukan load balancing 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 mengabstraksi banyak kompleksitas jaringan konvensional menjadi serangkaian elemen dasar yang lebih sederhana dan canggih untuk aplikasi dalam container. Dengan mengaktifkan komunikasi Pod langsung, endpoint Service yang stabil, serta DNS dan load balancing terintegrasi, fitur ini memberikan fondasi yang andal dan skalabel untuk aplikasi modern dalam container.

Hubungan GKE dan Google Cloud

Jaringan GKE bertindak sebagai penghubung antara model konseptual jaringan Kubernetes dan infrastruktur fisik Google Cloud:

  • Model jaringan Kubernetes: Kubernetes menentukan aturan di mana setiap Pod mendapatkan alamat IP-nya sendiri, sehingga memungkinkan komunikasi langsung antar-Pod tanpa memerlukan NAT.

  • Google Cloud Jaringan: ini adalah infrastruktur yang mendasarinya, termasuk VPC, subnet, firewall, dan load balancer.

  • Jaringan GKE: lapisan penghubung ini mengimplementasikan model Kubernetes dengan menggunakan infrastruktur Google Cloud.

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

Diagram berikut menunjukkan alur traffic masuk dan keluar ke dan dari cluster GKE yang berada di VPC dan di belakang firewall cloud. Traffic masuk mencakup traffic yang di-load balance dari komponen seperti proxy SSL, proxy TCP, atau load balancing HTTP(S). Traffic keluar mencakup tujuan seperti jaringan eksternal, pengguna, dan load balancing proxy TCP.
Gambar 1. Jaringan GKE terintegrasi dengan Google Cloud komponen seperti VPC, Cloud Load Balancing, dan Cloud Firewall untuk menyediakan lingkungan yang aman dan skalabel.

Mengapa Google Cloud pengetahuan jaringan sangat penting untuk GKE

GKE dibangun di atas infrastruktur jaringan. Google CloudGKE tidak membuat lapisan jaringan terpisah, melainkan menggunakan komponen jaringan yang ada. Google Cloud Oleh karena itu, pemahaman tentang jaringan sangat penting untuk mendesain dan mengamankan cluster GKE Anda. Google Cloud

Berikut alasan Google Cloud dasar-dasar jaringan penting:

  • Cluster Anda berjalan di VPC: setiap cluster GKE beroperasi dalam VPC. Semua alamat IP—untuk node, Pod, dan Layanan—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 VPC dan desain subnet. Untuk mengetahui informasi selengkapnya, lihat dokumentasi VPC.

  • Ekspos aplikasi menggunakan Google Cloud Load Balancer: saat Anda mengekspos aplikasi di luar cluster menggunakan Layanan LoadBalancer atau Ingress, GKE akan menyediakan load balancer Google Cloud bawaan. Layanan LoadBalancer biasanya digunakan untuk traffic Lapisan 4, dan Ingress digunakan untuk traffic HTTP(S) Lapisan 7. Memahami cara kerja load balancer ini akan membantu Anda mengelola traffic eksternal, menyiapkan health check, 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. Kesalahan konfigurasi dapat memblokir traffic penting, jadi penting untuk memahami cara kerja aturan ini. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Cloud Next Generation Firewall.

Langkah berikutnya