Aturan firewall yang dikelola pengguna untuk Layanan LoadBalancer GKE


Halaman ini menjelaskan cara menonaktifkan aturan firewall VPC yang mengizinkan traffic masuk yang dibuat GKE untuk Layanan LoadBalancer.

Menonaktifkan aturan firewall yang dibuat secara otomatis untuk Layanan LoadBalancer dapat berguna dalam situasi berikut:

Untuk menonaktifkan aturan firewall yang dibuat otomatis untuk Layanan LoadBalancer, Anda harus menentukan tanda --disable-l4-lb-firewall-reconciliation saat membuat atau memperbarui cluster. Flag --disable-l4-lb-firewall-reconciliation tidak memengaruhi aturan firewall VPC lain yang dibuat secara otomatis, seperti aturan yang memfasilitasi komunikasi antar-node atau aturan yang mengizinkan health check untuk Layanan Anda.

Persyaratan

  • Untuk menggunakan aturan firewall yang dikelola pengguna untuk Layanan LoadBalancer, cluster GKE Anda harus menggunakan versi 1.31.3-gke.105600 atau yang lebih baru.

Batasan

GKE mendukung penonaktifan pembuatan aturan firewall secara otomatis untuk jenis Layanan LoadBalancer berikut:

Anda tidak dapat menonaktifkan pembuatan otomatis aturan firewall untuk jenis Layanan LoadBalancer berikut:

  • Service LoadBalancer Internal yang tidak menggunakan subsetelan GKE
  • Layanan LoadBalancer eksternal berbasis kumpulan target

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.

Strategi untuk pengelolaan aturan firewall manual

Sebelum menonaktifkan pembuatan otomatis aturan firewall VPC untuk Layanan LoadBalancer di cluster GKE, hubungi Admin Keamanan untuk mengembangkan strategi guna mengonfigurasi aturan firewall secara manual.

  1. Tentukan jenis kebijakan firewall yang akan digunakan: kebijakan firewall hierarkis, kebijakan firewall jaringan global, atau kebijakan firewall jaringan regional. Untuk mengetahui langkah-langkah membuat kebijakan firewall, lihat:

    Anda juga dapat menggunakan aturan firewall VPC, yang tidak menggunakan kebijakan apa pun.

  2. Aturan firewall yang dibuat secara manual harus berupa aturan izinkan traffic masuk karena aturan firewall traffic masuk deny tersirat melarang traffic masuk. Jika Anda menonaktifkan pembuatan otomatis aturan firewall VPC, traffic masuk tidak akan menjangkau node Anda, kecuali jika Anda telah membuat aturan firewall izinkan traffic masuk yang cocok dengan traffic untuk Layanan LoadBalancer Anda.

    Bergantung pada parameter aturan firewall, satu aturan firewall izinkan traffic masuk dapat diterapkan ke satu atau beberapa Layanan LoadBalancer. Untuk setiap aturan firewall izinkan traffic masuk yang Anda buat, tentukan parameter berikut:

    • Parameter target: Pastikan aturan firewall setidaknya menyertakan semua node cluster yang berisi Layanan LoadBalancer. Target yang didukung bergantung pada jenis kebijakan firewall tempat aturan berada atau apakah Anda menggunakan aturan firewall VPC. Untuk mengetahui informasi tentang parameter target aturan dalam kebijakan firewall, lihat Target.

    • Protocols and ports: Sertakan semua protokol dan port tujuan yang digunakan oleh Service LoadBalancer yang akan menerapkan aturan firewall.

    • Parameter tujuan: Anda dapat menggunakan salah satu strategi berikut untuk parameter tujuan:

      • Sertakan alamat IP semua Layanan LoadBalancer yang akan diterapkan aturan firewall di parameter tujuan. Untuk menemukan alamat IP Layanan LoadBalancer, gunakan perintah berikut:
         kubectl get svc LOADBALANCER_NAME \
            -n NAMESPACE_NAME \
            -o jsonpath='{.status.loadBalancer.ingress[0].ip}
      
      • Anda dapat memilih untuk menghilangkan parameter tujuan. Jika parameter tujuan dihilangkan, parameter target akan menentukan tujuan secara implisit. Untuk mengetahui informasi selengkapnya, lihat Target dan alamat IP untuk aturan masuk.
    • Parameter sumber: Tentukan sumber (misalnya, alamat IP) yang digunakan oleh klien yang perlu terhubung ke Layanan Load Balancer tempat aturan firewall perlu diterapkan.

    Untuk mengetahui langkah-langkah membuat aturan firewall, lihat:

  3. Untuk memastikan bahwa aturan firewall yang dibuat secara manual berfungsi dengan benar, jalankan Uji Konektivitas Network Intelligence Center (NIC). Saat menjalankan Uji Konektivitas:

    • Tetapkan tujuan ke alamat IP Layanan LoadBalancer.
    • Tetapkan sumber ke alamat IP klien.

    Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah konektivitas.

Menonaktifkan pembuatan aturan firewall VPC untuk Layanan LoadBalancer Anda

Bagian ini menjelaskan langkah-langkah untuk menonaktifkan pembuatan otomatis aturan firewall VPC untuk Layanan LoadBalancer.

