如何使用 eksctl 获取 EKS 节点组的卷大小?

How do I get the volume size of an EKS NodeGroup using eksctl?

我想要有关 EKS 集群中节点组的完整详细信息,例如在命令 eksctl create nodegroup ... 中使用 --node-volume-size 设置的卷大小,以及可以使用以下命令设置的节点组的许多其他详细信息那个命令。

eksctl get nodegroup 提供了有限的数据,省略了体积大小。见下文。

kubectl get node(或kubectl describe node)提供更多信息(见底部)。但是,这是节点的信息,而不是节点组的信息。节点组有自己的细节,例如自动缩放的配置,实际上可以是零大小的。此外,kubectl 输出与 --node-volume-size 值不匹配——在本例中为 33 GB,可以在 AWS EBS 控制台中确认。

我需要 eksctl(EC2 虚拟机)级别的数据,而不是 kubectl(Kubernetes 节点)级别的数据,当然这些数据确实一致。

这只是 eksctl create nodegroup ... 中设置的字段的一个示例,这些字段不在(看起来很薄的)JSON 中。如何获得节点组的完整描述?

$ eksctl get nodegroup --name  one-node-group  --cluster clus-bumping  --region=us-east-2 --output json

[
    {
        "StackName": "eksctl-cluster1-nodegroup-one-node-group",
        "Cluster": "cluster1",
        "Name": "one-node-group",
        "MaxSize": 1,
        "MinSize": 1,
        "DesiredCapacity": 1,
        "InstanceType": "t2.small",
        "ImageID": "",
        "CreationTime": "2020-05-27T07:18:32.496Z",
        "NodeInstanceRoleARN": ""
    }
] 

kubectl 的相关输出量:

% kubectl describe node 
Name:               ip-192-168-39-36.us-east-2.compute.internal ...
Capacity: ...
 attachable-volumes-aws-ebs:  39 ...
ephemeral-storage:           34590700Ki ...
Allocatable:
 attachable-volumes-aws-ebs:  39
 ephemeral-storage:           30805047244 ...
 Resource                    Requests    Limits ...
  --------                    --------    ------
 ephemeral-storage           0 (0%)      0 (0%) ...
  attachable-volumes-aws-ebs  0           0   ...

答:这只是eksctl中的一个限制。存在该限制是因为节点组配置并非隐含在基于 EC2 的集群本身中,而是需要专门保存在集群元数据中。

查看 eksctl GitHub 问题:2255 and 642

但是信息确实存在,您可以使用AWS SDK for EKS function DescribeNodegroup.

获取它