本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
EKS 自動模式
eksctl 支援 EKS Auto Mode,這項功能可將 Kubernetes 叢集的 AWS 管理延伸到叢集本身之外,讓 AWS 也能設定和管理基礎設施,讓工作負載能夠順暢地運作。這可讓您委派關鍵基礎設施決策,並利用 AWS 的專業知識進行day-to-day操作。由 AWS 管理的叢集基礎設施包含許多 Kubernetes 功能做為核心元件,而不是附加元件,例如運算自動擴展、Pod 和服務聯網、應用程式負載平衡、叢集 DNS、區塊儲存和 GPU 支援。
建立已啟用自動模式的 EKS 叢集
eksctl
已新增 autoModeConfig
欄位以啟用和設定自動模式。autoModeConfig
欄位的形狀為
autoModeConfig: # defaults to false enabled: boolean # optional, defaults to [general-purpose, system]. # To disable creation of nodePools, set it to the empty array ([]). nodePools: []string # optional, eksctl creates a new role if this is not supplied # and nodePools are present. nodeRoleARN: string
如果 autoModeConfig.enabled
為 true,eksctl 會透過將 computeConfig.enabled: true
、 kubernetesNetworkConfig.elasticLoadBalancing.enabled: true
和 傳遞storageConfig.blockStorage.enabled: true
至 EKS API 來建立 EKS 叢集,進而管理運算、儲存和聯網等資料平面元件。
若要在啟用自動模式的情況下建立 EKS 叢集,請如 所示設定 autoModeConfig.enabled: true
。
# auto-mode-cluster.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: auto-mode-cluster region: us-west-2 autoModeConfig: enabled: true
eksctl create cluster -f auto-mode-cluster.yaml
eksctl 會建立節點角色,以用於自動模式啟動的節點。eksctl 也會建立 general-purpose
和 system
節點集區。若要停用預設節點集區的建立,例如設定您自己的節點集區,使用不同的子網路集區,請設定 nodePools: []
,如 中的
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: auto-mode-cluster region: us-west-2 autoModeConfig: enabled: true nodePools: [] # disables creation of default node pools.
更新 EKS 叢集以使用自動模式
若要更新現有的 EKS 叢集以使用自動模式,請執行
# cluster.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster region: us-west-2 autoModeConfig: enabled: true
eksctl update auto-mode-config -f cluster.yaml
注意
如果叢集是由 eksctl 建立,並使用公有子網路做為叢集子網路,則自動模式會在公有子網路中啟動節點。若要針對自動模式啟動的工作者節點使用私有子網路,請更新叢集以使用私有子網路。
停用自動模式
若要停用自動模式,請設定 autoModeConfig.enabled: false
並執行
# cluster.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: auto-mode-cluster region: us-west-2 autoModeConfig: enabled: false
eksctl update auto-mode-config -f cluster.yaml