NEG kết hợp Looker PSC Southbound đến máy chủ cục bộ

1. Giới thiệu

Trong lớp học lập trình này, bạn sẽ thực hiện việc kết nối theo hướng Nam với một cơ sở dữ liệu bưu điện tại chỗ qua H-VPN bằng cách sử dụng trình cân bằng tải proxy tcp nội bộ và nhóm thiết bị đầu cuối mạng kết hợp được gọi từ Looker PSC với vai trò là Người dùng dịch vụ.

Private Service Connect là một chức năng của mạng Google Cloud, cho phép người tiêu dùng truy cập vào các dịch vụ được quản lý một cách riêng tư từ bên trong mạng VPC của mình. Tương tự, dịch vụ này cho phép nhà sản xuất dịch vụ được quản lý lưu trữ các dịch vụ này trong mạng VPC riêng của họ và cung cấp kết nối riêng tư cho người dùng. Ví dụ: khi bạn sử dụng Private Service Connect để truy cập vào Looker, bạn là người dùng dịch vụ và Google là nhà cung cấp dịch vụ, như được nêu trong Hình 1.

Hình 1.

145ea4672c3a3b14.png.

Quyền truy cập hướng Nam (còn gọi là PSC đảo ngược) cho phép Người tiêu dùng tạo Dịch vụ đã xuất bản với tư cách là Nhà sản xuất để cho phép Looker truy cập vào các điểm cuối tại chỗ, trong VPC, đối với các dịch vụ được quản lý và kết hợp. Các kết nối hướng Nam có thể được triển khai ở bất kỳ khu vực nào, bất kể Looker PSC được triển khai ở đâu, như được nêu bật trong Hình 2.

Hình 2.

259493afd914f68b.png

Kiến thức bạn sẽ học được

  • Yêu cầu về mạng
  • Tạo dịch vụ nhà sản xuất Kết nối dịch vụ riêng tư
  • Tạo điểm cuối Private Service Connect trong Looker
  • Thiết lập kết nối với cơ sở dữ liệu postgres tại chỗ từ Looker bằng Kết nối kiểm thử

Bạn cần có

def88091b42bfe4d.png

2. Sản phẩm bạn sẽ tạo ra

Bạn sẽ thiết lập một mạng Nhà sản xuất, looker-psc-demo, để triển khai bộ cân bằng tải proxy tcp nội bộ và NEG kết hợp được phát hành dưới dạng dịch vụ thông qua Private Service Connect (PSC). Để minh hoạ cơ sở dữ liệu tại chỗ, bạn sẽ triển khai VPC on-prem-demo kết nối với VPC looker-psc-demo bằng HA-VPN.

Bạn sẽ thực hiện các thao tác sau để xác thực quyền truy cập vào dịch vụ Nhà sản xuất:

  • Tạo một điểm cuối PSC trong Looker được liên kết với tệp đính kèm dịch vụ Producer
  • Sử dụng Bảng điều khiển của Looker để xác thực kết nối với cơ sở dữ liệu Postgres tại chỗ

3. Yêu cầu về mạng

Dưới đây là bảng chi tiết các yêu cầu về mạng đối với mạng Producer, đối tượng tiêu dùng trong lớp học lập trình này là phiên bản Looker PSC.

Thành phần

Mô tả

VPC (looker-psc-demo)

VPC ở chế độ tuỳ chỉnh

VPC (bản minh hoạ tại chỗ)

VPC ở chế độ tuỳ chỉnh

Mạng con PSC NAT

Các gói tin từ mạng VPC của người tiêu dùng được dịch bằng NAT nguồn (SNAT) để địa chỉ IP nguồn ban đầu của chúng được chuyển đổi thành địa chỉ IP nguồn từ mạng con NAT trong mạng VPC của nhà sản xuất.

Mạng con quy tắc chuyển tiếp PSC

Dùng để phân bổ địa chỉ IP cho Trình cân bằng tải proxy TCP nội bộ theo khu vực

Mạng con PSC NEG

Dùng để phân bổ địa chỉ IP cho Nhóm thiết bị đầu cuối mạng

Mạng con chỉ dành cho proxy

Mỗi proxy của bộ cân bằng tải được chỉ định một địa chỉ IP nội bộ. Các gói được gửi từ proxy đến máy ảo hoặc điểm cuối phụ trợ có địa chỉ IP nguồn từ mạng con chỉ có proxy.

