arrow_back

建立內部負載平衡器

登录 加入
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

建立內部負載平衡器

Lab 50 分钟 universal_currency_alt 5 积分 show_chart 中级
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP216

Google Cloud 自修研究室標誌

總覽

Google Cloud 可為 TCP/UDP 型流量提供內部負載平衡功能。運用這項功能,即可透過私人負載平衡 IP 位址執行服務及調度服務資源,這類 IP 位址只能透過內部的虛擬機器執行個體存取。

在本研究室中,您將建立兩個位於相同區域的代管執行個體群組,接著會設定及測試內部負載平衡器,並將執行個體群組設為後端,如這張網路圖表所示:

Network_Diagram.png

目標

本研究室將說明如何執行下列工作:

  • 建立 HTTP 和健康狀態檢查防火牆規則
  • 設定兩個執行個體範本
  • 建立兩個代管執行個體群組
  • 設定並測試內部負載平衡器

設定和需求

點選「Start Lab」按鈕前的須知事項

請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。

您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。

如要完成這個研究室活動,請先確認:

  • 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行此研究室。這可以防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
注意:如果您擁有個人 Google Cloud 帳戶或專案,請勿用於本研究室,以免產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」(研究室詳細資料) 面板會顯示下列項目:

    • 「Open Google Console」(開啟 Google 控制台) 按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的暫時憑證
    • 完成這個研究室所需的其他資訊 (如有)
  2. 按一下「Open Google Console」(開啟 Google 控制台)。接著,研究室會啟動相關資源並開啟另一個分頁,當中會顯示「Sign in」(登入) 頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意事項:如果頁面中顯示了「Choose an account」(選擇帳戶) 對話方塊,請按一下「Use Another Account」(使用其他帳戶)
  3. 如有必要,請複製「Lab Details」(研究室詳細資料) 面板中的使用者名稱,然後貼到「Sign in」(登入) 對話方塊。按一下「Next」(下一步)

  4. 複製「Lab Details」(研究室詳細資料) 面板中的密碼,然後貼到「Welcome」(歡迎使用) 對話方塊。按一下「Next」(下一步)

    重要注意事項:請務必使用左側面板中的憑證,而非 Google Cloud 技能重點加強的憑證。 注意事項:如果使用自己的 Google Cloud 帳戶來進行這個研究室,可能會產生額外費用。
  5. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Cloud 控制台稍後會在這個分頁中開啟。

注意事項:按一下畫面左上方的導覽選單,即可在選單中查看 Google Cloud 產品與服務的清單。「導覽選單」圖示

工作 1:設定 HTTP 和健康狀態檢查防火牆規則

設定防火牆規則,允許傳送至後端的 HTTP 流量,以及來自 Google Cloud 健康狀態檢查工具的 TCP 流量。

探索 my-internal-app 網路

系統已為您設定網路 my-internal-app、子網路 subnet-a 與 subnet-b,以及 RDP、SSH 與 ICMP 流量的防火牆規則。

  1. 前往控制台,依序點選「導覽選單」圖示 >「虛擬私有雲網路」>「虛擬私有雲網路」

  2. 向下捲動,並留意網路 my-internal-app、子網路 subnet-asubnet-b

    各項 Google Cloud 專案一開始時都有 default 網路。此外,系統已為您建立 my-internal-app 網路,如網路圖表所示。

    您將在 subnet-asubnet-b 建立代管執行個體群組。這兩個子網路都位於 區域,因為內部負載平衡器屬於區域性服務。代管執行個體群組則位於不同的可用區,避免服務因可用區故障而無法運作。

建立 HTTP 防火牆規則

建立防火牆規則,允許 HTTP 流量從負載平衡器和網際網路傳送至後端,以在後端安裝 Apache。

  1. 一樣在「虛擬私有雲網路」頁面,點選左側窗格中的「防火牆」

  2. 留意 app-allow-icmpapp-allow-ssh-rdp 防火牆規則。

    系統已為您建立這些防火牆規則。

  3. 點選「Create Firewall Rule」

  4. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示輸入值或選取選項)
    名稱 app-allow-http
    網路 my-internal-app
    目標 指定的目標標記
    目標標記 lb-backend
    來源篩選器 IPv4 範圍
    來源 IPv4 範圍 0.0.0.0/0
    通訊協定和通訊埠 指定的通訊協定和通訊埠:勾選「TCP」並輸入 80
