Jaringan di Google Kubernetes Engine (GKE) mencakup berbagai konsep, termasuk Pod, layanan, DNS, load balancing, keamanan, dan pengelolaan alamat IP. Meskipun dokumentasi menjelaskan setiap fitur secara mendetail, mungkin sulit untuk mengetahui dari mana harus memulai saat menghadapi masalah dunia nyata.
Dokumen ini membantu Anda menelusuri dokumentasi jaringan GKE dengan menghubungkan tantangan umum dengan fitur dan bagian yang menyelesaikannya. Setiap kasus penggunaan menyajikan skenario, mengidentifikasi tantangan, dan mengarahkan Anda ke dokumentasi yang relevan. Dokumen ini ditujukan untuk arsitek cloud, developer, dan tim operasi yang harus memahami dan menyelesaikan tantangan jaringan umum di GKE.
Jika Anda sudah memahami tantangan jaringan umum dan lebih suka mempelajari detail teknis secara langsung, pelajari referensi berikut untuk membangun pengetahuan dasar Anda tentang jaringan GKE:
- Pelajari dasar-dasar jaringan GKE.
- Pelajari arsitektur jaringan GKE.
- Glosarium istilah jaringan GKE (untuk mengingat kembali istilah yang tidak dikenal).
Kasus penggunaan: Mendesain fondasi jaringan untuk GKE
Dalam kasus penggunaan ini, Anda adalah arsitek cloud yang perlu mendesain fondasi jaringan yang skalabel, aman, dan andal untuk platform GKE baru.
Tantangan: Mencegah kehabisan alamat IP
Skenario: kompleksitas dan penggunaan aplikasi Anda diperkirakan akan meningkat, sehingga Anda perlu merancang jaringan yang dapat diskalakan untuk menangani peningkatan traffic dan mendukung pertumbuhan Pod, layanan, dan node. Anda juga perlu merencanakan alokasi alamat IP untuk menghindari kehabisan
Solusi: rencanakan skema pengalamatan IP Anda untuk memperhitungkan jumlah node, Pod, dan Layanan yang Anda perlukan. Rencana ini mencakup pemilihan rentang alamat IP yang sesuai untuk setiap jaringan, dengan mempertimbangkan kepadatan Pod, dan menghindari tumpang-tindih dengan jaringan lain. Untuk mengetahui informasi selengkapnya, lihat Mengelola migrasi alamat IP di GKE.
Tantangan: Menerapkan keamanan berlapis
Skenario: Anda perlu mengamankan perimeter cluster dan menerapkan aturan zero-trust, Pod-ke-Pod.
Solusi: gunakan Kebijakan firewall untuk perimeter cluster. Untuk mengetahui informasi selengkapnya, lihat Mengontrol komunikasi antara Pod dan Service menggunakan kebijakan jaringan.
Tantangan: Merutekan traffic ke berbagai jenis aplikasi
Skenario: Anda perlu memastikan bahwa layanan dan pengguna lain dapat menjangkau berbagai jenis aplikasi, seperti backend pribadi dan aplikasi HTTP(S) publik.
Solusi: gunakan load balancer internal untuk backend pribadi. Untuk aplikasi HTTP(S) publik, gunakan Ingress atau Gateway API. Untuk mengetahui informasi selengkapnya, lihat Tentang load balancing di GKE.
Tantangan: Menggunakan alat observabilitas untuk memantau dan memecahkan masalah beban kerja
Skenario: Anda harus memperbaiki masalah traffic jaringan, dan perlu memahami serta memantau alur traffic GKE untuk mendiagnosis masalah secara efektif.
Solusi: menerapkan alat observabilitas untuk memantau dan memecahkan masalah traffic jaringan. Untuk mengetahui informasi selengkapnya, lihat Mengamati traffic menggunakan kemampuan observasi GKE Dataplane V2.
Kasus penggunaan: Mengekspos microservice baru
Dalam kasus penggunaan ini, Anda adalah developer yang men-deploy microservice baru di GKE. Anda perlu membuat microservice dapat diakses oleh layanan lain dalam cluster, dan selanjutnya, oleh klien eksternal.
Tantangan: Menyediakan endpoint yang stabil untuk komunikasi Pod-ke-Pod
Skenario: aplikasi Anda memerlukan Pod untuk berkomunikasi dengan Pod lain, tetapi alamat IP dinamis yang digunakan oleh Pod membuat komunikasi ini tidak dapat diandalkan.
Solusi: buat layanan Kubernetes. Layanan ClusterIP menyediakan alamat IP virtual dan nama DNS yang stabil, yang di-load balance di seluruh Pod. Untuk mengetahui informasi selengkapnya, lihat Memahami layanan Kubernetes.
Tantangan: Mengekspos layanan untuk akses eksternal
Skenario: microservice harus dapat dijangkau dari internet untuk demo.
Solusi: buat layanan LoadBalancer. GKE menyediakan Load Balancer Jaringan passthrough eksternal regional dengan alamat IP publik. Untuk traffic HTTP(S), pertimbangkan untuk menggunakan Ingress atau Gateway, yang menyediakan fitur Lapisan 7. Untuk mengetahui informasi selengkapnya, lihat Tentang Layanan LoadBalancer.
Tantangan: Menetapkan URL permanen yang mudah digunakan
Skenario: layanan memerlukan nama domain yang stabil untuk klien.
Solusi: cadangkan alamat IP statis dan konfigurasi DNS untuk domain kustom. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi nama domain dengan alamat IP statis.
Tantangan: Mengelola perutean traffic lanjutan
Skenario: seiring berkembangnya aplikasi, Anda memerlukan kontrol yang lebih canggih terhadap cara traffic diarahkan. Misalnya, Anda mungkin perlu melakukan hal berikut:
- Menghosting beberapa situs (seperti api.example.com dan shop.example.com) di satu load balancer untuk menghemat biaya.
- Merutekan permintaan ke layanan yang berbeda berdasarkan jalur URL (misalnya,
mengirim
/ke workload frontend dan/api/v1ke workload backend). - Amankan aplikasi Anda dengan HTTPS dengan mengelola sertifikat TLS.
- Deploy fitur baru secara bertahap dengan aman menggunakan rilis canary, di mana Anda mengirimkan sebagian kecil traffic ke versi baru sebelum peluncuran penuh.
Solusi: gunakan Gateway API. Implementasi Gateway API di GKE menyediakan cara yang efektif dan standar untuk mengelola traffic north-south semacam ini, yang mendukung fitur lanjutan seperti perutean berbasis jalur, pencocokan header, dan pemisahan traffic. Untuk informasi selengkapnya, lihat Tentang Gateway API.
Kasus penggunaan: Menskalakan penemuan layanan untuk aplikasi yang berkembang
Seiring pertumbuhan traffic dan kompleksitas aplikasi berbasis microservice Anda, kueri DNS antar-layanan akan meningkat secara signifikan. Meskipun developer perlu memahami cara membangun aplikasi yang tangguh di lingkungan ini, tim platform dan operasi sering kali bertanggung jawab untuk menerapkan solusi jaringan yang skalabel.
Tantangan: Mengaktifkan komunikasi layanan ke layanan
Skenario: Pod memerlukan cara yang andal untuk menemukan layanan lain.
Solusi: GKE menyediakan layanan DNS dalam cluster (seperti
kube-dns atau Cloud DNS) yang me-resolve nama DNS stabil untuk Layanan,
sehingga memungkinkan komunikasi Pod-ke-Pod yang andal. Untuk mengetahui informasi selengkapnya, lihat Penemuan
layanan dan DNS.
Tantangan: Meningkatkan performa DNS dalam skala besar
Skenario: volume kueri yang tinggi menyebabkan penundaan pencarian.
Solusi: aktifkan NodeLocal DNSCache. Setiap node menyimpan kueri DNS secara lokal, sehingga mengurangi latensi. Untuk mengetahui informasi selengkapnya, lihat Ringkasan penyiapan NodeLocal DNSCache.
Tantangan: Menyediakan penemuan layanan di seluruh VPC
Skenario: VM Compute Engine perlu mengakses layanan di dalam cluster.
Solusi: lakukan integrasi dengan Cloud DNS agar data DNS layanan dapat di-resolve di seluruh VPC. Untuk mengetahui informasi selengkapnya, lihat Menggunakan Cloud DNS untuk GKE.
Kasus penggunaan: Mengamankan aplikasi multi-tingkat
Dalam kasus penggunaan ini, Anda berada di tim engineering platform yang men-deploy aplikasi tiga tingkat (frontend, penagihan, database), dan Anda harus menerapkan komunikasi zero trust.
Tantangan: Menerapkan aturan traffic yang ketat
Skenario: hanya layanan tertentu yang boleh berkomunikasi satu sama lain.
Solusi: aktifkan penerapan kebijakan jaringan dan terapkan default deny
kebijakan, lalu tentukan aturan izin eksplisit (misalnya, frontend mengizinkan traffic
ke penagihan, penagihan mengizinkan traffic ke database). Untuk mengetahui informasi selengkapnya, lihat
Mengonfigurasi kebijakan jaringan untuk aplikasi.
Tantangan: Mengaudit dan memverifikasi kebijakan jaringan
Skenario: keamanan memerlukan bukti penegakan dan visibilitas.
Solusi: Aktifkan logging kebijakan jaringan untuk merekam koneksi yang diizinkan dan ditolak. Untuk mengetahui informasi selengkapnya, lihat Menggunakan logging kebijakan jaringan.
Tantangan: Mengekspos layanan secara pribadi kepada konsumen
Skenario: layanan backend, seperti database atau API, harus dapat diakses oleh konsumen di jaringan VPC lain tanpa mengeksposnya ke internet publik atau menangani kompleksitas peering VPC.
Solusi: gunakan Private Service Connect untuk memublikasikan layanan. Konsumen kemudian dapat membuat endpoint PSC di VPC mereka sendiri untuk mengakses layanan Anda secara pribadi dan aman. Untuk mengetahui informasi selengkapnya, lihat Mengekspos layanan dengan Private Service Connect.
Kasus penggunaan: Mencapai ketersediaan tinggi di beberapa cluster
Dalam kasus penggunaan ini, Anda adalah SRE yang menjalankan workload untuk perusahaan e-commerce di beberapa cluster GKE di berbagai region untuk meningkatkan keandalan.
Tantangan: Mengaktifkan komunikasi lintas cluster
Skenario: layanan di satu cluster harus menemukan dan memanggil layanan di cluster lain.
Solusi: gunakan Layanan multi-cluster (MCS) GKE untuk membuat nama DNS global dan merutekan traffic secara otomatis ke backend yang sehat. Untuk mengetahui informasi selengkapnya, lihat Layanan Multi-cluster.
Tantangan: Memastikan failover yang tangguh
Skenario: jika satu layanan regional tidak tersedia, traffic harus dialihkan secara otomatis.
Solusi: MCS menyediakan penemuan layanan yang memperhatikan kondisi, sehingga klien dapat me-resolve satu nama DNS ke backend yang sehat di cluster terdekat yang tersedia. Pendekatan ini memungkinkan failover yang tangguh. Untuk mengetahui informasi selengkapnya, lihat Layanan Multi-cluster.
Kasus penggunaan: Membangun lingkungan GKE multi-tenant yang aman dan efisien
Sebagai bagian dari tim engineering platform, Anda menyediakan cluster GKE untuk beberapa tim aplikasi. Anda perlu memusatkan kontrol jaringan, menghemat alamat IP, dan menerapkan keamanan yang ketat.
Tantangan: Memusatkan kontrol jaringan
Skenario: beberapa tim aplikasi memerlukan cluster mereka sendiri, tetapi jaringan harus dikelola secara terpusat.
Solusi: gunakan VPC Bersama. Resource jaringan berada di project host, tetapi cluster aplikasi berjalan di project layanan. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi cluster dengan VPC Bersama.
Tantangan: Mengelola alamat IP terbatas secara efisien
Skenario: Ruang alamat IP terbatas dan perlu digunakan secara efisien.
Solusi: sesuaikan jumlah maksimum Pod per node dan, jika diperlukan, gunakan rentang non-RFC 1918 untuk alamat IP Pod. Untuk mengetahui informasi selengkapnya, lihat Mengelola migrasi alamat IP di GKE.
Tantangan: Menggunakan dataplane modern dan aman, serta menyediakan cluster dengan dataplane baru
Skenario:
- Perusahaan memerlukan performa tinggi dan penerapan kebijakan bawaan untuk mendukung beban kerja yang berat dan postur keamanan zero-trust. Misalnya, Anda mungkin menjalankan microservice skala besar yang sensitif terhadap latensi jaringan, atau Anda mungkin perlu menerapkan batas keamanan yang ketat antara aplikasi dalam cluster multi-tenant untuk memenuhi persyaratan kepatuhan terhadap peraturan.
- Cluster harus dikonfigurasi untuk menggunakan dataplane jaringan modern demi performa dan keamanan yang tinggi, serta harus di-deploy dalam struktur jaringan yang dikelola secara terpusat oleh organisasi.
Solusi: gunakan GKE Dataplane V2, yang berbasis eBPF dan memberikan performa tinggi serta penerapan kebijakan jaringan bawaan. Untuk mengetahui informasi selengkapnya, lihat GKE Dataplane V2.
Kasus penggunaan: Mengamati dan memecahkan masalah traffic
Sebagai SRE, Anda sedang menyelidiki alasan layanan checkout tidak dapat terhubung ke layanan pembayaran.
Tantangan: Menyelesaikan masalah konektivitas
Skenario: paket dihapus, tetapi penyebabnya tidak jelas.
Solusi: aktifkan kemampuan observasi GKE Dataplane V2. Metrik seperti
hubble_drop_total mengonfirmasi bahwa paket ditolak. Untuk mengetahui informasi selengkapnya, lihat
Memecahkan masalah dengan Hubble.
Tantangan: Menemukan penyebab utama paket yang tidak terkirim
Skenario: setelah mengonfirmasi bahwa paket jaringan dihentikan (misalnya,
dengan menggunakan hubble_drop_total), identifikasi kebijakan jaringan spesifik yang
memblokir traffic antar-layanan.
Solusi: gunakan antarmuka command line atau UI Hubble untuk melacak alur. UI Hubble memberikan representasi visual traffic, yang menandai kebijakan yang salah konfigurasi yang menolak koneksi. Visualisasi ini memungkinkan tim dengan cepat menemukan akar penyebab masalah dan memperbaiki kebijakan. Untuk mengetahui informasi selengkapnya, lihat Mengamati traffic menggunakan kemampuan observasi GKE Dataplane V2.
Kasus penggunaan menyeluruh: Men-deploy dan menskalakan aplikasi retail yang aman
Dalam skenario end-to-end ini, tim engineering platform membangun platform GKE standar untuk beberapa tim aplikasi. Tim men-deploy dan mengoptimalkan aplikasi retail tiga tingkat (frontend, penagihan, database). Proses ini mencakup pengamanan, penskalaan, peningkatan performa untuk beban kerja machine learning, dan integrasi peralatan keamanan tingkat lanjut.
Diagram berikut mengilustrasikan arsitektur end-to-end aplikasi retail multi-tingkat yang aman dan di-deploy di GKE. Arsitektur berkembang melalui beberapa fase:
- Tahap 1: bangun penyiapan dasar menggunakan VPC Bersama dan GKE Dataplane V2.
- Fase 2: ekspos aplikasi menggunakan Gateway API dan layanan multi-cluster untuk ketersediaan tinggi.
- Tahap 3: mempercepat tugas ML menggunakan gVNIC dan jaringan Tingkat 1.
- Tahap 4: men-deploy peralatan keamanan tingkat lanjut menggunakan dukungan multi-jaringan.
Fase 1: Membangun fondasi platform
Tantangan: Memusatkan jaringan untuk beberapa tim aplikasi dan mengalokasikan alamat IP yang memadai untuk menangani penskalaan.
Solusi:
- Gunakan VPC Bersama untuk kontrol terpusat.
- Rencanakan pengalamatan IP untuk memastikan skalabilitas.
- Aktifkan GKE Dataplane V2 untuk data plane berperforma tinggi dan aman.
- Gunakan Private Service Connect untuk terhubung secara aman ke bidang kontrol GKE.
Tahap 2: Men-deploy dan mengamankan aplikasi
Tantangan: memastikan komunikasi antarlayanan yang andal dan menerapkan keamanan zero trust.
Solusi:
- Buat layanan ClusterIP untuk endpoint internal yang stabil.
- Terapkan kebijakan jaringan dengan dasar penolakan default dan aturan izin eksplisit.
Fase 3: Ekspos aplikasi dan lakukan penskalaan untuk pertumbuhan
Tantangan: menyediakan akses eksternal dan mengurangi latensi pencarian DNS seiring dengan peningkatan traffic.
Solusi:
- Ekspos frontend dengan Gateway API untuk pengelolaan traffic tingkat lanjut.
- Tetapkan alamat IP statis dengan DNS.
- Aktifkan NodeLocal DNSCache untuk pencarian yang lebih cepat.
Fase 4: Mencapai ketersediaan tinggi dan memecahkan masalah
Tantangan: memastikan failover regional dan men-debug traffic yang terputus.
Solusi:
- Gunakan layanan multi-cluster untuk failover lintas region.
- Aktifkan kemampuan observasi GKE Dataplane V2 dengan Hubble untuk mendiagnosis dan memperbaiki kebijakan jaringan yang salah dikonfigurasi.
Tahap 5: Mempercepat workload machine learning
Tantangan: menghilangkan hambatan jaringan untuk pelatihan model berbasis GPU.
Solusi:
- Aktifkan gVNIC untuk bandwidth yang lebih tinggi.
- Konfigurasi jaringan Tier 1 pada node penting untuk throughput maksimum.
Fase 6: Men-deploy perangkat keamanan canggih
Tantangan: men-deploy firewall dan IDS pihak ketiga dengan traffic bidang data dan pengelolaan terpisah pada latensi sangat rendah.
Solusi:
- Aktifkan dukungan multi-jaringan untuk melampirkan beberapa antarmuka ke Pod.
- Konfigurasi jaringan mode perangkat (DPDK).