GKE on AWS 使用者叢集會託管 Kubernetes 工作負載。本主題說明如何建立基本使用者叢集。如要進一步設定使用者叢集,請參閱建立自訂使用者叢集。
您可以使用 AWSCluster
和 AWSNodePool
custom 資源,佈建 GKE on AWS 使用者叢集。
事前準備
如要建立使用者叢集,您必須先安裝管理服務。
如要連線至 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 伺服器的網址。
選取控制層執行個體大小
AWS 上的 GKE 不支援調整控制層執行個體大小。建立使用者叢集前,請選取控制層的執行個體大小。控制層大小取決於叢集中的節點數量。下表列出建議的控制層執行個體大小,適用於各種叢集大小。
叢集大小 (節點) | 控制層執行個體類型 |
---|---|
1 - 10 | m5.large |
11 到 100 | m5.xlarge |
101 - 200 | m5.2xlarge |
建立使用者叢集
在本例中,您會使用 terraform
產生設定,以建立基本叢集。然後使用 kubectl apply
套用設定。
開啟終端機,並視需要連線至防禦主機。
將目錄變更為您在安裝管理服務時建立的資料夾。
使用 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
說明文件。使用文字編輯器開啟檔案,並視需要編輯。根據預設,GKE on AWS 會在
anthos-gke.yaml
中指定的每個可用區建立節點集區。您可以變更節點集區的大小和數量,以符合所需叢集。您也可以對設定進行其他變更。舉例來說,您可能會變更 GKE on AWS 節點的執行個體類型,也可能會在控制層節點上啟用記錄和監控。將檔案套用至管理服務。
env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
建立 kubeconfig
使用者叢集啟動時,您可以為新的使用者叢集建立 kubeconfig
環境。您可以使用這個內容向使用者或管理叢集進行驗證。
使用
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
。使用
kubectl
向新的使用者叢集進行驗證。env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
如果叢集已準備就緒,輸出內容會包含叢集內 Kubernetes 元件的網址。
查看叢集狀態
當您套用 AWSCluster
或 AWSNodePool
時,管理服務會佈建 AWS 資源。
從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
如要列出叢集,請使用
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
。
從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
執行
kubectl get events
。env HTTPS_PROXY=http://localhost:8118 \ kubectl get events
輸出內容包括與管理服務相關的資訊、警告和錯誤。
刪除使用者叢集
如要刪除使用者叢集,請執行下列步驟:
從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
使用
kubectl delete
刪除包含使用者叢集的資訊清單。env HTTPS_PROXY=http://localhost:8118 \ kubectl delete -f CLUSTER_FILE
請將 CLUSTER_FILE 替換為包含 AWScluster 和 AWSNodePool 物件的資訊清單名稱。例如:
cluster-0.yaml
。
刪除所有使用者叢集
如要刪除所有使用者叢集,請執行下列步驟:
從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
使用
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」。
後續步驟
在 AWS 上的 GKE 啟動第一個工作負載。
使用 GKE Identity Service 設定識別資訊提供者。
建立自訂使用者叢集,並設定不同設定。
設定 AWS 網路,以平衡工作負載。
請詳閱 AWSCluster 和 AWSNodePool 自訂資源定義的規格。