0
votes

I would like full details on NodeGroups in an EKS cluster, for example volume size as set using --node-volume-size in the command eksctl create nodegroup ... but also many other details of a NodeGroup that can be set with that command.

eksctl get nodegroup gives limited data, omitting volume size. See below.

kubectl get node (or kubectl describe node) gives more information (see at bottom). However, this is information for the Node, not the Node Group. Node Groups have their own details, such as configuration for auto-scaling, and in fact can be zero-sized. Also, the kubectl output does not match the --node-volume-size value -- in this case 33 GB, as can be confirmed in the AWS EBS console.

I need data on the level of eksctl (EC2 VMs) rather than kubectl (Kubernetes nodes), though of course these do align.

This is just one example of the fields set in eksctl create nodegroup ... which are not in the (rather thin-looking) JSON. How can I get a full description of the Node Group?

$ 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": ""
    }
] 

Relevant output of kubectl concerning volumes:

% 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   ...
1
What volume size do you mean?coderanger
The thing you configure with --node-volume-size in the command eksctl create cluster ... or eksctl create nodegroup... It is the base disk attached for the OS to boot.Joshua Fox
kubectl get nodes -o yaml, did you get what you need?BMW
@BMW I edited the question. kubectl get node gives volume information (see at bottom). However, it is not clear which of these metrics exactly matches the --node-volume-size value -- I need data on the level of eksctl (EC2 VMs) rather than kubectl (Kubernetes nodes), though of course these do align.Joshua Fox
@BMW Also, a node group has different info than a node, for example autoscaling config. In fact, there could be a node group with zero nodes.Joshua Fox

1 Answers

1
votes

Answer: This is simply a limitation in eksctl. The limitation exists because the node-group configuration is not implicit in the EC2-based cluster itself, but rather it would need to be saved specially in cluster metadata.

See eksctl GitHub issues: 2255 and 642.

Yet the information does exist, and you can get it with the AWS SDK for EKS function DescribeNodegroup.