Looker PSC 北向區域內部 L7 ALB

1. 簡介

在本程式碼研究室中,您將建立第 7 層區域內部應用程式負載平衡器和 Private Service Connect 後端,以取得 Looker 的北向存取權。如要從北向存取 Looker,必須將 Consumer VPC 列入 Looker PSC 執行個體的許可清單。

Private Service Connect 是 Google Cloud 網路功能,可讓消費者從虛擬私有雲網路內,以私密方式存取代管服務。同樣地,代管服務生產端也能在各自獨立的虛擬私有雲網路中代管這些服務,並為消費者提供私人連線。舉例來說,如果您使用 Private Service Connect 存取 Looker,您就是服務使用者,而 Google 則是服務供應商,如圖 1 所示。

圖 1.

145ea4672c3a3b14.png

南向存取權 (也稱為反向 PSC) 可讓消費者以生產者身分建立已發布的服務,允許 Looker 存取地端、虛擬私有雲、代管服務和網際網路上的端點。無論 Looker PSC 部署在哪個區域,您都可以在任何區域部署南向連線,如圖 2 所示。

圖 2.

3edfcc67e195d082.png

課程內容

  • 網路需求
  • 更新 Looker 許可清單,允許北向存取
  • 在消費者虛擬私有雲中建立 Private Service Connect 後端
  • Google 憑證與自行簽署的憑證

軟硬體需求

def88091b42bfe4d.png

2. 建構項目

您將建立允許的 Consumer 網路 (looker-psc-demo),以部署需要 Google 或自行管理憑證的區域內部 L7 應用程式負載平衡器和 PSC 後端 NEG。詳情請參閱負載平衡器和憑證摘要頁面

3. 網路需求

以下是網路需求明細:

元件

說明

虛擬私有雲 (looker-psc-demo)

自訂模式虛擬私有雲

PSC NEG 子網路

用於為網路端點群組分配 IP 位址

僅限 Proxy 子網路

系統會指派一個內部 IP 位址給每個負載平衡器的Proxy 。從 Proxy 傳送到後端 VM 或端點的封包,其來源 IP 位址來自僅限 Proxy 的子網路。

後端服務

後端服務是負載平衡器與後端資源之間的橋樑。在本教學課程中,後端服務會與 PSC NEG 建立關聯。

4. 程式碼研究室拓撲

2f6bb87ef0e139b2.png

5. 設定和需求

自修實驗室環境設定

  1. 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 專案名稱是這個專案參與者的顯示名稱。這是 Google API 未使用的字元字串。你隨時可以更新。
  • 專案 ID 在所有 Google Cloud 專案中都是不重複的,而且設定後即無法變更。Cloud 控制台會自動產生專屬字串,通常您不需要在意該字串為何。在大多數程式碼研究室中,您需要參照專案 ID (通常標示為 PROJECT_ID)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。你也可以嘗試使用自己的名稱,看看是否可用。完成這個步驟後就無法變更,且專案期間會維持不變。
  • 請注意,有些 API 會使用第三個值,也就是「專案編號」。如要進一步瞭解這三種值,請參閱說明文件
  1. 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成這個程式碼研究室的費用不高,甚至可能完全免費。如要關閉資源,避免在本教學課程結束後繼續產生費用,請刪除您建立的資源或專案。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。

啟動 Cloud Shell

雖然可以透過筆電遠端操作 Google Cloud,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是可在雲端執行的指令列環境。

Google Cloud 控制台中,點選右上工具列的 Cloud Shell 圖示:

55efc1aaa7a4d3ad.png

佈建並連線至環境的作業需要一些時間才能完成。完成後,您應該會看到如下的內容:

7ffe5cbb04455448.png

這部虛擬機器搭載各種您需要的開發工具,並提供永久的 5GB 主目錄,而且可在 Google Cloud 運作,大幅提升網路效能並強化驗證功能。您可以在瀏覽器中完成本程式碼研究室的所有作業。您不需要安裝任何軟體。

6. 事前準備

啟用 API