NEG kết hợp

Các dịch vụ đám mây tại chỗ và các dịch vụ đám mây khác được coi như mọi phần phụ trợ Cân bằng tải trên đám mây khác. Điểm khác biệt chính là bạn sử dụng NEG kết nối kết hợp để định cấu hình điểm cuối của những phần phụ trợ này. Các điểm cuối phải là tổ hợp IP:cổng hợp lệ mà trình cân bằng tải của bạn có thể truy cập bằng cách sử dụng các sản phẩm kết nối kết hợp như Cloud VPN hoặc Cloud Interconnect.

Dịch vụ phụ trợ

Dịch vụ phụ trợ đóng vai trò là cầu nối giữa trình cân bằng tải và các tài nguyên phụ trợ. Trong hướng dẫn này, dịch vụ phụ trợ được liên kết với NEG kết hợp.

Cloud Router

  • Cloud NAT dựa vào Bộ định tuyến trên đám mây để có các chức năng của vùng điều khiển, nhưng không dùng để quản lý phiên BGP.
  • Bộ định tuyến đám mây được dùng cho BGP được thiết lập để thiết lập HA-VPN giữa VPC psc-looker-demo và on-prem-demo.

VPN (mạng riêng ảo)

VPN HA giữa các mạng VPC của Google Cloud. Trong cấu trúc này, bạn có thể kết nối hai mạng VPC trên Google Cloud bằng cách sử dụng một cổng VPN HA trong mỗi mạng. Các mạng VPC có thể nằm trong cùng một khu vực hoặc nhiều khu vực.

Cloud NAT

Được VPC tại chỗ minh hoạ sử dụng cho lượng dữ liệu ra vào Internet

4. Cấu trúc liên kết của lớp học lập trình

79aeb28b38f237da.pngS

5. Thiết lập và yêu cầu

Thiết lập môi trường theo tốc độ của riêng bạn

  1. Đăng nhập vào Google Cloud Console rồi tạo dự án mới hoặc sử dụng lại dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png.

  • Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng. Bạn luôn có thể cập nhật ứng dụng.
  • Mã dự án là duy nhất trong tất cả các dự án Google Cloud và không thể thay đổi (không thể thay đổi sau khi đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là PROJECT_ID). Nếu không thích mã được tạo, bạn có thể tạo một mã ngẫu nhiên khác. Ngoài ra, bạn có thể thử dùng email của riêng mình để xem có thể sử dụng hay không. Bạn không thể thay đổi thông tin này sau bước này và thông tin này sẽ được giữ nguyên trong suốt thời gian diễn ra dự án.
  • Xin lưu ý rằng có một giá trị thứ ba là Mã dự án mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
  1. Tiếp theo, bạn sẽ phải bật tính năng thanh toán trong Cloud Console để sử dụng API/tài nguyên trên đám mây. Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Để tắt các tài nguyên nhằm tránh bị tính phí sau khi hoàn tất hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.

Khởi động Cloud Shell

Mặc dù bạn có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trong Đám mây.

Trong Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ trên cùng bên phải:

55efc1aaa7a4d3ad.png

Sẽ chỉ mất một chút thời gian để cấp phép và kết nối với môi trường. Khi hoàn tất, bạn sẽ thấy như sau:

7ffe5cbb04455448.pngS

Máy ảo này được tải sẵn tất cả các công cụ phát triển mà bạn cần. Phiên bản này cung cấp thư mục gốc có dung lượng ổn định 5 GB và chạy trên Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Bạn có thể thực hiện tất cả công việc trong lớp học lập trình này bằng trình duyệt. Bạn không cần cài đặt gì cả.

6. Trước khi bắt đầu

Bật API

Trong Cloud Shell, hãy đảm bảo bạn đã thiết lập mã dự án:

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

Bật tất cả dịch vụ cần thiết:

gcloud services enable compute.googleapis.com

7. Tạo mạng VPC cho nhà sản xuất

Mạng VPC

Trong Cloud Shell, hãy thực hiện như sau:

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

Tạo mạng con

Mạng con PSC sẽ được liên kết với Tệp đính kèm dịch vụ PSC cho mục đích Dịch địa chỉ mạng.

Bên trong Cloud Shell, hãy tạo Mạng con PSC NAT:

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

Bên trong Cloud Shell, hãy tạo mạng con quy tắc chuyển tiếp của nhà sản xuất:

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

