Menyiapkan kebijakan jaringan multi-jaringan


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:

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:

  1. Buat cluster dengan GKE yang mengaktifkan multi-jaringan .
  2. Buat kumpulan node dan jaringan Pod.
  3. Referensikan jaringan Pod.
  4. 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

  1. Untuk membuat kebijakan jaringan yang memberlakukan aturan pada jaringan Pod yang sama dengan untuk workload Anda, referensikan jaringan Pod tertentu dalam kebijakan jaringan definisi.

  2. 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"
    
  3. Terapkan manifes sample-ingress-network-policy1.yaml:

    kubectl apply -f sample-ingress-network-policy1.yaml
    
  4. 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
    
  5. 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:

  1. kubectl get networkpolicy: mencantumkan semua objek kebijakan jaringan dan informasi tentang mereka.
  2. iptables-save: mengambil dan mencantumkan semua rantai tabel alamat IP untuk node tertentu. Anda harus menjalankan perintah ini pada node sebagai root.
  3. cilium bpf policy get <endpoint-id>: mengambil dan mencantumkan IP yang diizinkan dari setiap endpoint peta kebijakan.
  4. cilium policy selectors: mencetak identitas dan kebijakan terkait yang telah memilihnya.
  5. cilium identity list: menampilkan pemetaan dari identitas ke alamat IP.

Langkah selanjutnya