在 Cloud Shell 中,確認專案 ID 已設定完畢:

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

啟用所有必要服務:

gcloud services enable compute.googleapis.com

7. 消費者網路

在下一節中,您將建立用戶網路,並在 Looker PSC 虛擬私有雲允許清單中更新。

虛擬私有雲網路

在 Cloud Shell 中執行下列操作:

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

建立子網路

在 Cloud Shell 中,建立消費者網路端點群組子網路:

gcloud compute networks subnets create consumer-psc-neg-subnet --network looker-psc-demo --range 172.16.30.0/28 --region $region --enable-private-ip-google-access

在 Cloud Shell 中,建立內部應用程式負載平衡器子網路:

gcloud compute networks subnets create consumer-ilb-subnet --network looker-psc-demo --range 172.16.40.0/28 --region $region --enable-private-ip-google-access

在 Cloud Shell 中,建立生產者區域專屬的僅限 Proxy 子網路:

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

8. 建立自訂網域

如要建立自訂網域,請按照下列步驟操作:

在下方範例中,looker.cosmopup.com 是自訂網域

5424ce99136d5b3a.png

OAuth 範例

以下是子網域 looker.cosmopup.com 的授權來源和回呼 OAuth 憑證範例。

c7e5b8c7d2cc6a01.png

9. 憑證

您可以建立 Compute Engine 或 Certificate Manager 憑證。您可以使用下列任一方法,透過 Certificate Manager 建立憑證:

10. Looker 虛擬私有雲允許清單

查看允許的 VPC

在下一節中,您將使用 Cloud Console 使用者介面查看 Looker 允許的 VPC 清單。

在 Cloud 控制台中,前往:

Looker → Looker 執行個體 → 詳細資料

以下範例顯示「允許的虛擬私有雲」清單中沒有任何項目:

ad33177a2d721ea7.png

更新允許的 VPC

將 looker-psc-demo 新增為允許的虛擬私有雲,更新 Looker 執行個體以支援北向存取。

在 Cloud 控制台中,前往:

依序點選「Looker」→「Looker 執行個體」→「編輯」

cbbc069688890b82.png

「連線」→「允許的虛擬私有雲」

請務必選取部署 looker-psc-demo 的專案,然後選取 VPC looker-psc-demo,再按一下「繼續」。

dc931643e1b220a.png

3e26d16d83cceae9.png

驗證允許的虛擬私有雲

查看更新後的「允許的虛擬私有雲」清單

在 Cloud 控制台中,前往:

Looker → Looker 執行個體 → 詳細資料

e34664c867929c66.png

11. 建立 PSC 後端

Looker PSC 做為服務供應商,會產生服務連結 URI,供服務使用者部署端點和後端,以取得 Looker 的北向存取權。在下一個步驟中,您會找出 Looker PSC 服務附件 URI,然後在 Consumer VPC 中建立 Private Service Connect 網路端點群組 (NEG) 後端。

找出 Looker PSC 服務連結

在 Cloud Console 中,前往並複製服務附件 URI:

Looker → Looker 執行個體 → 詳細資料

a253f94e946a1eef.png

建立 PSC 網路端點群組

在 Cloud Shell 中執行下列指令,請務必更新 psc-target-service:

gcloud compute network-endpoint-groups create looker-northbound-neg \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=[UPDATE WITH YOU LOOKER SERVICE ATTACHMENT URI] \
    --region=$region \
    --network=looker-psc-demo \
    --subnet=consumer-psc-neg-subnet

範例:

gcloud compute network-endpoint-groups create looker-northbound-neg \
    --network-endpoint-type=private-service-connect \
 --psc-target-service=projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183 \
    --region=$region \
    --network=looker-psc-demo \
    --subnet=consumer-psc-neg-subnet

驗證 PSC 網路端點群組建立作業

在 Cloud Shell 中執行下列操作,確保 pscConnectionStatus 為「accepted」:

gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:

範例:

user@cloudshell$ gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus: 
  pscConnectionStatus: ACCEPTED

建立區域性內部應用程式負載平衡器