Bên trong Cloud Shell, hãy tạo mạng con chỉ có proxy theo khu vực cho nhà sản xuất:

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

Đặt trước địa chỉ IP của trình cân bằng tải

Bên trong Cloud Shell, hãy đặt trước một địa chỉ IP nội bộ cho trình cân bằng tải:

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

Trong Cloud Shell, hãy xem Địa chỉ IP được đặt trước.

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

Kết quả điểm dữ liệu:

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

Thiết lập NEG kết hợp

Tạo NEG kết hợp và đặt –network-endpoint-type thành NON_GCP_PRIVATE_IP_PORT

Bên trong Cloud Shell, hãy tạo một NEG kết hợp dùng để truy cập vào cơ sở dữ liệu tại chỗ:

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

Bên trong Cloud Shell, cập nhật Hybrid NEG với IP:Cổng của cơ sở dữ liệu tại chỗ, 192.168.10.4 & Cổng 5432, được tạo ở bước sau của hướng dẫn:

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

Tạo quy trình kiểm tra tình trạng sức khoẻ theo khu vực

Bên trong Cloud Shell, hãy tạo một quy trình kiểm tra tình trạng để thăm dò cổng cơ sở dữ liệu tại chỗ, 5432:

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

Tạo chính sách về tường lửa mạng và quy tắc về tường lửa

Trong Cloud Shell, hãy thực hiện như sau:

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

Quy tắc tường lửa sau đây cho phép lưu lượng truy cập từ dải mạng con PSC NAT đến tất cả các thực thể trong mạng.

Trong Cloud Shell, hãy thực hiện như sau:

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. Tạo dịch vụ cho nhà sản xuất

Tạo thành phần Trình cân bằng tải

Bên trong Cloud Shell, hãy tạo một dịch vụ phụ trợ:

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

Bên trong Cloud Shell, hãy thêm phần phụ trợ NEG kết hợp vào dịch vụ phụ trợ:

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

Trong Cloud Shell, hãy tạo một proxy TCP mục tiêu để định tuyến các yêu cầu đến dịch vụ phụ trợ:

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

Trong cú pháp sau, hãy tạo một quy tắc chuyển tiếp (trình cân bằng tải proxy tcp nội bộ).

Trong Cloud Shell, hãy thực hiện các thao tác sau:

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

Tạo tệp đính kèm về dịch vụ

Bên trong Cloud Shell, hãy tạo Tệp đính kèm dịch vụ, onpremdatabase1-svc-Attach:

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

Tiếp theo, hãy lấy và ghi lại Tệp đính kèm dịch vụ được liệt kê trong URI selfLink bắt đầu bằng các dự án để định cấu hình điểm cuối PSC trong Looker.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/onpremdatabase1-svc-attachment

Bên trong Cloud Shell, hãy thực hiện như sau:

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

Ví dụ về kết quả đầu ra dự kiến:

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

Trong Cloud Console, hãy chuyển đến:

Dịch vụ mạng → Kết nối dịch vụ riêng tư → Dịch vụ đã phát hành

9f436251a3ae2cc7.pngs

4c3e8e73d40d1238.png

9. Thiết lập kết nối điểm cuối PSC trong Looker

Trong phần sau, bạn sẽ liên kết Tệp đính kèm dịch vụ của nhà sản xuất với Looker Core PSC thông qua cờ sử dụng –psc-service- bổ sung trong Cloud Shell cho một miền.

Bên trong Cloud Shell, hãy tạo mối liên kết psc bằng cách cập nhật các tham số sau cho phù hợp với môi trường của bạn:

  • INSTANCE_NAME: Tên của phiên bản Looker (Lõi Google Cloud) của bạn.
  • DOMAIN_1: onprem.database1.com
  • SERVICE_ATTACHMENT_1: URI được ghi lại khi tạo Tệp đính kèm dịch vụ, onpremdatabase1-svc-attachment
  • REGION: Khu vực nơi lưu trữ thực thể Looker (Lõi Google Cloud) của bạn.

Bên trong Cloud Shell, hãy thực hiện như sau:

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

Ví dụ:

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

Bên trong Cloud Shell, hãy xác thực serviceAttach connectionStatus là "có được chấp nhận", rồi cập nhật tên thực thể Looker PSC của bạn:

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

Ví dụ:

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

