1. 簡介
在本程式碼研究室中,您將建立 L7 區域應用程式負載平衡器和 Private Service Connect 後端,以便取得 Looker 的北向存取權。如要向 Looker 提供北向存取權,您必須將 Consumer VPC 加入 Looker PSC 執行個體的許可清單。
Private Service Connect 是 Google Cloud 網路的功能,可讓使用者在虛擬私有雲網路中私下存取代管服務。同樣地,這項功能也允許代管服務供應商在各自的獨立虛擬私有雲網路中代管這些服務,並為消費者提供私人連線。舉例來說,如果您使用 Private Service Connect 存取 Looker,您就是服務使用者,而 Google 則是服務供應商,如圖 1 所示。
圖 1.
南向存取權 (也稱為反向 PSC) 可讓消費者以供應商的身分建立已發布服務,讓 Looker 存取內部部署的虛擬私有雲端網路端點、代管服務和網際網路。南向連線可部署在任何區域,不受 Looker PSC 部署位置影響,如圖 2 所示。
圖 2.
課程內容
- 網路需求
- 更新 Looker 的 northbound 存取許可清單
- 在用戶端虛擬私有雲中建立 Private Service Connect 後端
- Google 與自行簽署憑證
軟硬體需求
- 具備擁有者權限的 Google Cloud 專案
- 已註冊的網域
- 現有的 Looker PSC 執行個體
2. 建構項目
您將建立許可清單中的消費者網路 looker-psc-demo,以便部署區域性外部 L7 應用程式負載平衡器和 PSC 後端 NEG,這兩者都需要 Google 或自行簽署的憑證。無論採用哪種方法,都必須註冊與 Looker 中定義的自訂網域相符的網域。
3. 網路需求
以下是網路需求的詳細說明:
元件 | 說明 |
虛擬私有雲 (looker-psc-demo) | 自訂模式虛擬私有雲 |
PSC NEG 子網路 | 用於為網路端點群組分配 IP 位址 |
Proxy 專用子網路 | 系統會指派一個內部 IP 位址給每個負載平衡器的 Proxy 。從 Proxy 傳送到後端 VM 或端點的封包,其來源 IP 位址來自僅限 Proxy 的子網路。 |
後端服務 | 後端服務是負載平衡器與後端資源之間的橋樑。在本教學課程中,後端服務會與 PSC NEG 建立關聯。 |
4. 程式碼研究室拓樸圖
5. 設定和需求
自助式環境設定
- 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果您還沒有 Gmail 或 Google Workspace 帳戶,請務必建立帳戶。
- 「Project name」是這個專案參與者的顯示名稱。這是 Google API 不會使用的字元字串。您隨時可以更新。
- 專案 ID 在所有 Google Cloud 專案中都是不重複的值,且無法變更 (設定後即無法變更)。Cloud 控制台會自動產生專屬字串,您通常不需要理會。在大多數程式碼研究室中,您都需要參照專案 ID (通常會以
PROJECT_ID
表示)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。或者,您也可以自行嘗試,看看是否可用。在這個步驟完成後就無法變更,且會在整個專案期間維持不變。 - 提醒您,有些 API 會使用第三個值「專案編號」。如要進一步瞭解這三個值,請參閱說明文件。
- 接下來,您需要在 Cloud 控制台中啟用帳單功能,才能使用 Cloud 資源/API。執行這個程式碼研究室不會產生太多費用,甚至可能完全不會產生費用。如要關閉資源,避免在本教學課程結束後繼續產生費用,您可以刪除建立的資源或專案。Google Cloud 新使用者可享有價值 $300 美元的免費試用期。
啟動 Cloud Shell
雖然 Google Cloud 可透過筆記型電腦遠端操作,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是在雲端運作的指令列環境。
在 Google Cloud 控制台中,按一下右上方工具列的 Cloud Shell 圖示:
佈建並連線至環境的作業需要一些時間才能完成。完成後,您應該會看到如下的畫面:
這個虛擬機器會載入您需要的所有開發工具。提供永久的 5 GB 主目錄,而且在 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 中建立僅限 Proxy 的 Producer 區域子網路:
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
保留負載平衡器的 IP 位址
在 Cloud Shell 中為負載平衡器保留外部 IP 位址:
gcloud compute addresses create regional-alb-static-ip \
--region=$region \
--network-tier=STANDARD
在 Cloud Shell 中查看保留的 IP 位址:
gcloud compute addresses describe regional-alb-static-ip --region=us-central1 | grep -i address:
輸出內容範例:
user@cloudshell$ gcloud compute addresses describe regional-alb-static-ip --region=us-central1 | grep -i address:
address: 35.208.202.244
8. 建立自訂網域
如要建立自訂網域,請按照下列步驟操作:
自訂網域範例
自訂網域 looker.cosmopup.com 是公開 DNS 子網域,與先前定義的靜態 IP 位址 (regional-alb-static-ip) 的 A 記錄建立關聯。請參閱從終端機擷取的螢幕截圖,驗證 DNS 查詢。
接著,使用 looker.cosmopup.com 子網域建立客戶網域
OAuth 範例
以下是授權來源的 OAuth 憑證和子網域 looker.cosmopup.com 的回呼範例。
9. 憑證
您可以建立 Compute Engine 或 Certificate Manager 憑證。請使用下列任一方法,透過憑證管理工具建立憑證:
- 區域性自行管理憑證。如要瞭解如何建立及使用區域性自行管理憑證,請參閱「部署區域性自行管理憑證」一文。不支援憑證對應。
- 區域性 Google 代管憑證。不支援憑證對應表。Certificate Manager 支援下列類型的區域性 Google 代管憑證:
- 區域性 Google 代管憑證,並針對每個專案授權 DNS。詳情請參閱「部署區域性 Google 代管憑證」。
- 區域性 Google 代管 (私人) 憑證 (搭配憑證授權單位服務)。詳情請參閱「透過 CA 服務部署地區性 Google 代管憑證」。
10. Looker VPC 許可清單
查看允許的 VPC
在下一節中,您將使用 Cloud Console 使用者介面查看 Looker 允許的 VPC 清單。
在 Cloud 控制台中,前往:
Looker → Looker 執行個體 → 詳細資料
以下範例中,允許的虛擬私有雲清單中沒有任何項目:
更新允許的 VPC
將 looker-psc-demo 新增為「允許的 VPC」,更新 Looker 執行個體,以便支援北向存取。
在 Cloud 控制台中,前往:
Looker → Looker 執行個體 → 編輯
連線 → 允許的虛擬私有雲
請務必選取已部署 looker-psc-demo 的專案,接著選取 VPC looker-psc-demo,然後按一下「繼續」。
驗證允許的 VPC
查看更新的「允許的虛擬私有雲」清單
在 Cloud 控制台中,前往:
Looker → Looker 執行個體 → 詳細資料
11. 建立 PSC 後端
Looker PSC 會以服務供應商的身分產生服務連結 URI,供服務消費者用來部署端點和後端,以便取得 Looker 的北向存取權。在後續步驟中,您會指定 Looker PSC 服務連結 URI,然後在消費者 VPC 中建立 Private Service Connect 網路端點群組 (NEG) 後端。
找出 Looker PSC 服務連結
在 Cloud 控制台中,前往並複製服務附件 URI:
Looker → Looker 執行個體 → 詳細資料
建立 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 已接受:
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 控制台建立區域外部應用程式負載平衡器,並將產生的憑證與前端設定建立關聯。
在 Cloud 控制台中,前往:
「Network Services」→「負載平衡」→「建立負載平衡器」
選取下列選項:
建立前端設定
選取下列選項,並根據部署作業自訂環境:
- 用於部署網路基礎架構的區域
- 系統會根據您的區域自動填入 Proxy 專用子網路
- 根據所選區域,可使用先前定義的靜態 IP
選取「憑證」後,系統會顯示使用現有或新憑證的選項:
上傳憑證和私密金鑰,然後選取「建立」:
選取「DONE」(完成) 即可完成前端設定:
建立後端設定
選取下列選項:
建立轉送規則
選取下列選項 (預設選項):
檢查並完成
確認設定並選取「CREATE」(建立):
負載平衡器現已啟用:
存取 Looker UI
負載平衡器已可運作,您可以透過網路瀏覽器存取自訂 Looker 網域。請注意,您可能會因為使用的憑證類型 (例如不受信任的憑證與受信任的憑證) 而收到警告。
以下是存取 Looker 自訂網域 looker.cosmopup.com 的範例 (不受信任的憑證),可取得 Looker UI 的北向存取權:
12. 清理
從單一 Cloud Shell 終端機刪除實驗室元件
gcloud compute forwarding-rules delete regional-external-alb-fr --region=$region -q
gcloud compute target-https-proxies delete regional-external-alb-target-proxy --region=$region -q
gcloud compute url-maps delete regional-external-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
13. 恭喜
恭喜!您已成功使用客戶網域和區域外部應用程式負載平衡器,設定並驗證 Looker 的北向連線。
您已建立消費者基礎架構、瞭解如何建立 PSC NEG 和自訂網域,並瞭解各種憑證選項。Looker 提供許多令人興奮的功能,讓您輕鬆上手。
Cosmopup 認為程式碼研究室很棒!
後續步驟
查看一些程式碼研究室…
- 使用 Private Service Connect 發布及使用服務
- 使用 Private Service Connect 和內部 TCP Proxy 負載平衡器,透過混合式網路連線至地端服務
- 可存取所有已發布的 Private Service Connect 程式碼研究室