Lapisan jaringan virtual di Google Distributed Cloud (GDC) yang terisolasi mengatur konektivitas, firewall, penemuan layanan, load balancing, dan observabilitas antara mesin virtual dan pod yang berjalan di organisasi GDC.
Model jaringan GDC
GDC berisi dua tingkat konsep multi-tenant: organisasi dan project. Project ada dalam organisasi, dan Anda men-deploy semua workload tervirtualisasi dan berbasis container ke dalam satu project tertentu dalam organisasi.
Jaringan organisasi
Setiap organisasi di GDC memiliki jaringan virtual terisolasi sendiri. Jaringan virtual dalam organisasi adalah ruang IP datar, yang berarti semua workload dalam organisasi memiliki konektivitas alamat IP langsung satu sama lain. Dengan menggunakan kebijakan jaringan project, Anda dapat mengontrol akses antara workload di berbagai project dalam organisasi.
GDC mengisolasi setiap organisasi di tingkat jaringan dari semua organisasi lainnya. Workload dalam satu organisasi tidak memiliki konektivitas alamat IP langsung ke workload di organisasi lain.
Organisasi memiliki dua rentang IP yang berbeda: rentang internal dan rentang eksternal. Rentang IP eksternal dapat dijangkau dari luar organisasi, dan rentang IP internal hanya dapat diakses dari dalam organisasi. Workload selalu diberi alamat IP dari rentang internal organisasi, yang berarti workload tidak dapat diakses dari luar organisasi secara default. Anda harus mengaktifkan traffic masuk dan keluar secara eksplisit untuk workload menggunakan batasan ingress dan egress yang dijelaskan di bagian Jaringan project.
Jaringan project
Anda men-deploy semua mesin virtual (VM) dan workload berbasis container ke dalam project. Project menyediakan batas segmentasi jaringan dalam organisasi.
Workload dalam project dapat berkomunikasi langsung satu sama lain. Namun, kebijakan jaringan default mencegah komunikasi antara workload di berbagai project. Kebijakan jaringan project (ProjectNetworkPolicy) memungkinkan Anda mengonfigurasi project mana dalam organisasi yang dapat berkomunikasi satu sama lain. Jika kebijakan jaringan project mengizinkan, workload dalam organisasi dapat saling menjangkau di lapisan jaringan L3 menggunakan alamat IP masing-masing. Anda harus mengaktifkan batasan ingress dan egress secara eksplisit ke dan dari organisasi untuk setiap workload yang memerlukan traffic masuk atau keluar.
Mengonfigurasi load balancer
Load balancer mendistribusikan traffic di seluruh workload backend aplikasi Anda, sehingga memastikan stabilitas dan ketersediaan. Buat load balancer eksternal dan internal untuk workload pod dan VM. GDC menyediakan tiga metode untuk mengonfigurasi load balancer. Untuk mengetahui informasi selengkapnya, lihat Mengelola load balancer.
Batasan ingress
Mekanisme yang digunakan untuk mengekspos workload di luar organisasi berbeda-beda, bergantung pada apakah workload tersebut berbasis VM atau container.
Anda mengekspos workload berbasis VM di luar organisasi menggunakan kemampuan akses eksternal VM. Anda mengaktifkan kemampuan ini untuk setiap VM. Setiap VM mendapatkan alamat IP-nya sendiri dari rentang eksternal organisasi.
Di sisi lain, Anda mengekspos workload berbasis container di luar organisasi menggunakan fitur load balancer eksternal. Anda dapat membuat load balancer eksternal, dan GDC akan menetapkan alamat IP eksternal. Kemudian, traffic dapat di-load balance di seluruh kumpulan workload pod backend.
Batasan egress
Anda harus mengaktifkan traffic keluar secara eksplisit untuk setiap project dan workload agar dapat berkomunikasi di luar organisasi. Mengaktifkan traffic keluar akan mengubah IP dari workload menjadi IP eksternal menggunakan Network Address Translation (NAT) saat terhubung di luar organisasi. Untuk mengetahui informasi selengkapnya tentang cara mengizinkan traffic keluar, lihat Ringkasan NAT.
Model penerapan kebijakan jaringan
Postur keamanan untuk workload dalam organisasi adalah gabungan dari kebijakan jaringan project default dan yang dibuat pengguna project network policies.
Penerapan kebijakan didasarkan pada alur traffic Lapisan-3 dan Lapisan-4. Alur menjelaskan koneksi 5-tuple sebagai berikut:
- Alamat IP sumber
- Alamat IP tujuan
- Port sumber
- Port tujuan
- Protokol, seperti
TCP,UDP, atauIPIP
Kebijakan jaringan melakukan penerapan traffic keluar pada traffic di node yang menghosting workload sumber dan penerapan traffic masuk saat traffic tiba di node yang menghosting workload tujuan. Oleh karena itu, untuk membuat koneksi, Anda harus mengizinkan kebijakan untuk meninggalkan sumber ke tujuan dan tiba di tujuan dari sumber.
Traffic balasan, seperti segmen SYN-ACK (synchronize-acknowledge) yang membalas segmen SYN, tidak tunduk pada penerapan. Oleh karena itu, traffic balasan selalu diizinkan jika traffic awal diizinkan. Karena alasan ini, Anda hanya mengamati waktu tunggu koneksi habis karena penerapan kebijakan dari klien yang memulai koneksi. Traffic yang ditolak akan dihapus selama transfer data keluar dari node sumber atau transfer data masuk di node tujuan. Workload penerima tidak pernah mengamati koneksi.
Penerapan didasarkan pada aturan kebijakan berbasis izin yang bersifat aditif. Penerapan yang dihasilkan untuk workload adalah "kecocokan apa pun" untuk alur traffic terhadap gabungan semua kebijakan yang diterapkan ke workload tersebut. Jika ada beberapa kebijakan, aturan yang diterapkan ke setiap workload akan digabungkan secara aditif, sehingga mengizinkan traffic jika cocok dengan setidaknya salah satu aturan. Anda tidak memiliki aturan penolakan, hanya aturan izin.
Jika kebijakan jaringan menolak alur, Anda tidak akan menerima paket respons dan mengamati waktu tunggu koneksi habis. Karena alasan ini, koneksi tingkat protokol atau error HTTP yang ditolak atau direset bukanlah hasil langsung dari penerapan jaringan.
Untuk mengetahui informasi selengkapnya tentang kebijakan jaringan Kubernetes, lihat https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-two-sorts-of-pod-isolation.