Ví dụ:

{
  "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"
}

Xác thực điểm cuối PSC trong Cloud Console

Trên Cloud Console, bạn có thể xác thực kết nối PSC

Trong Cloud Console, hãy chuyển đến:

Looker → Phiên bản Looker → Chi tiết

2d4684d722d31e4b.png.

993cdaf748f4c030.pngS

Tạo mạng VPC tại chỗ

Mạng VPC

Bên trong Cloud Shell, hãy thực hiện như sau:

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

Tạo mạng con cơ sở dữ liệu Postgresql

Bên trong Cloud Shell, hãy thực hiện như sau:

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

Bên trong Cloud Shell, hãy đặt trước một địa chỉ IPv4 nội bộ, dùng cho onprem.database1.com, 192.168.10.4:

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

Tạo Bộ định tuyến đám mây cho đám mây riêng ảo (VPC) tại chỗ

Cloud NAT được dùng trong hướng dẫn cài đặt gói phần mềm vì thực thể máy ảo không có địa chỉ IP bên ngoài.

Bên trong Cloud Shell, hãy tạo Cloud Router dùng với Cloud NAT và HA-VPN:

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

Bên trong Cloud Shell, hãy tạo cổng NAT:

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

Tạo thực thể kiểm thử cơ sở dữ liệu

Tạo một thực thể postgres-database dùng để kiểm thử và xác thực khả năng kết nối với Looker.

Bên trong Cloud Shell, hãy tạo thực thể:

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"

Tạo chính sách về tường lửa mạng và quy tắc về tường lửa

Bên trong Cloud Shell, hãy thực hiện như sau:

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

Để cho phép IAP kết nối với các phiên bản máy ảo, hãy tạo một quy tắc tường lửa:

  • Áp dụng cho tất cả các thực thể máy ảo mà bạn muốn truy cập được bằng cách sử dụng IAP.
  • Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải ô này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.

Trong Cloud Shell, hãy thực hiện như sau:

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

Quy tắc tường lửa sau đây cho phép lưu lượng truy cập từ phạm vi mạng con chỉ có proxy đến tất cả các thực thể trong mạng.

Bên trong Cloud Shell, hãy thực hiện như sau:

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. Kết nối lai

Trong phần sau, bạn sẽ tạo một Bộ định tuyến đám mây cho phép bạn trao đổi động các tuyến giữa Đám mây riêng ảo (VPC) và mạng ngang hàng bằng cách sử dụng Giao thức cổng nối biên (BGP).

Bộ định tuyến trên đám mây có thể thiết lập một phiên BGP qua đường hầm Cloud VPN để kết nối các mạng của bạn. Trình quản lý tự động tìm hiểu các dải địa chỉ IP mạng con mới và thông báo các dải địa chỉ đó cho mạng ngang hàng.

Trong các bước sau, bạn sẽ triển khai VPN HA giữa VPC Looker-psc-demo và VPC tại chỗ để chứng minh khả năng kết nối NEG kết hợp với onprem.database1.com.

Tạo HA VPN GW cho looker-psc-demo

Khi mỗi cổng vào được tạo, 2 địa chỉ IPv4 bên ngoài sẽ được tự động phân bổ, mỗi địa chỉ cho một giao diện cổng vào.

Bên trong Cloud Shell, hãy tạo HA VPN GW:

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

Tạo HA VPN GW cho bản minh hoạ trên máy

Khi mỗi cổng được tạo, hai địa chỉ IPv4 bên ngoài sẽ tự động được phân bổ, mỗi địa chỉ cho một giao diện cổng.

Bên trong Cloud Shell, hãy tạo HA VPN GW:

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

Xác thực việc tạo HA VPN GW

Sử dụng bảng điều khiển, hãy chuyển đến HYBRID CONNECTIVITY → VPN → CLOUD VPN GATEWAYS.

7f1b504616504866.png

Tạo Cloud Router cho Looker-psc-demo

Bên trong Cloud Shell, hãy tạo Trình định tuyến trên đám mây:

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

Tạo đường hầm VPN cho Looker-psc-demo

Bạn sẽ tạo hai đường hầm VPN trên mỗi cổng VPN HA.

Tạo đường hầm VPN00

Bên trong Cloud Shell, hãy tạo tunnel0:

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

Tạo đường hầm VPN1

Bên trong Cloud Shell, hãy tạo đường hầm 1:

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