在下列步驟中,您將使用 Cloud Console 建立區域內部應用程式負載平衡器,同時將產生的憑證與前端設定建立關聯。

在 Cloud 控制台中,前往:

「網路服務」→「負載平衡」→「建立負載平衡器」

e3474ca153d7c55a.png

選取下列選項:

c80afa6a28b6d922.png

建立後端設定

選取下列選項,並根據部署作業自訂環境:

  • 部署網路基礎架構時使用的區域
  • 網路:looker-psc-demo
  • 系統會根據您的區域和網路,自動填入僅限 Proxy 的子網路

115627dc54d7a582.png

b3eaa88dd02a95c1.png

cf519145f0259061.png

530527bc9273e002.png

轉送規則

不需要設定

53a80d74b3c7dd56.png

前端設定

29faa25397025fb4.png

538da2b4930d243b.png

bbc13e921681dd65.png

確認已啟用負載平衡器,並取得 IP 位址。

在 Cloud 控制台 → 網路服務 → 負載平衡 → looker-ilb-alb

abc7d02b4c951c73.png

12. DNS 解析

自訂網域的 DNS 解析可以是地端部署或 Cloud DNS 的權威解析。在本教學課程中,我們會將 Cloud DNS 定義為 Looker 自訂網域的權威伺服器。如要啟用地端部署到 GCP DNS 的解析功能,必須啟用「傳入伺服器政策」。建立傳入伺服器政策時,Cloud DNS 會在套用伺服器政策的 VPC 網路中,建立傳入伺服器政策進入點。傳入伺服器政策進入點就是內部 IPv4 位址,來自適用 VPC 網路中每個子網路的主要 IPv4 位址範圍,但僅限 Proxy 子網路除外。

在下列章節中,系統會為 Looker 自訂網域 (looker.cosmopup.com) 建立私人 DNS 區域和 A 記錄,其中包含負載平衡器 IP 位址。

13. 建立私人 DNS 區域

在 Cloud Shell 中建立 Cloud DNS 私人區域。

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

在 Cloud Shell 中,建立包含負載平衡器 IP 位址的 A 記錄 (該位址是在稍早的步驟中取得)。

gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="<insert-your-ip>"

範例:

gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="172.16.20.7"

接著,您必須在 looker-psc-demo 虛擬私有雲和內部部署網路之間設定混合式網路 (例如互連網路、高可用性 VPN),才能啟用連線。

如要建立混合式 NEG 與內部部署環境的連線,請按照下列步驟操作:

存取 Looker 使用者介面

負載平衡器運作後,您就可以透過網路瀏覽器存取自訂 Looker 網域。請注意,您可能會遇到警告,具體情況取決於使用的憑證類型,例如不受信任的憑證與受信任的憑證。

以下是存取 Looker 自訂網域 looker.cosmopup.com 的範例 (不受信任的憑證),可取得 Looker UI 的北向存取權:

ae43d0d0d7136044.png

14. 清理

在單一 Cloud Shell 終端機中刪除實驗室元件:

gcloud compute forwarding-rules delete regional-internal-alb-fr --region=$region -q

gcloud compute target-https-proxies delete regional-internal-alb-target-proxy --region=$region -q

gcloud compute url-maps delete regional-internal-alb --region=$region -q

gcloud compute backend-services delete looker-psc-neg-backend-svc --region=$region -q

gcloud compute addresses delete regional-alb-static-ip --region=$region -q

gcloud compute network-endpoint-groups delete looker-northbound-neg --region=$region -q

gcloud compute networks delete looker-psc-demo -q

15. 恭喜

恭喜!您已成功設定並驗證使用客戶網域和區域內部應用程式負載平衡器,與 Looker 的北向連線。

您建立了消費者基礎架構、瞭解如何建立 PSC NEG 和自訂網域,並認識不同的憑證選項。許多精彩內容可協助您開始使用 Looker。

Cosmopup 認為程式碼研究室很棒!

c911c127bffdee57.jpeg

後續步驟

查看一些程式碼研究室…

延伸閱讀和影片

參考文件