建立經濟實惠的 Google Kubernetes Engine (GKE) 叢集和工作負載,並在單一位置集中管理資源。本指南說明下列範本,可用於部署基本網頁應用程式:
單一區域 GKE 叢集範本:建立單一區域應用程式所需的基本架構。這個範本會設定安全保密的 GKE 私人叢集,並針對資源管理進行最佳化。
單一區域 GKE 工作負載 (搶先版):部署包含基本網頁應用程式設定的 Helm 圖表。工作負載會根據 CPU 負載調整規模,並確保應用程式在自願性中斷期間仍可使用。
舉例來說,您可以部署叢集和工作負載範本,滿足下列業務需求:
| 範例 | 業務需求 | 實作 |
|---|---|---|
| 內部業務應用程式 | 內部應用程式需要嚴格的資料落地要求 (特定區域)、可預測的內部用量成本效益,以及高可靠性。 | 使用單一區域部署,確保資料位置。運用自動調度資源功能,有效管理內部使用者需求的資源。 |
| 區域電子商務後端 | 電子商務平台必須在特定區域具備高可用性,才能確保服務不中斷;此外,平台也必須具備可擴充性,才能在銷售活動期間處理流量高峰,並提供完善的安全防護,確保顧客交易和資料安全無虞。 | 建立多區域叢集設定,提供區域高可用性。使用安全啟動設定,強化機密客戶資料的安全防護機制。 |
| 區域資料處理和分析平台 | 處理及分析大型資料集的平台需要資料區域性,才能符合法規和效能要求;需要針對間歇性批次工作進行成本最佳化運算,並安全存取資料。 | 單一地區部署可確保資料留在地理界線內。針對大型處理作業和閒置期間,調整資源規模。 |
架構
下圖顯示範本中的元件和連線:
以下說明這個範本中的元件設定:
GKE Standard 叢集: 經濟實惠的單一區域叢集,可執行工作負載。
下表說明這個範本中的叢集設定:
設定 目的 location設為us-central1。將叢集資源限制在單一地理區域,確保資料位於本地,並盡量降低跨區域資料傳輸成本和延遲時間。 initial_node_count設為1。定義叢集首次佈建時,要在叢集預設節點集區中建立的初始節點。在地區叢集中,這是每個區域的節點數。 release_channel設為{"channel":"REGULAR"}。確保 GKE 叢集收到穩定且可預測的更新,在全新功能和可靠性之間取得平衡。 enable_intranode_visibility設為true。啟用後,您就能在虛擬私有雲流量記錄中查看節點內流量,這是網路監控、疑難排解和安全性分析的必要條件。 control_plane_endpoints_config設為{"dns_endpoint_config":{"allow_external_traffic":true}}。GKE 控制層已設定為可公開存取,方便您在虛擬私有雲 (VPC) 網路外管理叢集。 GKE 節點集區: 執行應用程式容器的工作站節點群組。
下表說明這個範本中的節點集區設定:
設定 目的 location設為us-central1。指定要建立這個節點集區的地區。與叢集位置類似,這可確保節點集區資源位於單一地理區域。 autoscaling設為{"max_node_count":3, "min_node_count":1}。為這個節點集區設定叢集自動調度器。確保節點集區一律維持至少一個節點,並將上限設為三個節點,以控管成本和資源耗用量。 node_config設為{"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}}。這個集區中節點的群組設定。機器類型是 CPU 和記憶體的平衡,適合一般用途的工作負載。定義授予服務帳戶的存取權。為受防護的 VM 執行個體啟用安全啟動功能,協助防範啟動層級的惡意軟體。
Helm 資訊套件設定
下表列出 Helm 資訊圖表設定,這些設定已自訂完成,可用於在 GKE 上部署及擴充基本網頁應用程式。
| 設定 | 目的 |
|---|---|
replicaCount: 2 |
建立兩個初始副本,以建立初始備援層級。 |
image.repository: gcr.io/google-samples/hello-app |
使用基本網頁伺服器 Docker 映像檔。 |
resources.requests: {"cpu": "100m", "memory": "128Mi"} |
指定每個 Pod 保留的 CPU 和記憶體下限,確保資源可用並有效率地排程。 |
hpa: {"enabled": true, "minReplicas": 2, "maxReplicas": 10, "targetCPUUtilizationPercentage": 60} |
啟用水平 Pod 自動調度器,根據 CPU 使用率自動調整 Pod 數量 (介於 2 到 10 個之間),確保效能和成本效益。 |
service: {"type": "ClusterIP", "port": 80} |
在標準 HTTP 連接埠上,設定服務以供叢集內部存取。 |
pdb: {"enabled": true, "minAvailable": 1} |
啟用 Pod 中斷預算,確保自願中斷期間至少有一個副本可用,維持高可用性。 |
建立網頁應用程式
使用「單一區域 GKE 叢集和工作負載」範本部署網頁應用程式。
部署網路基礎架構
設定及部署單一區域 GKE 叢集範本,建立執行網頁工作負載的基礎架構。
複製並部署「單一區域 GKE 叢集」範本做為應用程式。
系統會在您選擇的部署專案中建立 GKE 叢集。
設定元件。如要瞭解詳情,請參考下列資源:
按一下「Deploy」(部署)。應用程式會在幾分鐘後部署完成。
在「應用程式詳細資料」面板中,按一下「輸出」分頁標籤。
找出應用程式的 cluster_id。部署 Helm 圖表時,您會使用這項資訊。
部署網頁工作負載
使用「單一區域 GKE 工作負載」範本,將網頁工作負載部署至您建立的叢集。您將部署包含網頁工作負載設定的 Helm 圖表。
在「Google catalog」(Google 目錄) 頁面中,按一下「Single region GKE workload」(單一區域 GKE 工作負載) 範本上的「Create new application」(建立新應用程式)。
在「Name」(名稱) 欄位中,輸入應用程式的專屬名稱。
在「GKE Deployment Target」(GKE 部署目標) 區域中,執行下列操作:
從「專案清單」中,選取您從「單一區域 GKE 叢集」應用程式部署 GKE 叢集的專案。
從「Region」(區域) 清單中,選取部署 GKE 叢集的區域。
從「Clusters」(叢集) 清單中,選取已部署的 GKE 叢集。
從「命名空間」清單中,輸入您部署 GKE 叢集的命名空間。如果沒有變更名稱,請輸入
default。按一下「建立應用程式」。
應用程式建立完成後,畫面會顯示設定檔。
在「Helm chart」(Helm 資訊套件) 面板中,執行下列操作:
幾分鐘後,系統會將 Helm 資訊圖表設定部署至 GKE 叢集。
後續步驟
- 依據 Google 範本建構內容,複製及自訂這個範本。
- 您可以設計應用程式範本,自行定義設定。
- 透過 Google Cloud Architecture Framework 找出一般架構最佳做法。