Şirket içi için Looker PSC Güneye Yönelik Karma NEG

1. Giriş

Bu kod laboratuvarında, dahili bir TCP proxy yük dengeleyici ve Hizmet Tüketicisi olarak Looker PSC'den çağrılan karma ağ uç noktası grubunu kullanarak H-VPN üzerinden şirket içi bir postgres veritabanına kuzeye doğru bağlantı gerçekleştireceksiniz.

Özel Hizmet Bağlantısı, Google Cloud ağ iletişiminin, tüketicilerin yönetilen hizmetlere VPC ağlarının içinden özel olarak erişmesine olanak tanıyan bir özelliğidir. Benzer şekilde, yönetilen hizmet üreticilerinin bu hizmetleri kendi ayrı VPC ağlarında barındırmalarına ve tüketicilerine özel bir bağlantı sunmasına olanak tanır. Örneğin, Looker'a erişmek için Private Service Connect'i kullandığınızda hizmet tüketicisi sizsiniz ve Şekil 1'de vurgulanan hizmet üreticisi Google'dır.

Şekil 1.

145ea4672c3a3b14.png

Ters PSC olarak da bilinen güneye giden erişim, Tüketici'nin şirket içindeki uç noktalara, bir VPC'de, yönetilen hizmetlere ve karma hizmetlere Looker erişimine izin vermek için Üretici olarak bir Yayınlanmış Hizmet oluşturmasını sağlar. Güneye giden bağlantılar, Şekil 2'de vurgulandığı gibi Looker PSC'nin dağıtıldığı yerden bağımsız olarak herhangi bir bölgede dağıtılabilir.

Şekil 2.

259493afd914f68b.png

Neler öğreneceksiniz?

  • Ağ gereksinimleri
  • Private Service Connect üretici hizmeti oluşturma
  • Looker'da Private Service Connect uç noktası oluşturma
  • Test bağlantısı kullanarak Looker'dan şirket içi postgres veritabanına bağlantı kurma

Gerekenler

def88091b42bfe4d.png

2. Ne oluşturacaksınız?

Private Service Connect (PSC) üzerinden hizmet olarak yayınlanan dahili TCP proxy yük dengeleyiciyi ve karma NEG'yi dağıtmak için looker-psc-demo adlı bir üretici ağı oluşturursunuz. Şirket içi bir veritabanı göstermek için HA-VPN'yi kullanarak looker-psc-demo VPC'ye bağlı bir on-prem-demo VPC dağıtacaksınız.

Producer hizmetine erişimi doğrulamak için aşağıdaki işlemleri gerçekleştirirsiniz:

  • Looker'da, Yapımcı hizmet eki ile ilişkili bir PSC uç noktası oluşturun
  • Şirket içi postgres veritabanıyla bağlantı doğrulaması gerçekleştirmek için Looker Konsolu'nu kullanma

3. Ağ gereksinimleri

Aşağıda, üretici ağı için ağ koşullarının dökümü verilmiştir. Bu kod laboratuvarındaki tüketici, Looker PSC örneğidir.

Bileşenler

Açıklama

VPC (looker-psc-demo)

Özel mod VPC

VPC (şirket içi demo)

Özel mod VPC

PSC NAT Alt Ağı

Tüketici VPC ağından gelen paketler, kaynak NAT (SNAT) kullanılarak çevrilir. Böylece bu paketlerin orijinal kaynak IP adresleri, üreticinin VPC ağındaki NAT alt ağından kaynak IP adreslerine dönüştürülür.

PSC yönlendirme kuralı alt ağı

Bölgesel Dahili TCP Proxy Yük Dengeleyici için IP adresi ayırmak amacıyla kullanılır

PSC NEG Alt Ağı

Ağ uç noktası grubu için IP adresi tahsis etmek üzere kullanılır.

Yalnızca Proxy Alt Ağı

Yük dengeleyicinin proxy'lerinin her birine bir dahili IP adresi atanır. Bir proxy'den arka uç sanal makinesine veya uç noktasına gönderilen paketlerin kaynak IP adresi, yalnızca proxy alt ağından alınır.

Karma NEG

