Halaman ini menjelaskan cara meningkatkan keamanan jaringan dan kontrol traffic dalam cluster dengan mengonfigurasi kebijakan jaringan multi-jaringan yang berlaku khusus untuk jaringan Pod yang ditetapkan. Kebijakan jaringan multi-jaringan ini mengontrol traffic menggunakan aturan firewall di tingkat Pod, dan mengontrol aliran traffic antara Pod dan Service.
Untuk memahami cara kerja kebijakan jaringan multi-jaringan, lihat cara kerja Kebijakan Jaringan 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 pada Pod yang terhubung ke beberapa jaringan, kebijakan tersebut akan memengaruhi semua koneksi Pod, termasuk koneksi yang tidak menerapkan kebijakan tersebut.
Mengonfigurasi kebijakan jaringan multi-jaringan
Untuk menggunakan kebijakan jaringan multi-jaringan, lakukan hal berikut:
- Buat cluster dengan GKE yang mendukung multi-jaringan .
- Buat node pool dan jaringan Pod.
- Referensi jaringan Pod.
- Buat kebijakan jaringan yang akan diterapkan, yang merujuk ke jaringan Pod yang sama yang digunakan oleh workload.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Untuk 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 perintah
gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
Membuat kebijakan jaringan
Untuk membuat kebijakan jaringan yang menerapkan aturan pada jaringan Pod yang sama dengan workload Anda, referensikan jaringan Pod tertentu dalam definisi kebijakan jaringan.
Untuk menentukan aturan traffic masuk yang dipilih dan menargetkan Pod 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.yamlUntuk 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-3Terapkan manifes
sample-egress-network-policy2.yaml:kubectl apply -f sample-egress-network-policy2.yaml
Memecahkan masalah kebijakan jaringan multi-jaringan
Jika mengalami masalah dengan kebijakan jaringan, baik yang diterapkan ke jaringan Pod tertentu maupun tidak, Anda dapat mendiagnosis dan memecahkan masalah dengan menjalankan perintah berikut:
kubectl get networkpolicy: mencantumkan semua objek kebijakan jaringan dan informasi tentangnya.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 alamat IP yang diizinkan dari peta kebijakan setiap endpoint.cilium policy selectors: mencetak identitas dan kebijakan terkait yang telah memilihnya.cilium identity list: menampilkan pemetaan dari identitas ke alamat IP.