Membuat layanan pemetaan port
Halaman ini menjelaskan cara produsen layanan dapat memublikasikan layanan yang menggunakan pemetaan port Private Service Connect.
Pemetaan port Private Service Connect memungkinkan instance virtual machine (VM) konsumen berkomunikasi secara pribadi dengan port layanan tertentu di VM produser tertentu melalui satu endpoint Private Service Connect.
Sebelum memulai
- Anda harus enable Compute Engine API di project Anda.
- Anda harus membuat VM untuk setiap endpoint jaringan yang ingin Anda pasang ke NEG pemetaan port. Semua VM harus berada di region yang sama.
- Baca Tentang layanan yang dipublikasikan.
- Baca Tentang pemetaan port Private Service Connect.
Peran yang diperlukan
Untuk mendapatkan izin yang perlu dipersiapkan untuk memublikasikan layanan dengan pemetaan port Private Service Connect, minta administrator untuk memberi Anda peran IAM berikut pada project produsen:
-
Admin Load Balancer Komputasi (
roles/compute.loadBalancerAdmin
) -
Admin Jaringan Komputasi (
roles/compute.networkAdmin
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat dan memublikasikan layanan pemetaan port
Layanan pemetaan port memiliki konfigurasi yang serupa dengan Load Balancer Jaringan passthrough internal, tetapi traffic tidak memiliki load balancing. Untuk membuat dan memublikasikan layanan pemetaan port, lakukan langkah berikut:
- Buat NEG pemetaan port
- Tambahkan endpoint jaringan ke NEG pemetaan port
- Membuat layanan pemetaan port
- Memublikasikan layanan pemetaan port
Buat NEG pemetaan port
NEG jaringan pemetaan port
adalah NEG regional dengan jenis endpoint jaringan GCE_VM_IP_PORTMAP
. Anda
tidak dapat mengubah jenis NEG pemetaan port setelah dibuat.
Saat membuat NEG pemetaan port, pilih subnet. Endpoint jaringan yang Anda kaitkan dengan NEG pemetaan port harus memiliki antarmuka jaringan utama di subnet ini.
Konsol
Di konsol Google Cloud, buka halaman Network Endpoint Groups.
Klik Create network endpoint group.
Masukkan Nama.
Klik Network endpoint group type, lalu pilih Port mapping NEG (Regional).
Pilih Region.
Pilih Network.
Pilih Subnetwork.
Klik Create.
gcloud
Gunakan
perintah network-endpoints-groups create
.
gcloud beta compute network-endpoint-groups create NEG \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET \ --network-endpoint-type=GCE_VM_IP_PORTMAP
Ganti kode berikut:
NEG
: nama NEG pemetaan portREGION
: wilayah NEG pemetaan portNETWORK
: jaringan VPC NEG pemetaan portSUBNET
: subnet NEG pemetaan port
API
Kirim permintaan POST
ke
metode regionNetworkEndpointGroups.insert
.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups { "name": "NEG", "networkEndpointType": "GCE_VM_IP_PORTMAP", "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" }
Ganti kode berikut:
PROJECT_ID
: project ID untuk NEG pemetaan portREGION
: wilayah NEG pemetaan portNEG
: nama NEG pemetaan portNETWORK
: jaringan VPC NEG pemetaan portSUBNET
: subnet NEG pemetaan port
Tambahkan endpoint jaringan ke NEG pemetaan port
Buat satu atau beberapa endpoint jaringan dengan pemetaan port dan lampirkan ke NEG pemetaan port.
Endpoint jaringan untuk NEG pemetaan port bersifat zona dan harus memenuhi persyaratan berikut:
- Setiap endpoint jaringan merujuk ke VM Compute Engine yang memiliki antarmuka jaringan utama di subnet yang sama dengan NEG pemetaan port.
- Setiap endpoint jaringan mengacu pada porta tujuan klien yang unik.
Setiap endpoint jaringan harus merujuk pada kombinasi unik port layanan dan VM.
Konsol
Di konsol Google Cloud, buka halaman Network Endpoint Groups.
Klik nama NEG pemetaan port yang ingin Anda perbarui.
Klik Add network endpoint.
Klik VM instance, lalu pilih VM.
Klik VM port 1, lalu masukkan port layanan.
Klik Port klien 1, lalu masukkan port tujuan klien.
Untuk setiap endpoint jaringan tambahan yang ingin Anda tambahkan, klik Add network endpoint, lalu masukkan detail endpoint jaringan.
Klik Create.
gcloud
Gunakan
perintah network-endpoint-groups update
. Sertakan flag --add-endpoint
untuk setiap
endpoint jaringan yang ingin Anda pasang.
gcloud beta compute network-endpoint-groups update NEG \ --region=REGION \ --add-endpoint=client-destination-port=CLIENT_DESTINATION_PORT_1,instance=projects/PROJECT_ID/zones/ZONE_1/instances/VM_1_NAME,port=VM_1_PORT \ --add-endpoint=client-destination-port=CLIENT_DESTINATION_PORT_2,instance=projects/PROJECT_ID/zones/ZONE_2/instances/VM_2_NAME,port=VM_2_PORT
Ganti kode berikut:
NEG
: nama NEG pemetaan portREGION
: wilayah NEG pemetaan portCLIENT_DESTINATION_PORT_1
: port tujuan klien endpoint jaringan pertamaPROJECT_ID
: project ID dari project produserZONE_1
: zona endpoint jaringan pertamaVM_1_NAME
: nama VM tujuan untuk endpoint jaringan pertamaVM_1_PORT
: port layanan endpoint jaringan pertamaCLIENT_DESTINATION_PORT_2
: port tujuan klien dari endpoint jaringan keduaZONE_2
: zona endpoint jaringan keduaVM_2_NAME
: nama VM tujuan untuk endpoint jaringan keduaVM_2_PORT
: port layanan endpoint jaringan kedua
API
Kirim permintaan POST
ke
metode regionNetworkEndpointGroups.attachNetworkEndpoints
.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups/NEG/attachNetworkEndpoints { "networkEndpoints": [ { "clientDestinationPort":CLIENT_DESTINATION_PORT_1, "instance": "projects/PROJECT_ID/zones/ZONE_1/instances/VM_1_NAME", "port": SERVICE_PORT_1 }, { "clientDestinationPort": CLIENT_DESTINATION_PORT_2, "instance": "projects/PROJECT_ID/zones/ZONE_2/instances/VM_2_NAME", "port": SERVICE_PORT_2 } ] }
Ganti kode berikut:
PROJECT_ID
: project ID dari project produserREGION
: wilayah NEG pemetaan portNEG
: nama NEG pemetaan portCLIENT_DESTINATION_PORT_1
: port tujuan klien endpoint jaringan pertamaZONE_1
: zona endpoint jaringan pertamaVM_1_NAME
: nama VM tujuan untuk endpoint jaringan pertamaSERVICE_PORT_1
: port layanan endpoint jaringan pertamaCLIENT_DESTINATION_PORT_2
: port tujuan klien dari endpoint jaringan keduaZONE_2
: zona endpoint jaringan keduaVM_2_NAME
: nama VM tujuan untuk endpoint jaringan keduaSERVICE_PORT_2
: port layanan endpoint jaringan kedua
Membuat layanan pemetaan port
Untuk membuat layanan pemetaan port, selesaikan langkah-langkah berikut.
Anda tidak dapat mengubah NEG pemetaan port yang dikaitkan dengan layanan backend setelah menambahkan NEG. Namun, Anda dapat memperbarui endpoint jaringan NEG pemetaan port.
Anda tidak dapat memperbarui koneksi aturan penerusan setelah dibuat. Jika Anda perlu terhubung ke layanan backend yang berbeda, hapus aturan penerusan, lalu buat yang baru.
Konsol
Memulai konfigurasi
Di Konsol Google Cloud, buka halaman Load balancing.
- Klik Create load balancer.
- Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL) dan klik Next.
- Untuk Proxy or passthrough, pilih Passthrough load balancer, lalu klik Next.
- Untuk Public facing or internal, pilih Internal lalu klik Next.
- Klik Konfigurasikan.
Konfigurasi dasar
- Masukkan Nama load balancer.
- Pilih Region.
- Pilih Network.
Konfigurasi backend
- Untuk Backend type, pilih Port mapping network endpoint group.
- Pilih Port mapping network endpoint group.
Konfigurasi frontend
- Klik Frontend configuration.
- Opsional: Masukkan Nama.
- Opsional: Masukkan Deskripsi..
- Pilih Protokol.
- Pilih Subnetwork.
- Klik Done.
- Klik Create.
gcloud
Untuk membuat layanan backend, gunakan perintah
backend-services create
.gcloud beta compute backend-services create SERVICE \ --load-balancing-scheme=internal \ --region=REGION \ --network=NETWORK
Ganti kode berikut:
SERVICE
: nama layanan backendREGION
: region layanan backendNETWORK
: jaringan VPC produsen layanan backend
Untuk menambahkan NEG pemetaan port ke layanan backend, gunakan perintah
backend-services add-backend
.Anda tidak dapat menambahkan beberapa NEG pemetaan port ke satu layanan backend.
gcloud beta compute backend-services add-backend SERVICE \ --network-endpoint-group=NEG \ --network-endpoint-group-region=REGION
Ganti
NEG
dengan nama NEG pemetaan port.Untuk membuat aturan penerusan bagi layanan pemetaan port, gunakan perintah
forwarding-rules create
.Aturan penerusan harus dikonfigurasi guna meneruskan traffic untuk semua port tujuan klien.
gcloud beta compute forwarding-rules create RULE \ --load-balancing-scheme=INTERNAL \ --ip-protocol=PROTOCOL \ --network=NETWORK \ --subnet=SUBNET \ --address=IP_ADDRESS \ --ports=ALL \ --region=REGION \ --backend-service=SERVICE
Ganti kode berikut:
RULE
: nama aturan penerusanPROTOCOL
: protokol aturan penerusan, yang dapat berupaTCP
atauUDP
SUBNET
: subnet produser, yang harus berupa subnet yang sama dengan yang terkait dengan NEG pemetaan portIP_ADDRESS
: alamat IP aturan penerusan, yang harus berasal dari rentang alamat IP subnet produsen
API
Untuk membuat layanan backend, kirim permintaan
POST
ke metoderegionBackendServices.insert
.POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices { "name": "SERVICE", "loadBalancingScheme": "INTERNAL", "network": "projects/PROJECT_ID/global/networks/NETWORK" }
Ganti kode berikut:
PROJECT_ID
: ID project layanan backendREGION
: region layanan backendSERVICE
: nama layanan backendNETWORK
: jaringan VPC produsen
Untuk menambahkan NEG pemetaan port ke layanan backend, kirim permintaan
PATCH
ke metoderegionBackendServices.patch
.Anda tidak dapat menambahkan beberapa NEG pemetaan port ke satu layanan backend.
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/SERVICE { "backends": [ { "group": "https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/networkEndpointGroups/NEG" } ] }
Ganti
NEG
dengan nama NEG pemetaan port Anda.Agar dapat membuat aturan penerusan untuk layanan pemetaan port Anda, kirim permintaan
POST
ke metodeforwardingRules.insert
.Aturan penerusan harus dikonfigurasi guna meneruskan traffic untuk semua port tujuan klien.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID>/regions/REGION/forwardingRules { "name": "RULE", "loadBalancingScheme": "INTERNAL", "IPProtocol": "PROTOCOL", "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET", "IPAddress": "IP_ADDRESS", "allPorts": true, "backendService": "projects/PROJECT_ID/regions/REGION/backendServices/SERVICE" }
Ganti kode berikut:
RULE
: nama aturan penerusanPROTOCOL
: protokol aturan penerusan, yang dapat berupaTCP
atauUDP
SUBNET
: subnet produser, yang harus berupa subnet yang sama dengan yang terkait dengan NEG pemetaan portIP_ADDRESS
: alamat IP aturan penerusan, yang harus berasal dari rentang alamat IP subnet produsen
Memublikasikan layanan pemetaan port
Agar layanan pemetaan port Anda tersedia bagi konsumen, publikasikan layanan dengan membuat lampiran layanan. Saat membuat lampiran layanan, tentukan aturan penerusan yang terkait dengan layanan pemetaan port Anda.