Halaman ini menjelaskan cara mengontrol aliran traffic antara Pod dan Service di Pod dengan mengonfigurasi kebijakan jaringan multi-jaringan yang ke jaringan Pod yang ditentukan.
Sebagai administrator cluster, Anda dapat mengonfigurasi kebijakan jaringan multi-jaringan untuk mengontrol aliran traffic antara Pod dan Service menggunakan aturan firewall Level pod. Anda dapat meningkatkan keamanan jaringan dan kontrol traffic dalam .
Untuk memahami cara kerja kebijakan jaringan multi-jaringan, lihat cara kerja kebijakan jaringan Kebijakan kantor dengan jaringan Pod.
Persyaratan
Untuk menggunakan kebijakan jaringan multi-jaringan, pertimbangkan persyaratan berikut:
- Google Cloud CLI versi 459 dan yang lebih baru.
- Anda harus memiliki cluster GKE yang menjalankan salah satu versi berikut:
- 1.28.5-gke.1293000 atau yang lebih baru
- 1.29.0-gke.1484000 atau yang lebih baru
- Cluster Anda harus menggunakan GKE Dataplane V2.
Batasan
Kebijakan jaringan FQDN dan kebijakan jaringan CiliumClusterWide tidak didukung: Jika Anda menggunakan kebijakan jaringan FQDN dan kebijakan jaringan CiliumClusterWide di Pod terhubung ke beberapa jaringan, kebijakan ini memengaruhi semua koneksi Pod dan bukan hanya halaman tempat kebijakan diterapkan.
Harga
Fitur Network Function Optimizer (NFO) berikut didukung hanya pada cluster yang ada di Project yang diaktifkan dengan GKE Enterprise:
- Dukungan multi-jaringan untuk Pod
- Dukungan alamat IP persisten untuk Pod (Pratinjau)
- Kebijakan jaringan multi-jaringan (Pratinjau)
- Dukungan Service Steering untuk Pod (Pratinjau)
Untuk memahami biaya yang berlaku untuk mengaktifkan edisi Google Kubernetes Engine (GKE) Enterprise, lihat Harga GKE Enterprise.
Mengonfigurasi kebijakan jaringan multi-jaringan
Untuk menggunakan kebijakan jaringan multi-jaringan, lakukan langkah berikut:
- Buat cluster dengan GKE yang mengaktifkan multi-jaringan .
- Buat kumpulan node dan jaringan Pod.
- Referensikan jaringan Pod.
- Buat kebijakan jaringan yang akan diterapkan, yang merujuk ke jaringan Pod yang sama dengan yang digunakan oleh workload.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Mengaktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Buat kebijakan jaringan
Untuk membuat kebijakan jaringan yang memberlakukan aturan pada jaringan Pod yang sama dengan untuk workload Anda, referensikan jaringan Pod tertentu dalam kebijakan jaringan definisi.
Untuk menentukan aturan traffic masuk yang dipilih dan Pod target berdasarkan label atau pemilih lainnya, buat Kebijakan Jaringan standar.
Simpan manifes contoh berikut sebagai
sample-ingress-network-policy1.yaml
:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: sample-network-policy namespace: default annotations: networking.gke.io/network: blue-pod-network # GKE-specific annotation for network selection spec: podSelector: matchLabels: app: test-app-2 # Selects pods with the label "app: test-app-2" policyTypes: - Ingress # Specifies the policy applies only to incoming traffic ingress: - from: # Allow incoming traffic only from... - podSelector: matchLabels: app: test-app-1 # ...pods with the label "app: test-app-1"
Terapkan manifes
sample-ingress-network-policy1.yaml
:kubectl apply -f sample-ingress-network-policy1.yaml
Untuk menentukan aturan traffic keluar yang dipilih dan menargetkan Pod berdasarkan label atau pemilih lainnya, buat kebijakan jaringan standar.
Simpan manifes contoh berikut sebagai
sample-egress-network-policy2.yaml
:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: sample-network-policy-2 namespace: default annotations: networking.gke.io/network: blue-pod-network # GKE-specific annotation (optional) spec: podSelector: matchLabels: app: test-app-2 policyTypes: - Egress # Only applies to outgoing traffic egress: - to: - podSelector: matchLabels: app: test-app-3
Terapkan manifes
sample-egress-network-policy2.yaml
:kubectl apply -f sample-egress-network-policy2.yaml
Memecahkan masalah kebijakan jaringan multi-jaringan
Jika Anda mengalami masalah dengan kebijakan jaringan, apakah kebijakan tersebut diterapkan ke Pod khusus atau tidak, Anda bisa mendiagnosis dan memecahkan masalah dengan menjalankan perintah berikut:
kubectl get networkpolicy
: mencantumkan semua objek kebijakan jaringan dan informasi tentang mereka.iptables-save
: mengambil dan mencantumkan semua rantai tabel alamat IP untuk node tertentu. Anda harus menjalankan perintah ini pada node sebagai root.cilium bpf policy get <endpoint-id>
: mengambil dan mencantumkan IP yang diizinkan dari setiap endpoint peta kebijakan.cilium policy selectors
: mencetak identitas dan kebijakan terkait yang telah memilihnya.cilium identity list
: menampilkan pemetaan dari identitas ke alamat IP.