本主題說明如何在 GKE on AWS 上建立工作負載,並在叢集內部公開。
事前準備
開始使用 GKE on AWS 前,請務必完成下列工作:
- 完成必要條件。
- 安裝管理服務。
- 建立使用者叢集。
- 在
anthos-aws
目錄中,使用anthos-gke
將環境切換至使用者叢集。 將 CLUSTER_NAME 替換為使用者叢集名稱。cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
您可以使用 kubectl
執行這些步驟,也可以在 Google Cloud 控制台中執行 (前提是您已透過 Connect 進行驗證)。如果您使用 Google Cloud 控制台,請跳至「啟動 NGINX Deployment」。
如要連線至 GKE on AWS 資源,請按照下列步驟操作。選取您是否已有 AWS 虛擬私有雲 (或直接連線至虛擬私有雲),或是在建立管理服務時建立了專屬虛擬私有雲。
現有 VPC
如果您已透過直接連線或 VPN 連線至現有虛擬私有雲,請從本主題的指令中省略 env HTTP_PROXY=http://localhost:8118
行。
專用虛擬私有雲
在專屬虛擬私有雲中建立管理服務時,GKE on AWS 會在公用子網路中加入堡壘主機。
如要連線至管理服務,請按照下列步驟操作:
切換至 GKE on AWS 設定所在的目錄。 您在安裝管理服務時建立了這個目錄。
cd anthos-aws
如要開啟通道,請執行
bastion-tunnel.sh
指令碼。通道會轉送至localhost:8118
。如要開啟防禦主機的通道,請執行下列指令:
./bastion-tunnel.sh -N
這個視窗會顯示來自 SSH 通道的訊息。準備好關閉連線時,請使用 Control+C 停止程序,或關閉視窗。
開啟新的終端機,然後變更為
anthos-aws
目錄。cd anthos-aws
確認您可以使用
kubectl
連線至叢集。env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
輸出內容會包含管理服務 API 伺服器的網址。
啟動 NGINX 部署作業
在本節中,您將建立名為 nginx-1
的 NGINX 網路伺服器部署。
kubectl
使用
kubectl create
建立 Deployment。env HTTPS_PROXY=http://localhost:8118 \ kubectl create deployment --image nginx nginx-1
使用
kubectl
取得部署狀態。請注意 Pod 的NAME
。env HTTPS_PROXY=http://localhost:8118 \ kubectl get deployment
控制台
如要使用 Google Cloud 控制台啟動 NGINX Deployment,請執行下列步驟:
前往 Cloud Console 中的 GKE「Workloads」(工作負載) 選單。Google Cloud
按一下 [Deploy] (部署)。
在「Edit container」(編輯容器) 下方,選取「Existing container image」(現有容器映像檔),即可選擇 Container Registry 提供的容器映像檔。在「Image path」(映像檔路徑) 中,填入您想要使用的容器映像檔及其版本。在本快速入門導覽課程中,請使用
nginx:latest
。依序點選「完成」和「繼續」。畫面上會顯示「Configuration」(設定)。
您可以變更 Deployment 的應用程式名稱和 Kubernetes 命名空間。在本快速入門導覽課程中,您可以使用應用程式名稱
nginx-1
和命名空間default
從「叢集」下拉式選單中,選取使用者叢集。根據預設,第一個使用者叢集會命名為
cluster-0
。按一下「Deploy」(部署)。GKE on AWS 會啟動 NGINX 部署作業。 系統隨即顯示「Deployment details」(部署詳細資料) 畫面。
公開 Pod
本節說明如何執行下列其中一項操作:
在叢集中公開部署作業,並使用
kubectl port-forward
確認是否可用。從 Google Cloud 控制台將 Deployment 公開至節點集區安全群組允許的位址。
kubectl
使用
kubectl expose
將通訊埠 80 部署作業公開至叢集。env HTTPS_PROXY=http://localhost:8118 \ kubectl expose deployment nginx-1 --port=80
現在可以從叢集內存取 Deployment。
將 Deployment 上的通訊埠
80
轉送至本機電腦上的通訊埠8080
,請使用kubectl port-forward
。env HTTPS_PROXY=http://localhost:8118 \ kubectl port-forward deployment/nginx-1 8080:80
透過
curl
或網路瀏覽器連線至http://localhost:8080
。 畫面上會顯示預設的 NGINX 網頁。curl http://localhost:8080
控制台
前往 Google Cloud 主控台中的 GKE「Workloads」(工作負載) 選單。
在「部署作業詳細資料」畫面上,按一下「公開」。系統會顯示「Expose a deployment」(公開部署作業) 畫面。
在「Port mapping」(通訊埠對應) 專區中,保留預設通訊埠 (
80
),然後按一下「Done」(完成)。在「服務類型」部分,選取「負載平衡器」。如要進一步瞭解其他選項,請參閱 Kubernetes 說明文件中的「發布服務 (ServiceTypes)」。
按一下「公開」。系統隨即顯示「服務詳細資料」畫面。 GKE on AWS 會為服務建立傳統型彈性負載平衡器。
按一下「外部端點」的連結。如果負載平衡器已就緒,畫面上會顯示預設的 NGINX 網頁。
在 Google Cloud 控制台中查看部署作業
如果叢集已連線至 Google Cloud 控制台,您可以在 GKE 工作負載頁面中查看部署作業。如要查看工作負載,請按照下列步驟操作:
在瀏覽器中,前往 Google Kubernetes Engine 的「工作負載」頁面。
前往 Google Kubernetes Engine 工作負載頁面
系統會顯示工作負載清單。
按一下工作負載名稱
nginx-1
。系統隨即會顯示「Deployment details」(部署詳細資料) 畫面。在這個畫面中,您可以取得 Deployment 的詳細資料、查看及編輯 YAML 設定,以及執行其他 Kubernetes 動作。
如要進一步瞭解這個頁面提供的選項,請參閱 GKE 說明文件中的「部署無狀態應用程式」。
清除所用資源
如要刪除 NGINX Deployment,請使用 kubectl delete
或 Google Cloud 控制台。
kubectl
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete service nginx-1 &&\
kubectl delete deployment nginx-1
控制台
在 Google Cloud 控制台前往「Services and Ingress」頁面選單。
找到 NGINX 服務,然後按一下其「名稱」。預設名稱為
nginx-1-service
。系統隨即顯示「服務詳細資料」畫面。按一下「刪除」
,並確認要刪除服務。 GKE on AWS 會刪除負載平衡器。前往 Google Kubernetes Engine 的「工作負載」頁面。
前往 Google Kubernetes Engine 工作負載頁面
系統會顯示工作負載清單。
按一下工作負載名稱
nginx-1
。系統隨即會顯示「Deployment details」(部署詳細資料) 畫面。按一下「刪除」
,並確認要刪除部署作業。 GKE on AWS 會刪除 Deployment。
後續步驟
使用下列其中一項服務建立內部或外部負載平衡器:
您可以在 AWS 上的 GKE 使用其他類型的 Kubernetes 工作負載。 如要進一步瞭解如何部署工作負載,請參閱 GKE 說明文件。