AWS 上的 GKE 使用者叢集會託管 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.yamlTerraform 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 自訂資源定義的規格。