本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
執行個體選取器
eksctl 支援為受管和自我管理節點群組指定多個執行個體類型,但使用超過 270 種 EC2 執行個體類型時,使用者必須花時間找出最適合其節點群組的執行個體類型。使用 Spot 執行個體時更加困難,因為您需要選擇一組可與 Cluster Autoscaler 搭配使用的執行個體。
eksctl 現在與 EC2 執行個體選取器
建立叢集和節點群組
若要使用與傳遞給 eksctl 的執行個體選取器資源條件相符的執行個體類型,建立具有單一節點群組的叢集,請執行
eksctl create cluster --instance-selector-vcpus=2 --instance-selector-memory=4
這會建立叢集和將 instanceTypes 欄位設定為 的受管節點群組 [c5.large, c5a.large, c5ad.large, c5d.large, t2.medium, t3.medium, t3a.medium](傳回的一組執行個體類型可能會變更)。
對於未受管節點群組,將設定 instancesDistribution.instanceTypes 欄位:
eksctl create cluster --managed=false --instance-selector-vcpus=2 --instance-selector-memory=4
執行個體選取器條件也可以在 ClusterConfig 中指定:
# instance-selector-cluster.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster region: us-west-2 nodeGroups: - name: ng instanceSelector: vCPUs: 2 memory: "4" # 4 GiB, unit defaults to GiB managedNodeGroups: - name: mng instanceSelector: vCPUs: 2 memory: 2GiB # cpuArchitecture: x86_64 # default value
eksctl create cluster -f instance-selector-cluster.yaml
eksctl create cluster 和 支援下列執行個體選取器 CLI 選項eksctl create nodegroup:
--instance-selector-vcpus、--instance-selector-memory、--instance-selector-gpus 與 instance-selector-cpu-architecture
您可以在此處
乾執行
試轉功能可讓您檢查和變更執行個體選取器相符的執行個體,再繼續建立節點群組。
eksctl create cluster --name development --instance-selector-vcpus=2 --instance-selector-memory=4 --dry-run apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig # ... managedNodeGroups: - amiFamily: AmazonLinux2 instanceSelector: memory: "4" vCPUs: 2 instanceTypes: - c5.large - c5a.large - c5ad.large - c5d.large - t2.medium - t3.medium - t3a.medium ... # other config
產生的 ClusterConfig 可接著傳遞至 eksctl create cluster:
eksctl create cluster -f generated-cluster.yaml
代表 CLI 選項instanceSelector的欄位也會新增至 ClusterConfig 檔案,以用於可見性和文件用途。省略 --dry-run 時,會忽略此欄位,並使用 instanceTypes 欄位,否則 的任何變更instanceTypes都會被 eksctl 覆寫。
使用 傳遞 ClusterConfig 檔案時--dry-run,eksctl 會在擴展每個節點群組的執行個體選取器資源條件之後,輸出包含相同節點群組集的 ClusterConfig 檔案。
# instance-selector-cluster.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster region: us-west-2 nodeGroups: - name: ng instanceSelector: vCPUs: 2 memory: 4 # 4 GiB, unit defaults to GiB managedNodeGroups: - name: mng instanceSelector: vCPUs: 2 memory: 2GiB # cpuArchitecture: x86_64 # default value
eksctl create cluster -f instance-selector-cluster.yaml --dry-run apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig # ... managedNodeGroups: - amiFamily: AmazonLinux2 # ... instanceSelector: cpuArchitecture: x86_64 memory: 2GiB vCPUs: 2 instanceTypes: - t3.small - t3a.small nodeGroups: - amiFamily: AmazonLinux2 # ... instanceSelector: memory: "4" vCPUs: 2 instanceType: mixed instancesDistribution: capacityRebalance: false instanceTypes: - c5.large - c5a.large - c5ad.large - c5d.large - t2.medium - t3.medium - t3a.medium # ...