Şirket içi ve diğer bulut hizmetleri, diğer tüm Cloud Load Balancing arka uçları gibi değerlendirilir. Temel fark, bu arka uçların uç noktalarını yapılandırmak için karma bağlantı NEG kullanmanızdır. Bitiş noktaları, Cloud VPN veya Cloud Interconnect gibi karma bağlantı ürünlerini kullanarak yük dengeleyicinizin erişebileceği geçerli IP:port kombinasyonları olmalıdır.

Arka Uç Hizmeti

Arka uç hizmeti, yük dengeleyiciniz ile arka uç kaynaklarınız arasında bir köprü görevi görür. Eğiticide, arka uç hizmeti Karma NEG ile ilişkilendirilir.

Cloud Router

  • Cloud NAT, kontrol düzlemi özellikleri için Cloud Yönlendiricileri kullanır ancak BGP oturumu yönetimi için kullanmaz.
  • Cloud Router, psc-looker-demo ve on-prem-demo VPC'leri arasında HA-VPN kurulumu için kurulan BGP için kullanılır.

HA-VPN

Google Cloud VPC ağları arasında HA VPN. Bu topolojide, her bir ağda bir HA VPN ağ geçidi kullanarak iki Google Cloud VPC ağını bağlayabilirsiniz. VPC ağları aynı bölgede veya birden fazla bölgede olabilir.

Cloud NAT

İnternet çıkışı için şirket içi demo VPC tarafından kullanılır

4. Codelab topolojisi

79aeb28b38f237da.png

5. Kurulum ve Gereksinimler

