Halaman ini menjelaskan konfigurasi NAT egress default project yang kini tidak digunakan lagi, yang dapat digunakan untuk memungkinkan beban kerja terhubung di luar organisasi. Halaman ini juga berisi petunjuk tentang cara bermigrasi ke solusi yang direkomendasikan, Cloud NAT.
Ringkasan
Halaman ini menjelaskan tindakan konektivitas keluar yang harus Anda lakukan pada virtual machine (VM) atau pod dalam project agar beban kerja dapat keluar dari organisasi, menggunakan opsi konfigurasi NAT keluar default project (yang tidak digunakan lagi).
Prosedur ini menunjukkan cara menambahkan label yang diperlukan ke deployment untuk secara eksplisit mengaktifkan traffic keluar dan memungkinkan workload berkomunikasi di luar organisasi.
Secara default, Google Distributed Cloud (GDC) dengan air gap memblokir workload dalam project agar tidak keluar dari organisasi. Beban kerja dapat keluar dari organisasi jika Administrator Platform (PA) Anda telah menonaktifkan perlindungan eksfiltrasi data untuk project. PA dapat melakukannya dengan melampirkan label
networking.gdc.goog/enable-default-egress-allow-to-outside-the-org: "true" ke
project. Selain menonaktifkan perlindungan eksfiltrasi data, Operator Aplikasi (AO) harus menambahkan label egress.networking.gke.io/enabled:
true pada workload pod untuk mengaktifkan konektivitas keluar bagi pod tersebut. Saat Anda mengalokasikan dan menggunakan alamat IP terkenal untuk project, alamat IP tersebut akan melakukan terjemahan alamat jaringan (NAT) sumber pada traffic keluar dari organisasi.
Anda dapat mengelola konektivitas keluar dari workload di pod atau VM.
Mengelola traffic keluar dari workload dalam pod
Untuk mengonfigurasi workload dalam pod untuk konektivitas keluar, pertama-tama Anda harus memastikan
perlindungan pemindahan data dinonaktifkan untuk
project.
Kemudian, pastikan label egress.networking.gke.io/enabled: true ditambahkan di pod. Jika Anda menggunakan konstruksi tingkat yang lebih tinggi seperti konstruksi Deployment atau Daemonset untuk mengelola kumpulan pod, Anda harus mengonfigurasi label pod dalam spesifikasi tersebut.
Contoh berikut menunjukkan cara membuat Deployment dari file manifesnya.
File contoh berisi nilai egress.networking.gke.io/enabled: true di kolom labels untuk mengaktifkan traffic keluar dari project secara eksplisit. Label
ini ditambahkan ke setiap pod dalam deployment dan memungkinkan beban kerja di pod
keluar dari organisasi.
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \
apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: DEPLOYMENT_NAME
spec:
replicas: NUMBER_OF_REPLICAS
selector:
matchLabels:
run: APP_NAME
template:
metadata:
labels: # The labels given to each pod in the deployment, which are used
# to manage all pods in the deployment.
run: APP_NAME
egress.networking.gke.io/enabled: true
spec: # The pod specification, which defines how each pod runs in the deployment.
containers:
- name: CONTAINER_NAME
image: CONTAINER_IMAGE
EOF
Ganti kode berikut:
USER_CLUSTER_KUBECONFIG: file kubeconfig untuk cluster pengguna tempat Anda men-deploy workload container.DEPLOYMENT_NAME: file kubeconfig untuk cluster pengguna tempat Anda men-deploy workload container.APP_NAME: nama aplikasi yang akan dijalankan dalam deployment.NUMBER_OF_REPLICAS: jumlah objekPodreplika yang dikelola deployment.CONTAINER_NAME: nama container.CONTAINER_IMAGE: nama image container. Anda harus menyertakan jalur registry container dan versi image, sepertiREGISTRY_PATH/hello-app:1.0.
Contoh:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
run: my-app
template:
metadata:
labels:
run: my-app
egress.networking.gke.io/enabled: true
spec:
containers:
- name: hello-app
image: REGISTRY_PATH/hello-app:1.0
Mengelola traffic keluar dari workload di VM
Untuk mengonfigurasi workload di VM untuk konektivitas keluar, Anda dapat menggunakan
konsol GDC untuk konfigurasi VM atau membuat resource
VirtualMachineExternalAccess. Untuk mengetahui informasi tentang cara mengaktifkan VM dengan akses eksternal untuk transfer data, lihat Mengaktifkan akses eksternal di bagian Terhubung ke VM.
Bermigrasi ke Cloud NAT
Dengan tersedianya Cloud NAT di versi 1.15, konfigurasi NAT keluar project default per project menjadi tidak digunakan lagi. Pengguna sebaiknya memigrasikan konfigurasi egress mereka dari konfigurasi NAT egress project default ke Cloud NAT.
NAT egress project default dan Cloud NAT tidak kompatibel satu sama lain. Dengan kata lain, endpoint pod atau VM tertentu hanya dapat menggunakan salah satu dari keduanya. Untuk memigrasikan endpoint dari satu konfigurasi ke konfigurasi lainnya, Anda harus menonaktifkannya dari satu konfigurasi, lalu mengaktifkannya di konfigurasi lainnya.
Untuk memulai migrasi, nonaktifkan konfigurasi lama dari endpoint yang ingin Anda migrasikan. Ada dua cara untuk melakukannya:
- Menonaktifkan NAT keluar default project untuk seluruh project: nonaktifkan NAT keluar default project untuk semua endpoint yang ada dalam project dengan menetapkan label
networking.gdc.goog/allocate-egress-ip: "false"ke project. - Menonaktifkan NAT keluar default project per endpoint: nonaktifkan NAT keluar default project untuk endpoint pod atau VM tertentu dengan menghapus label
egress.networking.gke.io/enabled:"true"dari pod atau VM.
Untuk melanjutkan migrasi, setiap endpoint yang dihapus dari NAT egress default dapat ditambahkan ke gateway Cloud NAT dengan menambahkan label ke endpoint yang cocok dengan pemilih label gateway yang dipilih.
Lihat Cloud NAT dan halaman berikut untuk mengetahui petunjuk cara menyiapkan Cloud NAT.
Pelacakan IP keluar
Dengan NAT keluar default, IP keluar yang digunakan untuk traffic keluar NAT disertakan dalam status Project. Dengan Cloud NAT, objek Project tidak akan berisi IP keluar. Sebagai gantinya, pengguna akan dapat mencantumkan IP yang digunakan oleh gateway Cloud NAT dengan mencantumkan subnet yang ditetapkan ke gateway.