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 konsumen Instance virtual machine (VM) berkomunikasi secara pribadi dengan port layanan tertentu pada VM produser tertentu melalui endpoint Private Service Connect tunggal.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk mempublikasikan layanan dengan pemetaan porta Private Service Connect, minta administrator untuk memberi Anda peran IAM berikut pada project produser:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

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 mirip dengan Load Balancer Jaringan passthrough internal, tetapi traffic tidak diseimbangkan (load balanced). Untuk membuat dan memublikasikan layanan pemetaan port, lakukan hal 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. Penting tidak mungkin mengubah jenis NEG pemetaan port setelah dibuat.

Saat membuat NEG pemetaan port, pilih subnet. Endpoint jaringan yang yang Anda kaitkan dengan NEG pemetaan port harus memiliki antarmuka jaringan utama di subnet ini.

Konsol

  1. Di konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Grup Endpoint Jaringan

  2. Klik Create network endpoint group.

  3. Masukkan Nama.

  4. Klik Network endpoint group type, lalu pilih NEG pemetaan port (Regional).

  5. Pilih Region.

  6. Pilih Network.

  7. Pilih Subnetwork.

  8. 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 port
  • REGION: wilayah NEG pemetaan port
  • NETWORK: jaringan VPC NEG pemetaan port
  • SUBNET: 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 pemetaan port NEG
  • REGION: wilayah NEG pemetaan port
  • NEG: nama NEG pemetaan port
  • NETWORK: jaringan VPC NEG pemetaan port
  • SUBNET: subnet NEG pemetaan port

Tambahkan endpoint jaringan ke NEG pemetaan port

Membuat satu atau beberapa endpoint jaringan dengan pemetaan port dan menghubungkannya ke NEG pemetaan port.

Endpoint jaringan untuk NEG pemetaan port bersifat zona dan harus memenuhi hal berikut persyaratan:

  • Setiap endpoint jaringan mengacu pada VM Compute Engine yang memiliki antarmuka jaringan utama di subnet yang sama dengan NEG yang memetakan port.
  • Setiap endpoint jaringan mengacu pada porta tujuan klien yang unik.
  • Setiap endpoint jaringan harus mengacu pada kombinasi unik port layanan dan VM.

Konsol

  1. Di konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Grup Endpoint Jaringan

  2. Klik nama NEG pemetaan port yang ingin Anda perbarui.

  3. Klik Add network endpoint.

  4. Klik VM instance, lalu pilih VM.

  5. Klik VM port 1, lalu masukkan port layanan.

  6. Klik Port klien 1, lalu masukkan port tujuan klien.

  7. Untuk setiap endpoint jaringan tambahan yang ingin Anda tambahkan, klik Tambahkan endpoint jaringan, lalu masukkan detail endpoint jaringan.

  8. Klik Create.

gcloud

Gunakan perintah network-endpoint-groups update. Sertakan flag --add-endpoint untuk setiap elemen 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 port
  • REGION: wilayah NEG pemetaan port
  • CLIENT_DESTINATION_PORT_1: tujuan klien porta endpoint jaringan pertama
  • PROJECT_ID: project ID produsen rencana
  • ZONE_1: zona endpoint jaringan pertama
  • VM_1_NAME: nama VM tujuan untuk endpoint jaringan pertama
  • VM_1_PORT: port layanan resource pertama endpoint jaringan
  • CLIENT_DESTINATION_PORT_2: port tujuan klien endpoint jaringan kedua
  • ZONE_2: zona endpoint jaringan kedua
  • VM_2_NAME: nama VM tujuan untuk endpoint jaringan kedua
  • VM_2_PORT: port layanan kedua endpoint jaringan

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 produsen rencana
  • REGION: wilayah NEG pemetaan port
  • NEG: nama NEG pemetaan port
  • CLIENT_DESTINATION_PORT_1: tujuan klien porta endpoint jaringan pertama
  • ZONE_1: zona endpoint jaringan pertama
  • VM_1_NAME: nama VM tujuan untuk endpoint jaringan pertama
  • SERVICE_PORT_1: port layanan resource pertama endpoint jaringan
  • CLIENT_DESTINATION_PORT_2: tujuan klien porta endpoint jaringan kedua
  • ZONE_2: zona endpoint jaringan kedua
  • VM_2_NAME: nama VM tujuan untuk endpoint jaringan kedua
  • SERVICE_PORT_2: port layanan kedua endpoint jaringan