Kendine ait tempoda ortam kurulumu

  1. Google Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Dilediğiniz zaman güncelleyebilirsiniz.
  • Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (ayarlandıktan sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğinizi (genellikle PROJECT_ID olarak tanımlanır) belirtmeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır.
  • Bilginiz olması açısından, bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitimden sonra faturalandırılmamak için kaynakları kapatmak istiyorsanız oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Cloud Shell'i başlatma

Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

Google Cloud Console'da, sağ üstteki araç çubuğunda bulunan Cloud Shell simgesini tıklayın:

55efc1aaa7a4d3ad.png

Ortam sağlanıp bağlantı kurulabilmesi için birkaç saniye beklemeniz gerekir. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:

7ffe5cbb04455448.png

Bu sanal makinede ihtiyaç duyacağınız tüm geliştirme araçları yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansını ve kimlik doğrulamayı büyük ölçüde iyileştirir. Bu codelab'deki tüm çalışmalarınızı tarayıcıda yapabilirsiniz. Hiçbir şey yüklemeniz gerekmez.

6. Başlamadan önce

API'leri etkinleştir

Cloud Shell'de proje kimliğinizin ayarlandığından emin olun:

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

Gerekli tüm hizmetleri etkinleştirin:

gcloud services enable compute.googleapis.com

7. Üretici VPC Ağı Oluşturma

VPC Ağı

Cloud Shell'de aşağıdakileri yapın:

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

Alt Ağ oluşturma

PSC alt ağı, ağ adresi çevirisi amacıyla PSC hizmet eki ile ilişkilendirilir.

Cloud Shell'in içinde PSC NAT Alt Ağı'nı oluşturun:

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

Cloud Shell'in içinde üretici iletim kuralı alt ağını oluşturun:

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

Cloud Shell'de, üretici bölgesel yalnızca proxy alt ağını oluşturun:

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

Yük dengeleyicinin IP adresini ayır

Cloud Shell'de yük dengeleyici için dahili bir IP adresi ayırın:

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

Cloud Shell'de ayrılmış IP adresini görüntüleyin.

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

Örnek çıkış:

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

Karma NEG'yi ayarlama

Karma NEG oluşturun ve –network-uç nokta türünü NON_GCP_PRIVATE_IP_PORT olarak ayarlayın

Cloud Shell'de, şirket içi veritabanına erişmek için kullanılan karma NEG oluşturun:

gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --network=looker-psc-demo \
    --zone=$zone

Cloud Shell'in içinde Karma NEG'yi şirket içi veritabanının IP:Bağlantı noktası olan 192.168.10.4 ve Eğiticinin sonraki bir adımında oluşturulan bağlantı noktası 5432:

gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
    --add-endpoint=ip=192.168.10.4,port=5432 \
    --zone=$zone

Bölgesel durum denetimi oluşturma

Cloud Shell'in içinde, şirket içi veritabanı bağlantı noktası 5432'yi kontrol eden bir durum denetimi oluşturun.

gcloud compute health-checks create tcp on-prem-5432-healthcheck \
    --region=$region \
    --port=5432

Ağ Güvenlik Duvarı Politikası ve Güvenlik Duvarı Kuralları Oluşturma

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute network-firewall-policies create looker-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy

Aşağıdaki güvenlik duvarı kuralı, PSC NAT alt ağı aralığındaki trafiğin ağdaki tüm örneklere gitmesine izin verir.

Cloud Shell'de aşağıdakileri yapın:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

8. Üretici Hizmeti Oluşturma

Yük Dengeleyici Bileşenleri Oluşturma

Cloud Shell'de bir arka uç hizmeti oluşturun:

gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-5432-healthcheck --health-checks-region=$region

Cloud Shell'in içinde, Karma NEG arka ucunu arka uç hizmetine ekleyin:

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region

Cloud Shell'de, istekleri arka uç hizmetinize yönlendirmek için bir hedef TCP proxy'si oluşturun:

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

Aşağıdaki söz diziminde bir yönlendirme kuralı (dahili TCP proxy yük dengeleyici) oluşturun.

Cloud Shell'de aşağıdakileri yapın:

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

Hizmet Eki Oluşturma

Cloud Shell'de onpremdatabase1-svc-attachment adlı hizmet eki oluşturun:

gcloud compute service-attachments create onpremdatabase1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

Ardından, Looker'da PSC uç noktasını yapılandırmak için projelerle başlayan selfLink URI'sinde listelenen Hizmet Eki'ni edinin ve not edin.

selfLink: projects/<proje-kimliğiniz>/regions/<bölgeniz>/serviceAttachs/onpremdatabase1-svc-attachment

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute service-attachments describe onpremdatabase1-svc-attachment --region=$region

Beklenen örnek çıkış:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-09-01T16:07:51.600-07:00'
description: ''
enableProxyProtocol: false
fingerprint: cFt9rERR1iE=
id: '2549689544315850024'
kind: compute#serviceAttachment
name: onpremdatabase1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '19348441121424360'
  low: '2549689544315850024'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-hybrid-neg-fr

Cloud Console'da şu konuma gidin:

Ağ Hizmetleri → Private Service Connect → Yayınlanan Hizmetler

9f436251a3ae2cc7.png

4c3e8e73d40d1238.png

9. Looker'da PSC uç noktası bağlantısı oluşturma

Aşağıdaki bölümde, tek bir alan için Cloud Shell'deki use –psc-service-attachment flag'lerini kullanarak Producers Hizmet Eki'ni Looker Core PSC ile ilişkilendireceksiniz.

Cloud Shell'in içinde aşağıdaki parametreleri ortamınızla eşleşecek şekilde güncelleyerek psc ilişkilendirmesi oluşturun:

  • INSTANCE_NAME: Looker (Google Cloud core) örneğinizin adı.
  • DOMAIN_1: onprem.database1.com
  • SERVICE_ATTACHMENT_1: Hizmet Eki oluşturulurken yakalanan URI, onpremdatabase1-svc-attachment
  • REGION: Looker (Google Cloud Core) örneğinizin barındırıldığı bölge.

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

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

Örnek:

gcloud looker instances update looker-psc-instance --psc-service-attachment domain=onprem.database1.com,attachment=projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment --region=$region

Cloud Shell'de, serviceAttachments connectionStatus değerinin "ACCEPTED" olduğunu doğrulayın ve Looker PSC örneğinizin adıyla güncelleyin:

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

Örnek:

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

Örnek:

{
  "adminSettings": {},
  "createTime": "2024-08-23T00:00:45.339063195Z",
  "customDomain": {
    "domain": "looker.cosmopup.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/$project/global/networks/looker-psc-demo",
      "projects/$project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "onprem.database1.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-09-01T23:15:07.426372901Z"
}

Cloud Console'da PSC uç noktasını doğrulama

Cloud Console'dan PSC bağlantısını doğrulayabilirsiniz

Cloud Console'da şu konuma gidin:

Looker → Looker Örneği → Ayrıntılar

2d4684d722d31e4b.png

993cdaf748f4c030.png

Şirket içi VPC Ağı oluşturma

VPC Ağı

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute networks create on-prem-demo --project=$project --subnet-mode=custom

Postgresql veritabanı alt ağını oluşturma

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute networks subnets create database-subnet --project=$project --range=192.168.10.0/28 --network=on-prem-demo --region=$region

Cloud Shell'de onprem.database1.com, 192.168.10.4 için kullanılan dahili bir IPv4 adresi ayırın:

gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4

Şirket içi demo VPC'si için Cloud Router oluşturma

Sanal makine örneğinin harici IP adresi olmadığından, eğitimde yazılım paketi yükleme için Cloud NAT kullanılır.

Cloud Shell'de, Cloud NAT ve HA-VPN ile kullanılan Cloud Router'ı oluşturun:

gcloud compute routers create on-prem-cr \
   --region=$region \
   --network=on-prem-demo \
   --asn=65002

Cloud Shell'de NAT ağ geçidini oluşturun:

gcloud compute routers nats create on-prem-nat --router=on-prem-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region $region

Veritabanı testi örneğini oluşturma

Looker bağlantısını test etmek ve doğrulamak için kullanılacak bir postgres-database örneği oluşturun.

Cloud Shell'in içinde örneği oluşturun:

gcloud compute instances create postgres-database \
    --project=$project \
    --zone=$zone \
    --machine-type=e2-medium \
    --subnet=database-subnet \
    --no-address \
    --private-network-ip 192.168.10.4 \
    --image-family debian-12 \
    --image-project debian-cloud  \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt -y install postgresql postgresql-client postgresql-contrib -y"

Ağ Güvenlik Duvarı Politikası ve Güvenlik Duvarı Kuralları Oluşturma

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute network-firewall-policies create on-prem-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy on-prem-demo-policy --network on-prem-demo --name on-prem-demo --global-firewall-policy

IAP'nin sanal makine örneklerinize bağlanmasına izin vermek için aşağıdaki şartları yerine getiren bir güvenlik duvarı kuralı oluşturun:

  • IAP kullanarak erişilmesini istediğiniz tüm sanal makine örnekleri için geçerlidir.
  • 35.235.240.0/20 IP aralığından gelen giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy on-prem-demo-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22  --global-firewall-policy

Aşağıdaki güvenlik duvarı kuralı, yalnızca proxy alt ağ aralığından ağdaki tüm örneklere giden trafiğe izin verir.

Cloud Shell'de aşağıdakileri yapın:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy on-prem-demo-policy --description "allow traffic from proxy only subnet" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp

10. Karma bağlantı

Aşağıdaki bölümde, Sınır Ağ Geçidi Protokolü'nü (BGP) kullanarak Sanal Özel Bulut (VPC) ile eş ağınız arasında rotaları dinamik olarak değiştirmenizi sağlayan bir Cloud Router oluşturacaksınız.

Cloud Yönlendirici, ağlarınızı bağlamak için Cloud VPN tüneli üzerinden BGP oturumu oluşturabilir. Yeni alt ağın IP adresi aralıklarını otomatik olarak öğrenir ve eş ağınıza duyurur.

Aşağıdaki adımlarda, onprem.database1.com'a karma NEG bağlantısını göstermek için looker-psc-demo VPC ile on-prem-demo VPC arasında HA VPN dağıtacaksınız.

looker-psc-demo için HA VPN GW'yu oluşturun

Her ağ geçidi oluşturulduğunda, her ağ geçidi arayüzü için bir tane olmak üzere iki harici IPv4 adresi otomatik olarak ayrılır.

Cloud Shell'de HA VPN GW'yi oluşturun:

gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
   --network=looker-psc-demo \
   --region=$region

Yerleşik demo için HA VPN ağ geçidini oluşturma

Her ağ geçidi oluşturulduğunda, her ağ geçidi arayüzü için bir tane olmak üzere iki harici IPv4 adresi otomatik olarak ayrılır.

Cloud Shell'de HA VPN GW'yi oluşturun:

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-demo\
   --region=$region

HA VPN GW oluşturma işlemini doğrulama

Konsolu kullanarak HİBRİT BAĞLANTI → VPN → CLOUD VPN AĞ GEÇİTLERİ'ne gidin.

7f1b504616504866.png

looker-psc-demo için Cloud Router'ı oluşturun

Cloud Shell'de Cloud Router'ı oluşturun:

gcloud compute routers create looker-psc-demo-cr \
   --region=$region \
   --network=looker-psc-demo\
   --asn=65001

Looker-psc-demo için VPN tünelleri oluşturun

Her HA VPN ağ geçidinde iki VPN tüneli oluşturursunuz.

VPN tüneli oluşturma0

Cloud Shell'de tunnel0 adlı bir bağlantı oluşturun:

gcloud compute vpn-tunnels create looker-psc-demo-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router looker-psc-demo-cr \
    --vpn-gateway looker-psc-demo-vpn-gw \
    --interface 0

VPN tüneli oluştur1

Cloud Shell'in içinde tünel1 oluşturun:

gcloud compute vpn-tunnels create looker-psc-demo-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router looker-psc-demo-cr \
    --vpn-gateway looker-psc-demo-vpn-gw \
    --interface 1

Şirket içi demo için VPN tünelleri oluşturun

Her HA VPN ağ geçidinde iki VPN tüneli oluşturursunuz.

VPN tüneli oluşturma0

Cloud Shell'de tunnel0 adlı bir bağlantı oluşturun:

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway looker-psc-demo-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr \
    --vpn-gateway on-prem-vpn-gw \
   --interface 0

VPN tüneli oluştur1

Cloud Shell'in içinde tünel1 oluşturun:

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway looker-psc-demo-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

VPN tüneli oluşturma işlemini doğrulama

Konsolu kullanarak KARMA BAĞLANTI → VPN → CLOUD VPN TÜNELLERİ'ne gidin.

c2fcb340a7614070.png

11. BGP komşuları oluşturma

Looker-psc-demo için BGP arayüzü ve eşleme oluşturma

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface looker-psc-demo-cr \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel looker-psc-demo-tunnel0 \
    --region $region

Cloud Shell'de BGP eşlemesi oluşturun:

gcloud compute routers add-bgp-peer looker-psc-demo-cr \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region $region

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface looker-psc-demo-cr \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel looker-psc-demo-tunnel1 \
    --region $region

Cloud Shell'de BGP eşlemesi oluşturun:

gcloud compute routers add-bgp-peer looker-psc-demo-cr \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region $region

Şirket içi demo için BGP arayüzü ve eşleme oluşturma

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface on-prem-cr \
    --interface-name if-tunnel0-to-looker-psc-demo \
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region $region

Cloud Shell'de BGP eşlemesi oluşturun:

gcloud compute routers add-bgp-peer on-prem-cr \
    --peer-name bgp-looker-psc-demo-tunnel0 \
    --interface if-tunnel1-to-looker-psc-demo \
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region $region

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface on-prem-cr \
    --interface-name if-tunnel1-to-looker-psc-demo \
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region $region

Cloud Shell'in içinde BGP eşlemesini oluşturun:

gcloud compute routers add-bgp-peer on-prem-cr \
    --peer-name bgp-looker-psc-demo-tunnel1\
    --interface if-tunnel2-to-looker-psc-demo \
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region $region

VPN tüneli ayrıntılarını görüntülemek için Karma BAĞLANTI → VPN'e gidin.

78ab590317919bf5.png

HA VPN üzerinden looker-psc-demo tarafından öğrenilen rotaları doğrulama

HA VPN tünelleri ve BGP oturumları oluşturulduğuna göre Cloud Router'ın varsayılan davranışı, alt ağ rotalarının reklamını yapmaktır. looker-psc-demo tarafından öğrenilen rotaları görüntüleyin.

Konsolu kullanarak VPC network → VPC networks → looker-psc-demo → ROUTES → REGION → VIEW'a gidin.

Looker-psc-demo, şirket içi demo VPC'sinden veritabanı alt ağı 192.168.10.0/28'i öğrendi.

c11a11ed8b0491c8.png

Şirket içi demo VPC'sinin HA VPN üzerinden öğrendiği rotaları doğrulayın

Cloud Router'ın varsayılan davranışı tüm alt ağların reklamını yapmak olduğundan, yalnızca proxy alt ağı BGP üzerinden reklamı yapılır. Karma NEG, onprem.database1.com sunucusu ile iletişim kurarken kaynak adres olarak yalnızca proxy alt ağını kullanır.

Şirket içi demoda gözlem, looker-psc-demo öğesinden proxy-only-subnet 10.10.10.0/24 öğrendi.

Konsolu kullanarak VPC ağı → VPC ağları → on-prem-demo → ROTALAR → BÖLGE → GÖSTER'e gidin.

b0073faed026931f.png

12. Looker postgres veritabanı oluşturma

Aşağıdaki bölümde, Cloud Shell'i kullanarak postgres-database sanal makinesine SSH bağlantısı oluşturacaksınız.

Cloud Shell'de postgres-database örneğine ssh bağlantısı oluşturun**:**

 gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

İşletim sistemi içinde postgres-database örneğinin IP adresini (ens4) tanımlayın ve not edin:

ip a

Örnek:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
    link/ether 42:01:c0:a8:0a:04 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 192.168.10.4/32 metric 100 scope global dynamic ens4
       valid_lft 66779sec preferred_lft 66779sec
    inet6 fe80::4001:c0ff:fea8:a04/64 scope link 
       valid_lft forever preferred_lft forever

İşletim sisteminde, postgresql'e giriş yapın:

sudo -u postgres psql postgres

İşletim sisteminde, şifre istemini girin:

\password postgres

İşletim sisteminde şifreyi postgres olarak ayarlayın (aynı şifreyi iki kez girin):

postgres

Örnek:

user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres": 
Enter it again: 

İşletim sistemi içinde postgres'ten çıkın:

\q

Örnek:

postgres=# \q
user@postgres-database:~$ 

Aşağıdaki bölümde, postgres veritabanı örneği IP'nizi (192.168.10.4) ve yalnızca proxy alt ağını (10.10.10.0/24) IPv4 yerel bağlantıları altındaki pg_hba.conf dosyasına ekleyeceğiz.

sudo nano /etc/postgresql/15/main/pg_hba.conf

Aşağıdaki ekran görüntüsü, tamamlanmış güncellemeyi göstermektedir: eaff2ed6d27fa7cc.png

Aşağıdaki bölümde, tüm "*" işaretlerini dinlemek için postgresql.conf yorumunu kaldırın Aşağıdaki ekran görüntüsüne göre IP adresleri:

sudo nano /etc/postgresql/15/main/postgresql.conf

Önce:

65e0b1074dc48644.png

Sonra:

14a0d1fa5455e23e.png

İşletim sisteminin içinde postgresql hizmetini yeniden başlatın:

sudo service postgresql restart

İşletim sisteminde postgresql durumunu etkin olarak doğrulayın:

sudo service postgresql status

Örnek:

İşletim sisteminde postgresql durumunu etkin olarak doğrulayın:

user@postgres-database:/$ sudo service postgresql status
 postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
     Active: active (exited) since Mon 2024-09-02 12:10:10 UTC; 1min 46s ago
    Process: 20486 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 20486 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Sep 02 12:10:10 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Sep 02 12:10:10 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.

13. Postgres veritabanını oluşturma

Aşağıdaki bölümde, postgres_looker adlı bir postgres veritabanı ve Looker'ın şirket içi bağlantısını doğrulamak için kullanılan looker_schema şeması oluşturacaksınız.

İşletim sisteminde postgres'e giriş yapın:

sudo -u postgres psql postgres

İşletim sisteminde veritabanını oluşturun:

create database postgres_looker;

İşletim sisteminde veritabanını listeleyin:

\l

İşletim sisteminde, postgreslooker şifresiyle postgres_looker kullanıcısını oluşturun:

create user postgres_looker with password 'postgreslooker';

OS'te veritabanına bağlanın:

\c postgres_looker;

İşletim sisteminin içinde şema görünüm şemasını oluşturun ve Cloud Shell istemine çıkın.

create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit

Exit from the OS, returning you to cloud shell:

\q

Örnek:

user@postgres-database:/$ sudo -u postgres psql postgres
psql (15.8 (Debian 15.8-0+deb12u1))
Type "help" for help.

postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
                                                List of databases
      Name       |  Owner   | Encoding | Collate |  Ctype  | ICU Locale | Locale Provider |   Access privileges   
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
 postgres        | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | 
 postgres_looker | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | 
 template0       | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | =c/postgres          +
                 |          |          |         |         |            |                 | postgres=CTc/postgres
 template1       | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | =c/postgres          +
                 |          |          |         |         |            |                 | postgres=CTc/postgres
(4 rows)

postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
CREATE SCHEMA
CREATE TABLE
postgres_looker-# \q

14. Looker'ı Postgres postgres-database ile entegre etme

Aşağıdaki bölümde, şirket içi postgres veritabanı örneğiyle veritabanı bağlantısı oluşturmak için Looker Console'u kullanacaksınız.

YÖNETİCİ → VERİTABANI → BAĞLANTILAR → BAĞLANTI EKLE'yi seçin.

Aşağıdaki ekran görüntüsüne göre bağlantı ayrıntılarını doldurun, BAĞLA'yı seçin.

5900fdf0b698cbfc.png

Bağlantı yapılandırıldı

4817157fd3b1277e.png

15. Looker bağlantısını doğrulayın

Aşağıdaki bölümde, Looker "test"ini kullanarak şirket içi VPC'de postgres veritabanına Looker bağlantısını nasıl doğrulayacağınızı öğreneceksiniz. işlemi ve TCPDUMP.

Oturum zaman aşımına uğradıysa Cloud Shell'den postgres veritabanına giriş yapın.

Cloud Shell'in içinde aşağıdaki işlemleri gerçekleştirin:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

İşletim sisteminde, yalnızca proxy alt ağı 10.10.10.0/24 ile bir TCPDUMP filtresi oluşturun.

sudo tcpdump -i any net 10.10.10.0/24 -nn

Veri Bağlantısı'na gidin YÖNETİCİ → VERİ TABANI → BAĞLANTILAR → postgres-database → Test

Test seçildikten sonra Looker, aşağıda belirtildiği şekilde postgres veritabanına bağlanır:

774f9313ece41034.png

Temizleme

Tek bir Cloud Shell terminalinden laboratuvar bileşenlerini silme

gcloud compute service-attachments delete onpremdatabase1-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-hybrid-neg-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-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy  --name=looker-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q

gcloud compute routers nats delete on-prem-nat --router=on-prem-cr --router-region=$region -q

gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q

gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q

gcloud compute vpn-tunnels delete looker-psc-demo-tunnel0 looker-psc-demo-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=$region -q

gcloud compute vpn-gateways delete looker-psc-demo-vpn-gw on-prem-vpn-gw --region=$region -q

gcloud compute routers delete looker-psc-demo-cr on-prem-cr --region=$region -q

gcloud compute instances delete postgres-database --zone=$zone -q

gcloud compute addresses delete on-prem-database1-ip --region=$region -q

gcloud compute networks subnets delete database-subnet --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy on-prem-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy on-prem-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=on-prem-demo-policy  --name=on-prem-demo --global-firewall-policy -q

gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q

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

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

gcloud compute networks delete on-prem-demo -q

gcloud compute networks delete looker-psc-demo -q

16. Tebrikler

Tebrikler, Private Service Connect tarafından desteklenen Looker Console'u kullanarak şirket içi veritabanının HA-VPN üzerinden bağlantısını başarıyla yapılandırıp doğruladınız.

Üretici altyapısını oluşturdunuz ve Producer hizmetine bağlanmayı sağlayan bir Karma NEG, Üretici Hizmeti ve Looker PSC uç noktası oluşturmayı öğrendiniz.

Cosmopup, codelab'lerin muhteşem olduğunu düşünüyor!!

c911c127bffdee57.jpeg

Sırada ne var?

Bu codelab'lerden bazılarına göz atın...

Daha fazla bilgi ve videolar

Referans dokümanları