AWS seems to be hiding my NVMe SSD when an r6gd instance is deployed in Kubernetes, created via the config below.
# eksctl create cluster -f spot04test00.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: tidb-arm-dev #replace with your cluster name
region: ap-southeast-1 #replace with your preferred AWS region
nodeGroups:
- name: tiflash-1a
desiredCapacity: 1
availabilityZones: ["ap-southeast-1a"]
instancesDistribution:
instanceTypes: ["r6gd.medium"]
privateNetworking: true
labels:
dedicated: tiflash
The running instance has an 80 GiB EBS gp3 block and ZERO NVMe SSD storage as shown in Figure 1.
Why did Amazon swapped out the 59GiB NVMe for a 80 GiB EBS gp3 storage?
where has my NVMe disk gone?
Even if I pre-allocate ephemeral-storage using non-managed nodeGroups, it still showed an 80 GiB EBS storage (Figure 1).
If I use the AWS Web UI to start a new r6gd instance, it clearly shows the attached NVMe SSD (Figure 2)
After further experimentations, it was found that the 80 GiB EBS volume is attached to r6gd.medium, r6g.medium, r6gd.large, r6g.large instances as a 'ephemeral' resource, regardless of instance size.
eksctl describe nodes:
Capacity:
attachable-volumes-aws-ebs: 39
cpu: 2
ephemeral-storage: 83864556Ki
hugepages-2Mi: 0
memory: 16307140Ki
pods: 29
Allocatable:
attachable-volumes-aws-ebs: 39
cpu: 2
ephemeral-storage: 77289574682
hugepages-2Mi: 0
memory: 16204740Ki
pods: 29
Capacity:
attachable-volumes-aws-ebs: 39
cpu: 2
ephemeral-storage: 83864556Ki
hugepages-2Mi: 0
memory: 16307140Ki
pods: 29
Allocatable:
attachable-volumes-aws-ebs: 39
cpu: 2
ephemeral-storage: 77289574682
hugepages-2Mi: 0
memory: 16204740Ki
pods: 29
Awaiting enlightenment from folks who have successfully utilized NVMe SSD in Kubernetes.