Membuat layanan pemetaan port

Untuk membuat layanan pemetaan port, selesaikan langkah-langkah berikut.

Anda tidak dapat mengubah NEG pemetaan port yang terkait dengan layanan backend setelah Anda menambahkan NEG. Namun, Anda dapat perbarui 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, dan kemudian membuat yang baru.

Konsol

Memulai konfigurasi

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Muat balancing

  2. Klik Create load balancer.
  3. Untuk Jenis load balancer, pilih Load Balancer Jaringan (TCP/UDP/SSL) dan klik Berikutnya.
  4. Untuk Proxy or passthrough, pilih Passthrough load load balancer dan klik Berikutnya.
  5. Untuk Publik atau internal, pilih Internal lalu klik Next.
  6. Klik Konfigurasikan.

Konfigurasi dasar

  1. Masukkan Nama load balancer.
  2. Pilih Region.
  3. Pilih Network.

Konfigurasi backend

  1. Untuk Backend type, pilih Port mapping network endpoint group.
  2. Pilih Port mapping network endpoint group.

Konfigurasi frontend

  1. Klik Frontend configuration.
  2. Opsional: Masukkan Nama.
  3. Opsional: Masukkan Deskripsi..
  4. Pilih Protokol.
  5. Pilih Subnetwork.
  6. Klik Done.
  7. Klik Create.

gcloud

  1. Untuk membuat layanan backend, gunakan metode 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 backend
    • REGION: region layanan backend
    • NETWORK: VPC produsen jaringan layanan backend
  2. 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 pemetaan port NEG.

  3. Untuk membuat aturan penerusan bagi layanan pemetaan port, gunakan metode Perintah forwarding-rules create.

    Aturan penerusan harus dikonfigurasikan untuk meneruskan traffic untuk semua porta 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 penerusan
    • PROTOCOL: protokol aturan penerusan, yang dapat berupa TCP atau UDP
    • SUBNET: subnet produsen, yang harus subnet yang sama dengan yang terkait dengan pemetaan port NEG
    • IP_ADDRESS: alamat IP penerusan , yang harus berasal dari rentang alamat IP produsen {i>subnet<i}

API

  1. Untuk membuat layanan backend, kirim permintaan POST ke Metode regionBackendServices.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 layanan backend rencana
    • REGION: region layanan backend
    • SERVICE: nama layanan backend
    • NETWORK: VPC produsen jaringan
  2. Untuk menambahkan NEG pemetaan port ke layanan backend, kirim PATCH permintaan ke Metode regionBackendServices.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 port Anda NEG pemetaan.

  3. Untuk membuat aturan penerusan bagi layanan pemetaan port, kirim POST permintaan ke Metode forwardingRules.insert.

    Aturan penerusan harus dikonfigurasikan untuk meneruskan traffic untuk semua porta 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 penerusan
    • PROTOCOL: protokol aturan penerusan, yang dapat berupa TCP atau UDP
    • SUBNET: subnet produsen, yang harus subnet yang sama dengan yang terkait dengan pemetaan port NEG
    • IP_ADDRESS: alamat IP penerusan , yang harus berasal dari rentang alamat IP subnet produsen

Memublikasikan layanan pemetaan port

Agar layanan pemetaan port Anda tersedia bagi konsumen, memublikasikan layanan dengan membuat lampiran layanan. Saat Anda membuat lampiran layanan, menentukan aturan penerusan yang terkait dengan layanan pemetaan porta Anda.

Langkah selanjutnya