Tạo đường hầm VPN cho bản minh hoạ trên máy

Bạn sẽ tạo 2 đường hầm VPN trên mỗi cổng VPN HA.

Tạo đường hầm VPN00

Bên trong Cloud Shell, hãy tạo tunnel0:

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

Tạo đường hầm VPN1

Bên trong Cloud Shell, hãy tạo đường hầm 1:

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

Xác thực việc tạo đường hầm VPN

Trên bảng điều khiển, hãy chuyển đến mục KẾT NỐI KẾT HỢP → VPN → ĐƯỜNG ĂN VPN TRÊN ĐƯỜNG MÂY.

c2fcb340a7614070.png

11. Thiết lập hàng xóm BGP

Tạo giao diện BGP và liên kết ngang cho looker-psc-demo

Bên trong Cloud Shell, hãy tạo giao diện BGP:

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

Bên trong Cloud Shell, hãy tạo máy ngang hàng BGP:

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

Bên trong Cloud Shell, hãy tạo giao diện BGP:

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

Bên trong Cloud Shell, hãy tạo ứng dụng ngang hàng BGP:

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

Tạo giao diện BGP và kết nối ngang hàng cho bản minh hoạ tại chỗ

Bên trong Cloud Shell, hãy tạo giao diện BGP:

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

Bên trong Cloud Shell, hãy tạo máy ngang hàng BGP:

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

Bên trong Cloud Shell, hãy tạo giao diện BGP:

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

Bên trong Cloud Shell, hãy tạo ứng dụng ngang hàng BGP:

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

Chuyển đến phần Hybrid CONNECTIVITY → VPN để xem thông tin chi tiết về đường hầm VPN.

78ab590317919bf5.pngS

Xác thực các tuyến đã học của looker-psc-demo qua VPN HA

Giờ đây, các đường hầm HA VPN và phiên BGP đã được thiết lập, hoạt động mặc định của Cloud Router là quảng cáo các tuyến của mạng con. Xem các tuyến đường đã học trong Looker-psc-demo.

Trên bảng điều khiển, hãy chuyển đến Mạng VPC → Mạng VPC → looker-psc-demo → TUYẾN → KHU VỰC → XEM

Quan sát looker-psc-demo đã học được database-subnet 192.168.10.0/28 từ VPC on-prem-demo.

c11a11ed8b0491c8.png

Xác thực rằng các tuyến đã học được của VPC tại chỗ qua VPN VPN

Vì hoạt động mặc định của Cloud Router là quảng cáo tất cả mạng con, nên mạng con chỉ proxy chỉ được quảng cáo qua BGP. NEG kết hợp sẽ sử dụng mạng con chỉ dành cho proxy làm địa chỉ nguồn khi giao tiếp với máy chủ onprem.database1.com.

Quan sát bản minh hoạ tại chỗ đã học được mạng con chỉ proxy 10.10.10.0/24 từ Looker-psc-demo.

Sử dụng bảng điều khiển, chuyển đến Mạng VPC → Mạng VPC → bản minh hoạ tại chỗ → ROUTES → KHU VỰC → XEM

b0073faed026931f.png

12. Tạo cơ sở dữ liệu postgres-Looker

Trong phần sau, bạn sẽ thực hiện SSH vào máy ảo postgres-database bằng Cloud Shell.

Bên trong Cloud Shell, hãy thực hiện lệnh ssh đến phiên bản cơ sở dữ liệu postgres**:**

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

Bên trong hệ điều hành, hãy xác định và ghi lại địa chỉ IP (ens4) của thực thể postgres-database:

ip a

Ví dụ:

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

Bên trong hệ điều hành, hãy đăng nhập vào postgresql:

sudo -u postgres psql postgres

Bên trong hệ điều hành, hãy nhập lời nhắc về mật khẩu:

\password postgres

Bên trong hệ điều hành, hãy đặt mật khẩu thành postgres (nhập cùng một mật khẩu hai lần):

postgres

Ví dụ:

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: 

Bên trong hệ điều hành, hãy thoát postgres:

\q

Ví dụ:

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

Trong phần sau, bạn sẽ chèn IP phiên bản postgres-database (192.168.10.4) và mạng con chỉ proxy (10.10.10.0/24) trong tệp pg_hba.conf dưới kết nối cục bộ IPv4.

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

