Menggunakan Kebijakan NAT Keluar untuk mengonfigurasi penyamaran IP di cluster Autopilot


Halaman ini menjelaskan cara mengonfigurasi cluster yang dibuat dalam mode Google Kubernetes Engine (GKE) Autopilot untuk menjalankan penyamaran IP dengan Kebijakan NAT Keluar.

Untuk mengetahui informasi selengkapnya tentang penyamaran IP dalam mode GKE Standard, lihat Mengonfigurasi agen penyamaran IP.

Ringkasan

Kebijakan NAT Keluar GKE memungkinkan Anda mengonfigurasi perilaku penyamaran IP untuk cluster Autopilot.

GKE mendukung dua kebijakan NAT Keluar yang dibuat secara otomatis:

  • Dikelola oleh GKE yang bersifat tetap dan tidak dapat diedit.
  • Kebijakan default yang dapat diedit.

Halaman ini menunjukkan cara mengedit dan men-deploy kebijakan NAT Keluar dengan mengedit kebijakan default atau dengan membuat kebijakan NAT Keluar. Halaman ini juga menunjukkan cara menghapus kebijakan NAT Keluar yang dibuat.

Untuk informasi selengkapnya tentang perilaku kebijakan NAT Keluar, baca perilaku penyamaran traffic untuk cluster Autopilot.

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 initialize gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.
  • Pastikan Anda memiliki cluster Autopilot yang menjalankan versi 1.23.4-gke.1600 atau yang lebih baru, atau 1.22.7-gke.1500 atau yang lebih baru. Cluster Anda harus mengaktifkan GKE Dataplane V2.

  • Pastikan cluster Anda memiliki workload yang sedang berjalan. Untuk informasi selengkapnya, lihat cara meminta resource.

Memeriksa status kebijakan NAT Keluar

Anda dapat memeriksa apakah cluster menjalankan definisi resource kustom (CRD) kebijakan NAT Keluar menggunakan alat Google Cloud CLI:

  1. Dapatkan kredensial untuk cluster Anda:

    gcloud container clusters get-credentials CLUSTER-NAME
    

    Ganti CLUSTER_NAME dengan nama cluster.

  2. Periksa apakah kebijakan NAT Keluar sedang berjalan:

    kubectl get crds egressnatpolicies.networking.gke.io
    

    Jika kebijakan NAT Keluar sedang berjalan, output akan mirip dengan yang berikut ini:

     NAME                                  CREATED AT
     egressnatpolicies.networking.gke.io   2022-03-16T21:05:43Z
    
  3. Dapatkan daftar kebijakan NAT Keluar yang dibuat:

    kubectl get egressnatpolicies
    

    Outputnya mirip dengan hal berikut ini:

      NAME             AGE
      default          44h
      gke-bbfa6c0e-1   44h
    

Mengedit kebijakan default yang ada

GKE mendukung dua kebijakan NAT yang dihasilkan secara otomatis, yaitu kebijakan default dan dikelola oleh kebijakan GKE. Kebijakan default dapat diedit dan mengonfigurasi tujuan non-kamuflase default.

Untuk mengedit kebijakan default yang ada, lakukan langkah-langkah berikut:

  1. Dapatkan kredensial untuk cluster Anda:

    gcloud container clusters get-credentials CLUSTER_NAME
    

    Ganti CLUSTER_NAME dengan nama cluster Anda.

  2. Edit kebijakan NAT Keluar default:

    kubectl edit egressnatpolicies default
    
  3. Tambahkan atau hapus tujuan dengan tindakan NoSNAT sebagai atribut cidr dalam format CIDR:

      apiVersion: networking.gke.io/v1
      kind: EgressNATPolicy
      metadata:
        name: default
      spec:
        action: NoSNAT
        destinations:
        - cidr:  10.0.0.0/8
        - cidr:  172.16.0.0/12
        - cidr:  192.168.0.0/16
        - cidr:  240.0.0.0/4
        - cidr:  192.0.2.0/24
        - cidr:  198.51.100.0/24
        - cidr:  203.0.113.0/24
        - cidr:  100.64.0.0/10
        - cidr:  198.18.0.0/15
        - cidr:  192.0.0.0/24
        - cidr:  192.88.99.0/24
    

    Saat paket dikirim ke tujuan tersebut, cluster Anda tidak menyamarkan sumber alamat IP dan mempertahankan alamat IP Pod sumber.

  4. Pastikan bahwa kebijakan default yang diedit telah di-deploy dengan memeriksa peristiwa Kubernetes:

    kubectl get events
    

    Outputnya mirip dengan hal berikut ini:

    LAST SEEN   TYPE     REASON           OBJECT                    MESSAGE
    13s         Normal   EnsuringPolicy   egressnatpolicy/default   Ensuring IP masquerade config for policy "default"
    

    Perubahan Anda mungkin memerlukan waktu hingga tiga menit untuk diterapkan.

Men-deploy kebijakan NAT Keluar baru

Untuk menambahkan tujuan baru dengan tindakan NoSNAT, Anda dapat menggunakan salah satu opsi berikut:

Untuk membuat kebijakan NAT Keluar baru yang bukan bagian dari kebijakan default, lakukan langkah-langkah berikut:

  1. Simpan manifes berikut sebagai egress_nat_policy.yaml:

    kind: EgressNATPolicy
    apiVersion: networking.gke.io/v1
    metadata:
      name: POLICY_NAME
    spec:
      action: NoSNAT
      destinations:
      - cidr: CIDR_1
      - cidr: CIDR_2
    

    Ganti kode berikut:

    • POLICY_NAME: nama kebijakan baru Anda.
    • CIDR_1 dan CIDR_2: rentang alamat IP dalam format CIDR. Saat paket dikirim ke tujuan tersebut, cluster Anda tidak akan menyamarkan sumber alamat IP dan mempertahankan alamat IP Pod sumber. Jika memerlukan lebih dari dua CIDR, tambahkan entri lainnya ke daftar destinations dengan mengikuti format yang sama.
  2. Deploy kebijakan baru:

    kubectl create -f egress_nat_policy.yaml
    
  3. Pastikan kebijakan Anda telah di-deploy dengan memeriksa peristiwa Kubernetes:

    kubectl get events
    

    Output akan mirip dengan yang berikut ini:

    LAST SEEN   TYPE     REASON           OBJECT                              MESSAGE
    13s         Normal   EnsuringPolicy   egressnatpolicy/mypolicy            Ensuring IP masquerade config for policy "mypolicy"
    

Menghapus kebijakan NAT Keluar

Untuk menghapus sepenuhnya kebijakan NAT Keluar, jalankan perintah berikut:

kubectl delete egressnatpolicies POLICY_NAME

Ganti POLICY_NAME dengan nama kebijakan yang ingin Anda hapus.

Langkah selanjutnya