注意:請務必在「來源 IPv4 範圍」欄位中加入 /0 來指定所有網路。
  1. 點選「建立」

建立健康狀態檢查防火牆規則

健康狀態檢查會判斷負載平衡器的哪些執行個體能接收新的連線。以內部負載平衡來說,如果對達到負載平衡的執行個體執行健康狀態檢查探測,這類要求是從位址範圍 130.211.0.0/2235.191.0.0/16 傳出。防火牆規則必須允許這類連線。

  1. 一樣在「防火牆規則」頁面,點選「Create Firewall Rule」

  2. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示輸入值或選取選項)
    名稱 app-allow-health-check
    目標 指定的目標標記
    目標標記 lb-backend
    來源篩選器 IPv4 範圍
    來源 IPv4 範圍 130.211.0.0/22 和 35.191.0.0/16
    通訊協定和通訊埠 指定的通訊協定和通訊埠:勾選「TCP」
注意:請務必逐一輸入兩個「來源 IPv4 範圍」,並在中間加入空格。
  1. 點選「建立」

點選「Check my progress」,確認目標已達成。

設定 HTTP 和健康狀態檢查防火牆規則

工作 2:設定執行個體範本並建立執行個體群組

代管執行個體群組會使用執行個體範本,以建立相同執行個體的群組。請運用這些範本建立內部負載平衡器的後端。

設定執行個體範本

執行個體範本是一種 API 資源,可用來建立 VM 執行個體和代管執行個體群組。執行個體範本會定義機器類型、開機磁碟映像檔、子網路、標籤和其他執行個體屬性。請為 my-internal-app 網路的兩個子網路建立執行個體範本。

  1. 前往控制台,依序點選「導覽選單」圖示 >「Compute Engine」>「執行個體範本」

  2. 點選「建立執行個體範本」

  3. 在「Name」部分輸入 instance-template-1

  4. 在「位置」部分,選取「Global」

  5. 在「系列」部分,選取「E2」

  6. 點選「進階選項」

  7. 點選「網路」

  8. 在「網路標記」部分,指定「lb-backend」

    注意:網路標記 lb-backend 是用於確保這些執行個體套用 HTTP健康狀態檢查防火牆規則。
  9. 在「網路介面」部分,點選下拉式選單圖示來進行編輯。

  10. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示輸入值或選取選項)
    網路 my-internal-app
    子網路 subnet-a
  11. 點選「完成」

  12. 點選「管理」

  13. 在「中繼資料」下方,點選「新增項目」並指定下列設定:

    Key 1 Value 1
    startup-script-url gs://cloud-training/gcpnet/ilb/startup.sh
注意:startup-script-url 能指定執行個體啟動時執行的指令碼。這個指令碼會安裝 Apache 並變更歡迎頁面,在頁面中納入用戶端 IP,以及 VM 執行個體的名稱、區域和可用區。歡迎查看指令碼內容
  1. 點選「建立」
  2. 等待執行個體範本建立完成。

設定下一個執行個體範本

複製 instance-template-1,為 subnet-b 建立另一個執行個體範本:

  1. 一樣在「執行個體範本」頁面,勾選 instance-template-1 旁的方塊,接著點選「複製」。 請務必將名稱改為 instance-template-2
  2. 點選「進階選項」
  3. 點選「網路」分頁標籤。
  4. 在「網路介面」部分,點選下拉式選單圖示來進行編輯。
  5. 選取「subnet-b」做為「子網路」
  6. 依序點選「完成」>「建立」

建立代管執行個體群組

subnet-asubnet-b 分別建立一個代管執行個體群組。

