建立使用者叢集

AWS 上的 GKE 使用者叢集會託管 Kubernetes 工作負載。本主題說明如何建立基本使用者叢集。如要進一步設定使用者叢集,請參閱建立自訂使用者叢集。

您可以使用 AWSCluster 和 AWSNodePool custom 資源,佈建 GKE on AWS 使用者叢集。

事前準備

如要建立使用者叢集,您必須先安裝管理服務。

如要連線至 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 伺服器的網址。

選取控制層執行個體大小

AWS 上的 GKE 不支援調整控制層執行個體的大小。建立使用者叢集前,請選取控制層的執行個體大小。控制層大小取決於叢集中的節點數量。下表列出建議的控制層執行個體大小,適用於各種叢集大小。

叢集大小 (節點) 控制層執行個體類型
1 到 10 m5.large
11 到 100 m5.xlarge
101 至 200 m5.2xlarge

建立使用者叢集

在本例中,您會使用 terraform 產生設定,以建立基本叢集。然後使用 kubectl apply 套用設定。

  1. 開啟終端機,並視需要連線至堡壘主機。

  2. 將目錄變更為您在安裝管理服務時建立的資料夾。

  3. 使用 Terraform 產生設定範例叢集的資訊清單,並儲存為 YAML 檔案。選擇 Terraform 版本,然後執行下列指令:

    Terraform 0.12、0.13

    terraform output cluster_example > cluster-0.yaml
    

    Terraform 0.14.3 以上版本

    terraform output -raw cluster_example > cluster-0.yaml
    

    如要進一步瞭解這個檔案的內容,請參閱 AWSCluster 和 AWSNodePool 說明文件。

  4. 在文字編輯器中開啟檔案,並視需要編輯。根據預設,GKE on AWS 會在 anthos-gke.yaml 中指定的每個可用區建立節點集區。您可以變更節點集區的大小和數量,以符合所需叢集。您也可以對設定進行其他變更。舉例來說,您可能會變更 GKE on AWS 節點的執行個體類型,也可能會在控制層節點上啟用記錄和監控。

  5. 將檔案套用到管理服務。

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

建立 kubeconfig

使用者叢集啟動時,您可以為新的使用者叢集建立 kubeconfig 環境。您可以使用這個內容向使用者或管理叢集進行驗證。

  1. 使用 anthos-gke aws clusters get-credentials 在 ~/.kube/config 中為使用者叢集產生 kubeconfig。

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    

    將 CLUSTER_NAME 替換為叢集名稱。例如:cluster-0。

  2. 使用 kubectl 向新的使用者叢集進行驗證。

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

    如果叢集已準備就緒,輸出內容會包含叢集內 Kubernetes 元件的網址。

查看叢集狀態

套用 AWSCluster 或 AWSNodePool 時,管理服務會佈建 AWS 資源。

  1. 從 anthos-aws 目錄使用 anthos-gke 將環境切換至管理服務。

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 如要列出叢集,請使用 kubectl get AWSClusters。

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

    輸出結果包含每個叢集的名稱、狀態、存在時間、版本和端點。

    舉例來說,下列輸出內容只包含一個名為 cluster-0 的 AWSCluster:

    NAME        STATE          AGE     VERSION         ENDPOINT
    cluster-0   Provisioning   2m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    

查看叢集事件

如要查看使用者叢集的近期 Kubernetes 事件,請使用 kubectl get events。

  1. 從 anthos-aws 目錄使用 anthos-gke 將環境切換至管理服務。

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 執行 kubectl get events。

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

輸出內容包含與管理服務相關的資訊、警告和錯誤。

刪除使用者叢集

如要刪除使用者叢集,請執行下列步驟:

  1. 從 anthos-aws 目錄使用 anthos-gke 將環境切換至管理服務。

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 使用 kubectl delete 刪除包含使用者叢集的資訊清單。

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete -f CLUSTER_FILE
    

    請將 CLUSTER_FILE 替換為包含 AWScluster 和 AWSNodePool 物件的資訊清單名稱。例如:cluster-0.yaml。

刪除所有使用者叢集

如要刪除所有使用者叢集,請執行下列步驟:

  1. 從 anthos-aws 目錄使用 anthos-gke 將環境切換至管理服務。

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 使用 kubectl delete 從管理服務中刪除 AWSNodePools 和 AWSClusters。

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSNodePool --all
    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSCluster --all
    

詳情請參閱「在 AWS 中解除安裝 GKE」。

後續步驟