Looker PSC Southbound HTTPS Internet NEG Gitlab Self-Managed

Tentang codelab ini
schedule41 menit
subjectTerakhir diperbarui 2 April 2025
account_circleDitulis oleh Deepak Michael

Dalam codelab ini, Anda akan melakukan koneksi HTTPS southbound ke lingkungan GitLab Self-Managed menggunakan load balancer proxy tcp internal dan grup endpoint jaringan internet (NEG) yang dipanggil dari Looker PSC sebagai Konsumen Layanan.

Private Service Connect adalah kemampuan jaringan Google Cloud yang memungkinkan konsumen mengakses layanan terkelola secara pribadi dari dalam jaringan VPC mereka. Demikian pula, hal ini memungkinkan produsen layanan terkelola menghosting layanan ini di jaringan VPC masing-masing yang terpisah dan menawarkan koneksi pribadi kepada konsumen mereka. Misalnya, saat menggunakan Private Service Connect untuk mengakses Looker, Anda adalah konsumen layanan, dan Google adalah produsen layanan, seperti yang ditandai pada Gambar 1.

Gambar 1.

145ea4672c3a3b14.png

Akses southbound, yang juga dikenal sebagai PSC terbalik, memungkinkan konsumen membuat Layanan yang Dipublikasikan sebagai Produsen untuk mengizinkan Looker mengakses endpoint di lokasi, di VPC, ke layanan terkelola, dan Internet. Koneksi southbound dapat di-deploy di region mana pun, terlepas dari tempat Looker PSC di-deploy, seperti yang ditandai pada Gambar 2.

Gambar 2.

61932a992ba9b6f4.png

Yang akan Anda pelajari

  • Persyaratan jaringan
  • Membuat layanan produsen Private Service Connect
  • Membuat endpoint Private Service Connect di Looker
  • Membangun konektivitas ke instance GitLab Self-Managed

Yang Anda butuhkan

def88091b42bfe4d.png

2. Yang akan Anda build

Anda akan membuat jaringan Produsen, looker-psc-demo, untuk men-deploy load balancer proxy tcp internal dan NEG Internet yang dipublikasikan sebagai layanan melalui Private Service Connect (PSC). Setelah dipublikasikan, Anda akan melakukan tindakan berikut untuk memvalidasi akses ke layanan Produsen:

  • Membuat Endpoint PSC di Looker yang terkait dengan Lampiran Layanan Produsen
  • Gunakan Konsol Looker untuk membuat project baru dan menguji konektivitas HTTPS ke lingkungan GitLab Mandiri Anda.

3. Persyaratan jaringan

Berikut adalah perincian persyaratan jaringan untuk jaringan Produsen, konsumen dalam codelab ini adalah instance PSC Looker.

Komponen

Deskripsi

VPC (looker-psc-demo)

VPC mode kustom

Subnet NAT PSC

Paket dari jaringan VPC konsumen diterjemahkan menggunakan NAT sumber (SNAT) sehingga alamat IP sumber aslinya dikonversi menjadi alamat IP sumber dari subnet NAT di jaringan VPC produsen.

Subnet aturan penerusan PSC

Digunakan untuk mengalokasikan alamat IP untuk Load Balancer Proxy TCP Internal Regional

Subnet NEG PSC

Digunakan untuk mengalokasikan alamat IP untuk Grup Endpoint Jaringan

Subnet Khusus Proxy

Setiap proxy load balancer diberi alamat IP internal. Paket yang dikirim dari proxy ke VM atau endpoint backend memiliki alamat IP sumber dari subnet khusus proxy.

NEG Internet

Resource yang digunakan untuk menentukan backend eksternal untuk load balancer yang dikonfigurasi sebagai FQDN yang menunjukkan FQDN on-premise Gitlab yang Dikelola Sendiri. FQDN internet melakukan pencarian DNS dalam VPC untuk resolusi.

Layanan Backend

Layanan backend bertindak sebagai jembatan antara load balancer dan resource backend Anda. Dalam tutorial ini, layanan backend dikaitkan dengan NEG Internet.

4. Topologi codelab

34950ed6ef504309.png

5. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:

55efc1aaa7a4d3ad.png

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

7ffe5cbb04455448.png

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.

6. Sebelum memulai

Mengaktifkan API

Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Aktifkan semua layanan yang diperlukan:

gcloud services enable compute.googleapis.com

7. Membuat Jaringan VPC Produsen

Jaringan VPC

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks create looker-psc-demo --subnet-mode custom

Membuat Subnet

Subnet PSC akan dikaitkan dengan Lampiran Layanan PSC untuk tujuan Penafsiran Alamat Jaringan.

Di dalam Cloud Shell, buat Subnet NAT PSC:

gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

Di dalam Cloud Shell, buat subnet aturan penerusan produsen:

gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Di dalam Cloud Shell, buat subnet khusus proxy regional produsen:

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

Mencadangkan alamat IP load balancer

Di dalam Cloud Shell, cadangkan alamat IP internal untuk load balancer:

gcloud compute addresses create internet-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