Ảnh chụp màn hình bên dưới là nội dung cập nhật đã hoàn tất: eaff2ed6d27fa7cc.png

Trong phần sau, hãy bỏ ghi chú postgresql.conf để nghe tất cả địa chỉ IP "*" theo ảnh chụp màn hình bên dưới:

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

Trước:

65e0b1074dc48644.pngS

Sau:

14a0d1fa5455e23e.png.

Bên trong hệ điều hành, hãy khởi động lại dịch vụ postgresql:

sudo service postgresql restart

Bên trong hệ điều hành, hãy xác thực trạng thái postgresql là đang hoạt động:

sudo service postgresql status

Ví dụ:

Bên trong hệ điều hành, hãy xác thực trạng thái postgresql là đang hoạt động:

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. Tạo cơ sở dữ liệu postgres

Trong phần sau, bạn sẽ tạo một cơ sở dữ liệu postgres có tên postgres_looker và giản đồ looker_schema dùng để xác thực kết nối của Looker với mạng cục bộ.

Bên trong hệ điều hành, hãy đăng nhập vào postgres:

sudo -u postgres psql postgres

Bên trong hệ điều hành, hãy tạo cơ sở dữ liệu:

create database postgres_looker;

Bên trong hệ điều hành, hãy liệt kê cơ sở dữ liệu:

\l

Bên trong hệ điều hành, hãy tạo người dùng postgres_looker bằng mật khẩu postgreslooker:

create user postgres_looker with password 'postgreslooker';

Bên trong hệ điều hành, hãy kết nối với cơ sở dữ liệu:

\c postgres_looker;

Bên trong hệ điều hành, hãy tạo schema looker-schema và thoát đến lời nhắc Cloud Shell.

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

Ví dụ:

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. Tích hợp Looker với cơ sở dữ liệu Postgres postgres-database

Trong phần sau, bạn sẽ sử dụng Looker Console để tạo một kết nối Cơ sở dữ liệu với thực thể cơ sở dữ liệu postgres tại chỗ.

Chuyển đến QUẢN TRỊ → CƠ SỞ DỮ LIỆU → KẾT NỐI → Chọn THÊM KẾT NỐI

Điền thông tin kết nối theo ảnh chụp màn hình dưới đây, sau đó chọn KẾT NỐI

5900fdf0b698cbfc.png

Kết nối hiện đã được định cấu hình

4817157fd3b1277e.pngS

15. Xác thực khả năng kết nối của Looker

Trong phần sau, bạn sẽ tìm hiểu cách xác thực khả năng kết nối của Looker với cơ sở dữ liệu postgres trong on-prem-vpc bằng cách sử dụng "kiểm thử" của Looker hành động và TCPDUMP.

Trên Cloud Shell, hãy đăng nhập vào cơ sở dữ liệu postgres nếu phiên đã hết thời gian chờ.

Bên trong Cloud Shell, hãy thực hiện như sau:

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"

Trên hệ điều hành, hãy tạo bộ lọc TCPDUMP với mạng con chỉ dành cho proxy 10.10.10.0/24

sudo tcpdump -i any net 10.10.10.0/24 -nn

Chuyển đến mục QUẢN TRỊ → DATABASE → CONNECTIONS → postgres-database → Kiểm thử về kết nối dữ liệu

Sau khi bạn chọn Test (Kiểm thử), Looker sẽ kết nối với cơ sở dữ liệu postgres như được chỉ định dưới đây:

774f9313ece41034.pngs

Dọn dẹp

Từ một thiết bị đầu cuối Cloud Shell, xoá các thành phần trong phòng thí nghiệm

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. Xin chúc mừng

Xin chúc mừng! Bạn đã định cấu hình và xác thực thành công khả năng kết nối với cơ sở dữ liệu tại chỗ qua HA-VPN bằng Looker Console do Private Service Connect cung cấp.

Bạn đã tạo cơ sở hạ tầng nhà sản xuất, tìm hiểu cách tạo NEG kết hợp, Dịch vụ nhà sản xuất và điểm cuối PSC Looker cho phép kết nối với Dịch vụ nhà sản xuất.

Cosmopup cho rằng lớp học lập trình thật tuyệt vời!!

c911c127bffdee57.jpeg

Tiếp theo là gì?

Hãy xem một số lớp học lập trình này...

Tài liệu đọc thêm và video

Tài liệu tham khảo