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 或自行管理的憑證。如需更多詳細資訊,請參閱負載平衡器和憑證摘要頁面。
3. 網路需求
以下是網路需求的詳細說明:
元件 | 說明 |
虛擬私有雲 (looker-psc-demo) | 自訂模式虛擬私有雲 |
PSC NEG 子網路 | 用於為網路端點群組分配 IP 位址 |
僅限 Proxy 的子網路 | 系統會指派一個內部 IP 位址給每個負載平衡器的 Proxy 。從 Proxy 傳送到後端 VM 或端點的封包,其來源 IP 位址來自僅限 Proxy 的子網路。 |
後端服務 | 後端服務是負載平衡器與後端資源之間的橋樑。在本教學課程中,後端服務會與 PSC NEG 建立關聯。 |
4. 程式碼研究室拓樸圖
5. 設定和需求
自助式環境設定
- 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果您還沒有 Gmail 或 Google Workspace 帳戶,請務必建立帳戶。
- 「專案名稱」是這個專案參與者的顯示名稱。這是 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 VPC 許可清單中更新該網路。
虛擬私有雲網路
在 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 的 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
8. 建立自訂網域
如要建立自訂網域,請按照下列步驟操作:
在下方範例中,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
Example:
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:
Example:
user@cloudshell$ gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
pscConnectionStatus: ACCEPTED
建立區域性內部應用程式負載平衡器
在後續步驟中,您將使用 Cloud 控制台建立區域內部應用程式負載平衡器,並將產生的憑證與前端設定建立關聯。
在 Cloud 控制台中,前往:
網路服務 → 負載平衡 → 建立負載平衡器
選取下列選項:
建立後端設定
選取下列選項,並根據部署作業自訂環境:
- 用於部署網路基礎架構的區域
- 聯播網:looker-psc-demo
- 系統會根據您的區域和網路自動填入 Proxy 專用子網路
轉送規則
不需要設定
前端設定
確認已啟用負載平衡器,並取得 IP 位址。
在 Cloud 控制台中依序前往「網路服務」→「負載平衡」→「looker-ilb-alb」
12. DNS 解析
自訂網域的 DNS 解析可以是權威型 on-premesis 或 Cloud DNS。在本教學課程中,我們會將 Cloud DNS 定義為 Looker 自訂網域的權威伺服器。如要啟用內部網路至 GCP DNS 解析功能,您必須啟用傳入伺服器政策。建立傳入伺服器政策時,Cloud DNS 會在套用伺服器政策的 VPC 網路中建立傳入伺服器政策進入點。傳入伺服器政策進入點是內部 IPv4 位址,來自適用虛擬私有雲網路中每個子網路的主要 IPv4 位址範圍,但 Proxy 專用子網路除外。
在下一個部分,我們會建立 Looker 自訂網域 (looker.cosmopup.com) 的私人 DNS 區域,以及包含負載平衡器 IP 位址的 A 記錄。
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>"
Example:
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 虛擬私有雲網路和內部部署網路之間設定混合式網路 (例如互連網路、HA-VPN),才能啟用連線。
以下是建立混合式 NEG 連線至內部網路所需的步驟:
- 選擇網路連線產品 | Google Cloud
- 在採用虛擬私有雲對等互連的軸輻式架構中,混合式 NEG 會部署在與 Cloud Router 相同的 VPC (中樞)
- 請務必更新內部部署防火牆,以便支援 Proxy 專用子網路範圍,因為這個子網路會做為與內部部署工作負載通訊的來源 IP 位址
- 更新內部部署 DNS,將傳入轉送 IP 位址設為 looker.cosomopup.com 的 DNS 解析器
存取 Looker UI
負載平衡器現在已可運作,您可以透過網路瀏覽器存取自訂 Looker 網域。請注意,您可能會因為使用的憑證類型 (例如不受信任的憑證與受信任的憑證) 而收到警告。
以下是存取 Looker 自訂網域 looker.cosmopup.com 的範例 (不受信任的憑證),可取得 Looker UI 的北向存取權:
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 認為程式碼研究室很棒!
後續步驟
查看一些程式碼研究室…
- 使用 Private Service Connect 發布及使用服務
- 使用 Private Service Connect 和內部 TCP Proxy 負載平衡器,透過混合式網路連線至地端服務
- 可存取所有已發布的 Private Service Connect 程式碼研究室