Di dalam Cloud Shell, lihat Alamat IP yang dicadangkan.

gcloud compute addresses describe internet-neg-lb-ip \
  --region=$region | grep -i address:

Contoh output:

user@cloudshell$ gcloud compute addresses describe internet-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

Menyiapkan NEG Internet

Buat NEG Internet, dan tetapkan –network-endpoint-type ke internet-fqdn-port (nama host dan port tempat backend eksternal Anda dapat dijangkau).

Di dalam Cloud Shell, buat NEG Internet yang digunakan untuk mengakses instance Gitlab Self-Managed, gitlabonprem.com.

gcloud compute network-endpoint-groups create gitlab-self-managed-internet-neg \
    --network-endpoint-type=INTERNET_FQDN_PORT \
    --network=looker-psc-demo \
    --region=$region

Di dalam Cloud Shell, perbarui NEG Internet gitlab-self-managed-internet-neg dengan FQDN gitlabonprem.com dan port 443

gcloud compute network-endpoint-groups update gitlab-self-managed-internet-neg \
    --add-endpoint="fqdn=gitlabonprem.com,port=443" \
    --region=$region

Membuat Aturan Firewall Jaringan

Untuk mengizinkan IAP terhubung ke instance VM Anda, buat aturan firewall yang:

  • Berlaku untuk semua instance VM yang ingin Anda akses menggunakan IAP.
  • Mengizinkan traffic masuk dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.

Di Cloud Shell, buat aturan firewall IAP.

gcloud compute firewall-rules create ssh-iap-looker-psc-demo \
    --network looker-psc-demo \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

8. Membuat Layanan Produsen

Membuat Komponen Load Balancer

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute backend-services create producer-backend-svc  --protocol=tcp --region=$region --load-balancing-scheme=INTERNAL_MANAGED

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=gitlab-self-managed-internet-neg --network-endpoint-group-region=$region --region=$region

Di Cloud Shell, Buat proxy TCP target untuk merutekan permintaan ke layanan backend Anda:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

Dalam sintaksis berikut, buat aturan penerusan (load balancer proxy tcp internal).

Di Cloud Shell, lakukan hal berikut:

gcloud compute forwarding-rules create producer-gitlab-self-managed-fr\
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=internet-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=443

Buat Lampiran Layanan

Di dalam Cloud Shell, buat Lampiran Layanan, gitlab-self-managed-svc-attachment-https, dengan persetujuan otomatis yang memungkinkan konektivitas Looker Core ke lampiran layanan. Jika Anda ingin mengontrol akses ke lampiran layanan, opsi persetujuan eksplisit didukung.

gcloud compute service-attachments create gitlab-self-managed-svc-attachment-https --region=$region --producer-forwarding-rule=producer-gitlab-self-managed-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

Selanjutnya, dapatkan dan catat Lampiran Layanan yang tercantum di URI selfLink yang dimulai dengan project untuk mengonfigurasi endpoint PSC di Looker.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/gitlab-self-managed-svc-attachment-https

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute service-attachments describe gitlab-self-managed-svc-attachment-https --region=$region

Contoh:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-03-04T18:55:42.254-08:00'
description: ''
enableProxyProtocol: false
fingerprint: MlY9GLLGsgE=
id: '9103522880241140673'
kind: compute#serviceAttachment
name: gitlab-self-managed-svc-attachment-https
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '115404658846991336'
  low: '9103522880241140673'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/serviceAttachments/gitlab-self-managed-svc-attachment-https
targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/forwardingRules/producer-gitlab-self-managed-fr

Di Cloud Console, buka:

Layanan Jaringan → Private Service Connect → Layanan yang Dipublikasikan

6fa12f77e4640b08.png

43987fabbabb41ad.png

9. Membuat Koneksi Endpoint PSC di Looker

Di bagian berikut, Anda akan mengaitkan Lampiran Layanan Produsen dengan PSC Looker Core melalui penggunaan flag –psc-service-attachment di Cloud Shell untuk satu domain.

Di dalam Cloud Shell, buat pengaitan psc dengan memperbarui parameter berikut agar cocok dengan lingkungan Anda:

  • INSTANCE_NAME: Nama instance Looker (Google Cloud core) Anda.
  • DOMAIN_1: gitlabonprem.com
  • SERVICE_ATTACHMENT_1: URI yang diambil saat mendeskripsikan Lampiran Layanan, gitlab-self-managed-svc-attachment-https.
  • REGION: Region tempat instance Looker (Google Cloud core) Anda dihosting.

Di dalam Cloud Shell, lakukan hal berikut:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Contoh:

gcloud looker instances update looker-psc-instance \
--psc-service-attachment  domain=gitlabonprem.com,attachment=projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https \
--region=$region

Di dalam Cloud Shell, validasi connectionStatus serviceAttachments adalah "ACCEPTED", perbarui dengan INSTANCE_NAME PSC Looker Anda

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Contoh:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Contoh:

{
  "adminSettings": {},
  "createTime": "2024-08-23T00:00:45.339063195Z",
  "customDomain": {
    "domain": "cosmopup.looker.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.12.28",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
    "projects/$project/global/networks/looker-psc-demo"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "gitlabonprem.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/gitlab-self-managed-svc-attachment-https"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-08-30T17:47:33.440271635Z"
}

Memvalidasi endpoint PSC di Cloud Console

Dari Cloud Console, Anda dapat memvalidasi Koneksi PSC

Di Cloud Console, buka:

Looker → Instance Looker → Detail

2d4684d722d31e4b.png

2d600f33dc61cb6d.png

10. resolusi DNS

Di bagian berikut, buat instance GCE dan validasi resolusi DNS ke instance Gitlab Self-Managed, gitlabonprem.com dengan melakukan PING. Seperti yang diharapkan, resolusi akan gagal karena memerlukan zona DNS Pribadi untuk gitlabonprem.com.

11. Membuat Instance GCE

Di dalam Cloud Shell, buat instance GCE yang digunakan untuk memvalidasi resolusi DNS.

gcloud compute instances create gce-dns-lookup \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=producer-psc-fr-subnet

Login ke consumer-vm menggunakan IAP di Cloud Shell untuk memvalidasi konektivitas ke layanan produsen dengan melakukan curl. Coba lagi jika waktu tunggu habis.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

Dari OS, lakukan PING ke gitlabonprem.com, kegagalan akan terjadi.

ping gitlabonprem.com

Contoh:

user@gce-dns-lookup:~$ ping gitlabonprem.com
ping: gitlabonprem.com: Name or service not known

Keluar dari OS, yang akan mengembalikan Anda ke terminal Cloud Shell.

exit

12. Membuat Zona DNS Pribadi

Di dalam Cloud Shell, buat Zona Pribadi Cloud DNS.

gcloud dns --project=$projectid managed-zones create gitlab-self-managed --description="" --dns-name="gitlabonprem.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"

Di dalam Cloud Shell, buat data A yang terdiri dari Alamat IP instance Gitlab yang Dikelola Sendiri, 192.168.10.4.

gcloud dns --project=$projectid record-sets create gitlabonprem.com. --zone="gitlab-self-managed" --type="A" --ttl="300" --rrdatas="192.168.10.4"

Login ke consumer-vm menggunakan IAP di Cloud Shell untuk memvalidasi konektivitas ke layanan produsen dengan melakukan curl. Coba lagi jika waktu tunggu habis.

gcloud compute ssh gce-dns-lookup --project=$projectid --zone=us-central1-a --tunnel-through-iap

Dari OS, lakukan PING ke gitlabonprem.com, yang di-resolve ke 192.168.10.4.

ping gitlabonprem.com

Contoh:

user@gce-dns-lookup:~$ ping gitlabonprem.com
PING gitlabonprem.com (192.168.10.4) 56(84) bytes of data

Keluar dari OS, yang akan mengembalikan Anda ke terminal Cloud Shell.

exit

13. Konektivitas Hybrid

FQDN gitlabonprem.com kini dapat di-resolve dengan Alamat IP pribadi yang dihosting di lokal. Selanjutnya, jaringan hybrid (misalnya, Interconnect, HA-VPN) harus dikonfigurasi antara VPC looker-psc-demo dan jaringan lokal untuk mengaktifkan konektivitas.

Berikut adalah langkah-langkah yang diperlukan untuk membuat konektivitas NEG Hybrid ke lokasi on-premise:

14. Menguji Konektivitas

Pada langkah-langkah berikut, Anda akan menggunakan Konsol Looker untuk membuat project guna memvalidasi konektivitas HTTPS ke gitlabonprem.com menggunakan prosedur yang diuraikan dalam Menyiapkan dan menguji koneksi Git.

ae3b3884e8ef5db8.png

15. Pembersihan

Menghapus komponen lab dari satu terminal Cloud Shell

gcloud compute service-attachments delete gitlab-self-managed-svc-attachment-https --region=$region -q

gcloud compute forwarding-rules delete producer-gitlab-self-managed-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-endpoint-groups delete gitlab-self-managed-internet-neg --region=$region -q

gcloud compute instances delete gce-dns-lookup --zone=us-central1-a -q

gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-nat-subnet $region-proxy-only-subnet --region=$region -q

gcloud dns --project=$projectid record-sets delete gitlabonprem.com. --zone="gitlab-sel
f-managed" --type="A"

gcloud dns --project=$projectid managed-zones delete gitlab-self-managed 

gcloud compute networks delete looker-psc-demo -q

16. Selamat

Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi konektivitas ke instance GitLab yang Dikelola Sendiri menggunakan Looker Console yang didukung oleh Private Service Connect.

Anda telah membuat infrastruktur produsen, mempelajari cara membuat NEG Internet, Layanan Produsen, dan endpoint PSC Looker yang memungkinkan konektivitas ke layanan Produsen.

Cosmopup menganggap codelab itu luar biasa.

c911c127bffdee57.jpeg

Apa selanjutnya?

Lihat beberapa codelab ini...

Bacaan lebih lanjut & Video

Dokumen referensi