快速入門導覽課程

本主題說明如何在 GKE on AWS 上建立工作負載,並在叢集內部公開。

事前準備

開始使用 GKE on AWS 前,請務必完成下列工作:

  • 安裝管理服務
  • 建立使用者叢集
  • anthos-aws 目錄中,使用 anthos-gke 將環境切換至使用者叢集。
    cd anthos-aws
    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    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 會在公用子網路中加入堡壘主機。

如要連線至管理服務,請按照下列步驟操作:

  1. 切換至 GKE on AWS 設定所在的目錄。 您在安裝管理服務時建立了這個目錄。

    cd anthos-aws

  2. 如要開啟通道,請執行 bastion-tunnel.sh 指令碼。通道會轉送至 localhost:8118

    如要開啟防禦主機的通道,請執行下列指令:

    ./bastion-tunnel.sh -N
    

    這個視窗會顯示來自 SSH 通道的訊息。準備好關閉連線時,請使用 Control+C 停止程序,或關閉視窗。

  3. 開啟新的終端機,然後變更為 anthos-aws 目錄。

    cd anthos-aws
  4. 確認您可以使用 kubectl 連線至叢集。

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    輸出內容會包含管理服務 API 伺服器的網址。

啟動 NGINX 部署作業

在本節中,您將建立名為 nginx-1 的 NGINX 網路伺服器部署

kubectl

  1. 使用 kubectl create 建立 Deployment。

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl create deployment --image nginx nginx-1
    
  2. 使用 kubectl 取得部署狀態。請注意 Pod 的 NAME

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl get deployment
    

控制台

如要使用 Google Cloud 控制台啟動 NGINX Deployment,請執行下列步驟:

  1. 前往 Cloud Console 中的 GKE「Workloads」(工作負載) 選單。Google Cloud

    前往「Workloads」(工作負載) 選單

  2. 按一下 [Deploy] (部署)

  3. 在「Edit container」(編輯容器) 下方,選取「Existing container image」(現有容器映像檔),即可選擇 Container Registry 提供的容器映像檔。在「Image path」(映像檔路徑) 中,填入您想要使用的容器映像檔及其版本。在本快速入門導覽課程中,請使用 nginx:latest

  4. 依序點選「完成」和「繼續」。畫面上會顯示「Configuration」(設定)

  5. 您可以變更 Deployment 的應用程式名稱和 Kubernetes 命名空間。在本快速入門導覽課程中,您可以使用應用程式名稱 nginx-1 和命名空間 default

  6. 從「叢集」下拉式選單中,選取使用者叢集。根據預設,第一個使用者叢集會命名為 cluster-0

  7. 按一下「Deploy」(部署)。GKE on AWS 會啟動 NGINX 部署作業。 系統隨即顯示「Deployment details」(部署詳細資料) 畫面。

公開 Pod

本節說明如何執行下列其中一項操作:

  • 在叢集中公開部署作業,並使用 kubectl port-forward 確認是否可用。

  • 從 Google Cloud 控制台將 Deployment 公開至節點集區安全群組允許的位址。

kubectl

  1. 使用 kubectl expose 將通訊埠 80 部署作業公開至叢集。

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl expose deployment nginx-1 --port=80
    

    現在可以從叢集內存取 Deployment。

  2. 將 Deployment 上的通訊埠 80 轉送至本機電腦上的通訊埠 8080,請使用 kubectl port-forward

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl port-forward deployment/nginx-1 8080:80
    
  3. 透過 curl 或網路瀏覽器連線至 http://localhost:8080。 畫面上會顯示預設的 NGINX 網頁。

    curl http://localhost:8080
    

控制台

  1. 前往 Google Cloud 主控台中的 GKE「Workloads」(工作負載) 選單。

    前往「Workloads」(工作負載) 選單

  2. 在「部署作業詳細資料」畫面上,按一下「公開」。系統會顯示「Expose a deployment」(公開部署作業) 畫面。

  3. 在「Port mapping」(通訊埠對應) 專區中,保留預設通訊埠 (80),然後按一下「Done」(完成)

  4. 在「服務類型」部分,選取「負載平衡器」。如要進一步瞭解其他選項,請參閱 Kubernetes 說明文件中的「發布服務 (ServiceTypes)」。

  5. 按一下「公開」。系統隨即顯示「服務詳細資料」畫面。 GKE on AWS 會為服務建立傳統型彈性負載平衡器

  6. 按一下「外部端點」的連結。如果負載平衡器已就緒,畫面上會顯示預設的 NGINX 網頁。

在 Google Cloud 控制台中查看部署作業

如果叢集已連線至 Google Cloud 控制台,您可以在 GKE 工作負載頁面中查看部署作業。如要查看工作負載,請按照下列步驟操作:

  1. 在瀏覽器中,前往 Google Kubernetes Engine 的「工作負載」頁面

    前往 Google Kubernetes Engine 工作負載頁面

    系統會顯示工作負載清單。

  2. 按一下工作負載名稱 nginx-1。系統隨即會顯示「Deployment details」(部署詳細資料) 畫面。

  3. 在這個畫面中,您可以取得 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

控制台

  1. 在 Google Cloud 控制台前往「Services and Ingress」頁面選單。

    前往「Services and Ingress」(服務和 Ingress) 頁面

  2. 找到 NGINX 服務,然後按一下其「名稱」。預設名稱為 nginx-1-service。系統隨即顯示「服務詳細資料」畫面。

  3. 按一下「刪除」 ,並確認要刪除服務。 GKE on AWS 會刪除負載平衡器。

  4. 前往 Google Kubernetes Engine 的「工作負載」頁面

    前往 Google Kubernetes Engine 工作負載頁面

    系統會顯示工作負載清單。

  5. 按一下工作負載名稱 nginx-1。系統隨即會顯示「Deployment details」(部署詳細資料) 畫面。

  6. 按一下「刪除」 ,並確認要刪除部署作業。 GKE on AWS 會刪除 Deployment。

後續步驟

使用下列其中一項服務建立內部或外部負載平衡器:

您可以在 AWS 上的 GKE 使用其他類型的 Kubernetes 工作負載。 如要進一步瞭解如何部署工作負載,請參閱 GKE 說明文件