Membuat cluster GKE baru dengan pembuatan aturan firewall VPC yang dinonaktifkan

  1. Untuk menonaktifkan aturan firewall VPC yang dibuat secara otomatis untuk Layanan LoadBalancer di cluster yang baru dibuat, buat cluster dengan flag --disable-l4-lb-firewall-reconciliation:

    gcloud

    Autopilot:

    gcloud container clusters create-auto CLUSTER_NAME \
      --disable-l4-lb-firewall-reconciliation \
      --cluster-version=VERSION
    

    Standar:

    gcloud container clusters create CLUSTER_NAME \
      --disable-l4-lb-firewall-reconciliation \
      --enable-l4-ilb-subsetting \
      --cluster-version=VERSION
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster baru.
    • VERSION: versi GKE.

    Terraform

    Untuk membuat cluster dengan pembuatan aturan firewall VPC yang dinonaktifkan menggunakan Terraform, lihat contoh berikut:

    resource "google_container_cluster" "primary" {
      provider = google-beta
      name = CLUSTER_NAME
      location = ZONE
    
      enable-l4-ilb-subsetting = true
      disable_l4_lb_firewall_reconciliation = true
    }
    
  2. Buat Service LoadBalancer eksternal atau internal:

  3. Pastikan GKE tidak membuat aturan firewall izinkan traffic masuk untuk Layanan LoadBalancer. (Aturan firewall izinkan traffic masuk yang dibuat secara otomatis memiliki nama dalam bentuk berikut: k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]).

    Perintah berikut tidak menampilkan apa pun:

    gcloud compute firewall-rules list --format="value(name)" | grep "k8s2"
    

Memperbarui cluster GKE yang ada untuk menonaktifkan pembuatan aturan firewall VPC

Sebelum menonaktifkan pembuatan aturan firewall VPC, perhatikan poin-poin berikut tentang mengupdate cluster yang ada:

  • Saat Anda mengupdate cluster yang ada untuk menonaktifkan pembuatan aturan firewall VPC, GKE tidak akan menghapus aturan firewall yang ada yang dibuat secara otomatis oleh GKE untuk Layanan LoadBalancer Anda.
  • GKE berhenti mengupdate aturan yang ada dan tidak akan membuat aturan baru untuk Layanan LoadBalancer baru.
  • Untuk mengaktifkan kembali pembuatan aturan firewall VPC, Anda dapat menggunakan flag --enable-l4-lb-firewall-reconciliation dengan perintah gcloud_name container clusters update.

Untuk menonaktifkan pembuatan aturan firewall otomatis di cluster yang ada:

  1. Update cluster untuk menonaktifkan pembuatan dan pengelolaan otomatis aturan firewall untuk Layanan LoadBalancer:

    gcloud container clusters update CLUSTER_NAME \
    --disable-l4-lb-firewall-reconciliation \
    --cluster-version=supported_version
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster baru.
    • VERSION: versi GKE.
  2. Buat Service LoadBalancer eksternal atau internal:

  3. Pastikan GKE tidak membuat aturan firewall izinkan traffic masuk untuk Layanan LoadBalancer. (Aturan firewall izinkan traffic masuk yang dibuat secara otomatis memiliki nama dalam bentuk berikut: k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]).

    Perintah berikut tidak menampilkan apa pun:

    gcloud compute firewall-rules list --format="value(name)" | grep "k8s2"
    

Memecahkan masalah konektivitas

Contoh berikut mengilustrasikan cara menggunakan Uji Konektivitas Network Intelligence Center untuk menguji konektivitas ke LoadBalancer Service:cluster eksternal:

  • Network Intelligence Center:

    1. Di konsol Google Cloud, buka Network Intelligence Center dan mulai pengujian konektivitas baru.
    2. Dari menu drop-down, pilih Alamat IP publik eksternal apa pun sebagai sumber dan pilih load balancer dari tujuan.
    3. Jalankan kembali uji konektivitas.
  • gcloud CLI:

    Contoh perintah berikut membuat dan menjalankan pengujian dengan alamat IP publik workstation lokal Anda sebagai sumber dan alamat IP eksternal load balancer eksternal sebagai tujuan:

    gcloud network-management connectivity-tests create TEST_NAME \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --source-network-type=NON_GCP_NETWORK \
    --destination-ip-address=$(kubectl get svc LOADBALANCER_NAME -o jsonpath='{.status.loadBalancer.ingress[0].ip}') \
    --destination-port=$(kubectl get svc LOADBALANCER_NAME -o jsonpath='{.spec.ports[0].targetPort}') \
    --destination-network=projects/PROJECT_ID/global/networks/NETWORK_NAME
    

    Ganti kode berikut:

    • TEST_NAME: Nama untuk pengujian konektivitas.
    • SOURCE_IP_ADDRESS: Alamat IP sistem yang perlu terhubung ke Service LoadBalancer eksternal. Contohnya
    • LOADBALANCER_NAME: Nama Layanan LoadBalancer eksternal.
    • PROJECT_ID: Project ID project yang berisi jaringan VPC cluster. Jika cluster Anda menggunakan jaringan VPC Bersama, gunakan project ID project host.
    • NETWORK_NAME: Nama jaringan VPC cluster Anda.

    Periksa hasil pengujian:

    gcloud network-management connectivity-tests describe TEST_NAME
    

Langkah selanjutnya