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.

259493afd914f68b.png

課程內容

  • 網路需求
  • 更新 Looker 許可清單,允許北向存取
  • 在消費者虛擬私有雲中建立 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 或端點的封包,其來源 IP 位址來自僅限 Proxy 的子網路。

後端服務

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

4. 程式碼研究室拓撲

7f06f9b9876f76c4.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 中,建立生產者區域專屬的僅限 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

保留負載平衡器的 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 範例

以下是子網域 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,然後在消費者虛擬私有雲中建立 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

選取下列選項:

63c2e656953444f2.png

建立前端設定

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

  • 部署網路基礎架構時使用的區域
  • 系統會根據您所在的區域自動填入 Proxy 專用子網路
  • 根據您選取的區域,提供先前定義的靜態 IP

a1c24bd4650b27d3.png

選取「憑證」後,系統會顯示使用現有或新憑證的選項:

aac196a6fa1ee3d5.png

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

64a390bda0c9c3f1.png

選取「完成」即可完成前端設定:

758a1921e3020854.png

建立後端設定

選取下列選項:

e9bf17b1277bd597.png

af3b4a59864b15bc.png

6c784cc0169c892b.png

ba3bf9fa7d3497a5.png

建立轉送規則

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

8884421f10a50ce0.png

檢查並完成

確認設定,然後選取「CREATE」:

bdf5793ba8f46bb9.png

負載平衡器現已啟用:

61adc0509f07ab15.png

存取 Looker 使用者介面

負載平衡器運作後,您就可以透過網路瀏覽器存取自訂 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

後續步驟

查看一些程式碼研究室…

延伸閱讀和影片

參考文件