Looker PSC 北向區域外部 L7 ALB

1. 簡介

在本程式碼研究室中,您將建立 L7 區域應用程式負載平衡器和 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.

259493afd914f68b.png

課程內容

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

軟硬體需求

def88091b42bfe4d.png

2. 建構項目

您將建立已加入許可清單的消費者網路 Looker-psc-demo,以部署區域性外部 L7 應用程式負載平衡器和 PSC 後端 NEG,該負載平衡器需要 Google 或自行簽署的憑證。無論採用哪一種方法,都必須註冊與 Looker 中定義的自訂網域相符的網域。

3. 網路需求

以下是網路需求的詳細說明:

元件

說明

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

自訂模式虛擬私有雲

PSC NEG 子網路

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

Proxy 專用子網路

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

後端服務

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

4. 程式碼研究室拓撲

7f06f9b9876f76c4.png

5. 設定和需求

自助式環境設定

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 「專案名稱」是這項專案參與者的顯示名稱。這是 Google API 不會使用的字元字串。你隨時可以更新。
  • 所有 Google Cloud 專案的專案 ID 均不得重複,而且設定後即無法變更。Cloud 控制台會自動產生專屬字串,您通常不需要特別在意。在大多數程式碼研究室中,您都需要參照專案 ID (通常會以 PROJECT_ID 表示)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。或者,您也可以自行嘗試,看看是否支援。這項設定在這個步驟後就無法變更,並會在整個專案期間維持不變。
  • 提醒您,有些 API 會使用第三個值「專案編號」。如要進一步瞭解這三個值,請參閱說明文件
  1. 接下來,您需要在 Cloud 控制台中啟用帳單功能,才能使用 Cloud 資源/API。執行本程式碼研究室不會產生任何費用 (如果有的話)。如要關閉資源,避免在本教學課程結束後繼續產生費用,您可以刪除已建立的資源或專案。Google Cloud 新使用者可享有價值 $300 美元的免費試用期

啟動 Cloud Shell

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

Google Cloud 控制台中,按一下右上方工具列的 Cloud Shell 圖示:

55efc1aaa7a4d3ad.png

佈建並連線至環境的作業只需幾分鐘的時間。完成後,您應該會看到如下的畫面:

7ffe5cbb04455448.png

這個虛擬機器會載入您需要的所有開發工具。提供永久的 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 查詢。

6be44a9b2536e3f4.png

接下來,請使用子網域 Looker.cosmopup.com 建立客戶網域

5424ce99136d5b3a.png

OAuth 範例

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

c7e5b8c7d2cc6a01.png

9. 憑證

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

  • 區域性自行管理憑證。如要瞭解如何建立及使用區域性自行管理憑證,請參閱「部署區域性自行管理憑證」一文。不支援憑證對應關係。
  • 區域性 Google 代管憑證。不支援憑證對應關係。Certificate Manager 支援下列類型的區域性 Google 代管憑證:
  • 具備每項專案 DNS 授權的區域性 Google 代管憑證。詳情請參閱「部署區域 Google 代管憑證」。
  • 區域性 Google 代管 (私人) 憑證 (搭配憑證授權單位服務)。詳情請參閱「使用 CA 服務部署區域性 Google 代管憑證」。

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

查看允許的 VPC

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

在 Cloud 控制台中,前往:

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

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

ad33177a2d721ea7.png

更新允許的虛擬私有雲

將 Looker 執行個體新增為「允許的虛擬私有雲」,藉此更新 Looker 執行個體,支援北向存取權。

在 Cloud 控制台中,前往:

Looker → Looker 執行個體 → 編輯

cbbc069688890b82.png

連線 → 允許的虛擬私有雲

請務必選取部署 Looker-psc-demo 的專案,接著點選虛擬私有雲 Looker-psc-demo,然後點選「繼續」。

dc931643e1b220a.png

3e26d16d83cceae9.png

驗證允許的 VPC

查看更新的「允許的 VPC」清單

在 Cloud 控制台中,前往:

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

e34664c867929c66.png

11. 建立 PSC 後端

Looker PSC 是服務生產者,會產生服務連結 URI,由服務使用者用來部署端點和後端,以從北向存取 Looker。在後續步驟中,您會先找出 Looker PSC 服務連結 URI,然後在消費者 VPC 中建立 Private Service Connect 網路端點群組 (NEG) 後端。

找出 Looker PSC 服務連結

在 Cloud 控制台中,瀏覽並複製服務連結 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:

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 控制台中,前往:

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

e3474ca153d7c55a.png

選取下列選項:

63c2e656953444f2.png

建立前端設定

請選取下列選項,並依據您的部署作業自訂環境:

  • 用於部署網路基礎架構的區域
  • 系統會根據您的區域自動填入僅限 Proxy 的子網路
  • 依據您選取的區域,可以使用先前定義的靜態 IP

a1c24bd4650b27d3.png

選取「憑證」,下拉式選單可選擇使用現有憑證或新憑證:

aac196a6fa1ee3d5.png

上傳憑證和私密金鑰,然後選取「建立」:

64a390bda0c9c3f1.png

選取「完成」以完成前端設定:

758a1921e3020854.png

建立後端設定

選取下列選項:

e9bf17b1277bd597.png

af3b4a59864b15bc.png

6c784cc0169c892b.png

ba3bf9fa7d3497a5.png

建立轉送規則

選取下列選項 (預設選項):

8884421f10a50ce0.png

檢查並完成

驗證設定並選取「建立」:

bdf5793ba8f46bb9.png

此時負載平衡器已啟用:

61adc0509f07ab15.png

存取 Looker UI

負載平衡器現已正常運作,您可以透過網路瀏覽器存取自訂 Looker 網域。請特別注意,系統可能會根據您使用的憑證類型顯示警告訊息,例如:不受信任的憑證或可信任的憑證。

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

ae43d0d0d7136044.png

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 認為程式碼研究室真的很棒!

c911c127bffdee57.jpeg

後續步驟

查看一些程式碼研究室…

其他資訊與影片

參考文件