注意:請為 subnet-a 指定同區域內的其他可用區。舉例來說,如果 subnet-a 的可用區為 us-west2-a,您可以將 us-west2-b 選為 subnet-b 的可用區。
  1. 一樣在「Compute Engine」頁面,點選左側窗格中的「執行個體群組」,接著按一下「建立執行個體群組」

  2. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示輸入值或選取選項)
    名稱 instance-group-1
    執行個體範本 instance-template-1
    位置 單一可用區
    區域
    可用區
    「自動配置」>「執行個體數量下限」 1
    「自動配置」>「執行個體數量上限」 5
    「自動配置」>「Autoscaling signals」(點選下拉式選單圖示來進行編輯) >「信號類型」 CPU 使用率
    目標 CPU 使用率 80
    初始化期間 45
注意:代管執行個體群組提供自動調度資源功能,可根據負載的增減,在代管執行個體群組中自動新增或移除執行個體。這項功能可協助應用程式妥善處理增加的流量,並在資源需求降低時節省成本。只要定義自動調度資源政策,自動配置器就會依據測得的負載量,自動調整資源配置。
  1. 點選「建立」

    instance-group-2 執行相同程序,區域與 subnet-a 相同,但可用區不同:

  2. 點選「建立執行個體群組」

  3. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示輸入值或選取選項)
    名稱 instance-group-2
    執行個體範本 instance-template-2
    位置 單一可用區
    區域
    可用區 可用區 (區域需與 subnet-a 相同,但可用區不同)
    「自動配置」>「執行個體數量下限」 1
    「自動配置」>「執行個體數量上限」 5
    「自動配置」>「Autoscaling signals」(點選下拉式選單圖示來進行編輯) >「信號類型」 CPU 使用率
    目標 CPU 使用率 80
    初始化期間 45
  4. 點選「建立」

驗證後端

確認兩個子網路中已建立 VM 執行個體,接著建立公用程式 VM 來存取後端的 HTTP 網站。

  1. 一樣在「Compute Engine」頁面,點選「VM 執行個體」

  2. 留意兩個開頭分別為 instance-group-1instance-group-2 的執行個體。

    這些執行個體位於不同的可用區,內部 IP 位置屬於 subnet-asubnet-b CIDR 區塊的一部分。

  3. 點選「建立執行個體」

  4. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示輸入值或選取選項)
    名稱 utility-vm
    區域
    可用區
    系列 E2
    機器類型 共用核心 > e2-micro (1 個共用 vCPU)
  5. 點選「進階選項」

  6. 點選「網路」

  7. 在「網路介面」部分,點選下拉式選單圖示來進行編輯。

  8. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示輸入值或選取選項)
    網路 my-internal-app
    子網路 subnet-a
    主要內部 IPv4 位址 臨時 (自訂)
    自訂臨時 IP 位址 10.10.20.50
  9. 依序點選「完成」>「建立」

點選「Check my progress」,確認目標已達成。

設定執行個體範本並建立執行個體群組
  1. 請注意,用於後端的內部 IP 位址是 10.10.20.210.10.30.2
注意:如果 IP 位址不同,請替換下方兩個 curl 指令中的 IP 位址。
  1. 在「utility-vm」部分,點選「SSH」來啟動終端機並連線。
  2. 如要對 instance-group-1-xxxx 驗證歡迎頁面,請執行下列指令:
curl 10.10.20.2

您會看見類似下方的輸出內容:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-1-1zn8<h2>Server Location</h2>Region and Zone: us-central1-a
  1. 若要針對 instance-group-2-xxxx 驗證歡迎頁面,請執行下列指令:
curl 10.10.30.2

您會看見類似下方的輸出內容:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-2-q5wp<h2>Server Location</h2>Region and Zone: us-central1-b

注意:curl 指令展示了各個 VM 執行個體會分別列出用戶端 IP,以及自身的名稱與位置。如要確認內部負載平衡器是否將流量傳送至兩個後端,這個做法就能派上用場。
  1. 關閉 utility-vm 的 SSH 終端機:
exit

工作 3:設定內部負載平衡器

設定內部負載平衡器,平衡兩個後端 instance-group-1instance-group-2 之間的流量,如圖所示:

網路圖表:內部負載平衡器平衡兩個後端之間的流量

