如何使用 Eksctl 为 Amazon EKS 工作线程节点创建多个节点组?
上次更新时间:2020 年 8 月 20 日
我想使用 Eksctl 为 Amazon Elastic Kubernetes Service (Amazon EKS) 工作线程节点创建多个节点组。
简短描述
您可以使用 eksctl 和默认参数创建工作线程节点组,也可借助针对多节点组的配置文件,通过自定义参数创建工作线程节点组。
解决方法
使用默认参数创建工作线程节点组
1. 安装 eksctl。
2. 要确认是否已在终端上安装了 eksctl 并配置了正确的权限,请运行以下命令:
$ eksctl version
3. 要使用默认参数创建更多的工作线程节点组,请运行以下命令:
$ eksctl create nodegroup --cluster=yourClusterName --name=yourNodeGroupName --region yourRegionName
默认参数如下:
Instance type = m5.large
AMI : lastest AWS EKS AMI
Nodes-desired capacity = 2
Nodes-min capacity =2
Nodes-max capacity=2
注意:默认情况下,新节点组会继承从控制层安装的 Kubernetes 版本 (–version=auto),当然您也可以指定其他版本的 Kubernetes(例如 version=1.13)。要使用最新版本的 Kubernetes,请运行 –version=latest 命令。
4. 打开 AWS CloudFormation 控制台,然后选择与您创建的节点组关联的堆栈。然后选择事件选项卡,查看显示您的堆栈已部署的 AWS CloudFormation 事件。
5. 要确认新的 Worker 节点组是否已挂载到集群,并验证是否已应用节点组配置,请运行以下命令:
$ Kubectl get nodes
$ eksctl get nodegroups --cluster yourClusterName
使用自定义参数创建工作线程节点组
1. 通过配置文件定义新工作线程节点组的参数。例如:
kind: ClusterConfig<br>apiVersion: eksctl.io/v1alpha5<br>metadata:<br> name: yourClusterName<br> region: yourRegionName<br>nodeGroups:<br> - name: ng1-Workers<br> availabilityZones: ["az-name"]<br> desiredCapacity: 3<br> instanceType: m5.large<br> iam:<br> instanceProfileARN: "arn:aws:iam::11111:instance-profile/eks-nodes-base-role" #Attaching IAM role<br> instanceRoleARN: "arn:aws:iam::1111:role/eks-nodes-base-role"<br> privateNetworking: true<br> securityGroups:<br> withShared: true<br> withLocal: true<br> attachIDs: ['sg-11111', 'sg-11112']<br> ssh:<br> publicKeyName: 'my-instance-key'<br> kubeletExtraConfig:<br> kubeReserved:<br> cpu: "300m"<br> memory: "300Mi"<br> ephemeral-storage: "1Gi"<br> kubeReservedCgroup: "/kube-reserved"<br> systemReserved:<br> cpu: "300m"<br> memory: "300Mi"<br> ephemeral-storage: "1Gi"<br> tags:<br> 'environment': 'development'<br> - name: ng-2-builders #example of a nodegroup that uses 50% spot instances and 50% on demand instances:<br> minSize: 2<br> maxSize: 5<br> instancesDistribution:<br> maxPrice: 0.017<br> instanceTypes: ["t3.small", "t3.medium"] # At least two instance types should be specified<br> onDemandBaseCapacity: 0<br> onDemandPercentageAboveBaseCapacity: 50<br> spotInstancePools: 2<br> tags:<br> 'environment': 'production'
2. 要使用配置文件创建更多的工作线程节点组,请运行以下命令:
$ eksctl create nodegroup --config-file= yourConfigFileName
3. 打开 AWS CloudFormation 控制台,然后选择与您创建的节点组关联的堆栈。然后选择事件选项卡,查看显示您的堆栈已部署的 AWS CloudFormation 事件。
4. 要确认新的 Worker 节点组是否已挂载到集群,并验证是否已应用节点组配置,请运行以下命令:
$ kubectl get nodes
$ eksctl get nodegroups --cluster yourClusterName
您会看到您的工作线程节点已经加入集群。这两个节点组通过 eksctl 可见。