如何使用 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 可见。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?