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 Layanan.
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 di Pod yang terhubung ke beberapa jaringan, kebijakan tersebut akan memengaruhi semua koneksi Pod, termasuk koneksi tempat kebijakan tidak diterapkan.
Mengonfigurasi kebijakan jaringan multi-jaringan
Untuk menggunakan kebijakan jaringan multi-jaringan, lakukan hal berikut:
- Buat cluster dengan GKE yang mengaktifkan multi-jaringan .
- Buat node pool dan jaringan Pod.
- Mereferensikan jaringan Pod.
- Buat kebijakan jaringan yang akan diterapkan dan mereferensikan jaringan Pod yang sama yang digunakan oleh beban kerja.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan 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
.
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.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 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 di 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.