建立使用者叢集

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

您可以使用 AWSClusterAWSNodePool 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
    

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

  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 元件的網址。

查看叢集狀態

當您套用 AWSClusterAWSNodePool 時,管理服務會佈建 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-0AWSCluster

    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」。

後續步驟