Ringkasan
Dalam kasus penggunaan ini, kita akan membuat gateway Cloud NAT dengan beberapa IP keluar yang ditetapkan. Gateway ini akan mengirimkan traffic keluar dari pod dan VM yang cocok dengan label pencocokan yang dikonfigurasi di gateway. Gateway akan otomatis menetapkan IP keluar ke setiap endpoint yang dapat keluar dari traffic melalui gateway tersebut.

Prasyarat
Sebelum menyiapkan gateway, Anda harus mendapatkan izin Identity and Access Management (IAM) yang sesuai, memastikan project Anda memiliki kebijakan jaringan yang sesuai, dan mengaktifkan keluar.
Lihat Sebelum Anda memulai dengan Cloud NAT untuk mengetahui detailnya.
Gateway Cloud NAT menggunakan subnet leaf eksternal sebagai input. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi subnet eksternal untuk Cloud NAT, lihat Membuat subnet eksternal untuk Cloud NAT.
Memastikan konfigurasi pod atau VM yang kompatibel
Seperti yang disebutkan dalam Ringkasan NAT, Cloud NAT tidak kompatibel
dengan konfigurasi keluar project default. Pastikan pod atau VM yang ingin Anda gunakan dengan Cloud NAT TIDAK memiliki label egress.networking.gke.io/enabled:true.
Secara default, konfigurasi Akses Eksternal Mesin Virtual (VMEA) mengonfigurasi VM untuk keluar dari
traffic menggunakan konfigurasi keluar project default. Dengan kata lain, label egress.networking.gke.io/enabled:"true" akan otomatis ditambahkan ke VM. Jika VM tersebut dikonfigurasi untuk keluar dari traffic menggunakan gateway Cloud NAT juga, hal ini akan menyebabkan konflik antara konfigurasi NAT. Untuk menghindari tabrakan ini: untuk setiap VMEA yang terkait dengan VM yang dikonfigurasi untuk keluar dari traffic melalui gateway Cloud NAT, pastikan VMEA yang terkait dengan VM tersebut memiliki anotasi egress.networking.gke.io/use-cloud-nat:"true".
VM terkait kemudian akan mengirimkan traffic keluar secara eksklusif melalui
gateway Cloud NAT.
Buat gateway Cloud NAT
Contoh berikut menentukan gateway Cloud NAT dengan dua subnet leaf eksternal (subnet-1 dan subnet-2). Gateway akan menggunakan semua IP di subnet tersebut, satu dari subnet-1 dan empat dari subnet-2, dan secara otomatis menetapkannya ke endpoint dari setiap VM atau pod dengan label yang ditentukan. Beberapa pod atau VM
dapat mendapatkan IP keluar yang sama yang ditetapkan.
apiVersion: networking.gdc.goog/v1
kind: CloudNATGateway
metadata:
namespace: project-1
name: gateway-1
spec:
workloadSelector: # Immutable
labelSelector:
workloads:
matchLabels:
app: aa
subnetRefs: # Mutable
- subnet-1
- subnet-2
Periksa status gateway
Periksa status gateway dengan menjalankan perintah kubectl berikut.
export MGMT_KUBECONFIG=<path_to_management_kubeconfig>
kubectl get cloudnatgateways gateway-1 -n project-1 --kubeconfig "${MGMT_KUBECONFIG:?}"
Jika dikonfigurasi dengan benar, kolom kondisi status gateway Cloud NAT
akan menampilkan kondisi jenis Ready yang ditetapkan ke true dan subnet
yang ditandai sebagai OK, seperti yang ditunjukkan pada contoh output berikut.
apiVersion: networking.gdc.goog/v1
kind: CloudNATGateway
metadata:
namespace: project-1
name: gateway-1
spec:
workloadSelector:
labelSelector:
workloads:
matchLabels:
app: aa
subnetRefs:
- subnet-1
- subnet-2
status:
conditions:
- lastTransitionTime: "2025-08-20T21:31:36Z"
message: ""
observedGeneration: 1
reason: Ready
status: "True"
type: Ready
- lastTransitionTime: "2025-08-20T21:31:36Z"
message: ""
observedGeneration: 1
reason: Ready
status: "True"
type: SubnetsReady
- lastTransitionTime: "2025-08-20T21:31:36Z"
message: ""
observedGeneration: 1
reason: Ready
status: "True"
type: PerimeterConfigurationReady
- lastTransitionTime: "2025-08-20T21:31:36Z"
message: ""
observedGeneration: 1
reason: Ready
status: "True"
type: EgressRoutesReady
subnets:
- name: subnet-1
status: OK
- name: subnet-2
status: OK
Status gateway Cloud NAT berisi 4 kondisi dari jenis berikut:
Ready: Kondisi ini merangkum status gateway Cloud NAT. Kondisi ini ditetapkan ke benar jika gateway telah disiapkan sepenuhnya.SubnetsReady: Kondisi ini menunjukkan apakah subnet yang ditetapkan ke gateway valid.PerimeterConfigurationReady: Kondisi ini menunjukkan apakah konfigurasi perimeter telah dikonfigurasi (misalnya, IP eksternal yang ditetapkan ke node yang menghadap eksternal, dll.).EgressRoutesReady: Kondisi ini menunjukkan apakah rute untuk keluar traffic dari endpoint sumber telah dikonfigurasi.
Traffic Pengujian
Kita dapat menguji traffic dengan mengeluarkan perintah curl dari salah satu pod atau VM yang ditetapkan ke gateway menuju endpoint eksternal. Endpoint penerima
akan melihat salah satu IP keluar yang terkait dengan gateway.