開始設定

  1. 前往 Cloud 控制台,依序點選「導覽選單」圖示 >「網路服務」>「負載平衡」>「建立負載平衡器」

  2. 在「負載平衡器類型」部分,選取「Network Load Balancer (TCP/SSL)」

  3. 在「直通或使用 Proxy」部分,選取「直通式負載平衡器」

  4. 在「公開或內部」部分,選取「內部」

  5. 點選「設定」

  6. 在「Name」部分輸入 my-ilb

  7. 在「區域」部分,選取「」。

  8. 在「網路」部分,選取「my-internal-app」

設定區域性後端服務

後端服務可監控執行個體群組,避免用量超過設定值。

  1. 點選「後端設定」

  2. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示選取選項)
    執行個體群組 instance-group-1
  3. 點選「Add backend」

  4. 在「執行個體群組」部分,選取「instance-group-2」

  5. 在「健康狀態檢查」部分,選取「建立健康狀態檢查」

  6. 設定下方的值,其他屬性均保留預設值:

    屬性 值 (依指示選取選項)
    名稱 my-ilb-health-check
    通訊協定 TCP
    通訊埠 80
注意:健康狀態檢查會判斷哪些執行個體可以接收新的連線。這項 HTTP 健康狀態檢查會每 5 秒輪詢執行個體一次,並等待最多 5 秒來接收回應。如果成功兩次,就會判定為健康狀態良好;如果失敗兩次,則會判定為健康狀態不良。
  1. 點選「儲存」
  2. 確認 Cloud 控制台的「後端設定」旁顯示藍色勾號。如未顯示,請重新檢查一遍,確認是否已完成上述所有步驟。

設定前端

前端會將流量轉送至後端。

  1. 點選「前端設定」

  2. 指定下方的值,其他項目均保留預設值:

    屬性 值 (依指示輸入屬性值或選取選項)
    子網路 subnet-b
    內部 IP 在「IP 位址」下方,選取「建立 IP 位址」
  3. 指定下方的值,其他項目均保留預設值:

    屬性 值 (依指示輸入值或選取選項)
    名稱 my-ilb-ip
    靜態 IP 位址 自行選擇
    自訂 IP 位址 10.10.30.5
  4. 點選「保留」

  5. 在「通訊埠編號」部分,輸入 80

  6. 點選「完成」

檢查並建立內部負載平衡器

  1. 點選「檢查並完成」

  2. 檢查「後端」和「前端」

  3. 點選「Create」。等待負載平衡器建立完成,再執行下一項工作。

點選「Check my progress」,確認目標已達成。

設定內部負載平衡器

工作 4:測試內部負載平衡器

確認 my-ilb IP 位址將流量轉送至 instance-group-1instance-group-2

存取內部負載平衡器

  1. 前往 Cloud 控制台,依序點選「導覽選單」圖示 >「Compute Engine」>「VM 執行個體」
  2. 在「utility-vm」部分,點選「SSH」來啟動終端機並連線。
  3. 如要驗證內部負載平衡器是否轉送流量,請執行下列指令:
curl 10.10.30.5

您會看見類似下方的輸出內容:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-1-1zn8<h2>Server Location</h2>Region and Zone: us-central1-a 注意:一如預期,流量從內部負載平衡器 (10.10.30.5) 轉送至後端。
  1. 將相同指令重複執行數次。

在輸出內容中,您會看見 中的 instance-group-1 和區域相同但可用區不同的 instance-group-2 發出回應。

恭喜!

在本研究室中,您在 區域建立了兩個代管執行個體群組,並設定了防火牆規則來接收傳送至這些執行個體的 HTTP 流量,以及來自 Google Cloud 健康狀態檢查工具的 TCP 流量。接著您為這些執行個體群組設定了內部負載平衡器,並進行測試。

後續步驟/瞭解詳情

如要瞭解負載平衡相關的基本概念,請參閱「Cloud Load Balancing documentation」(Google Cloud Load Balancing 說明文件)。

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 4 月 17 日

研究室上次測試日期:2024 年 4 月 17 日

Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。