Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support blockDeviceMappings with instance store NVMe volume to provisioned nodes #2372

Closed
maciej-ciach opened this issue Aug 26, 2022 · 9 comments
Labels
feature New feature or request good-first-issue Good for newcomers

Comments

@maciej-ciach
Copy link

Version

Karpenter: v0.16.0

Kubernetes: v1.20.0

Expected Behavior

I would like to use EC2 instances with instance store volumes instead of provisioning additional EBS devices

Actual Behavior

I tried to configure provisioner using example of blockDeviceMapping from https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#instance-block-device-mapping

    amiFamily: Bottlerocket
    blockDeviceMappings:
      - deviceName: /dev/xvdb
        virtualName: ephemeral0

But I'm getting provisioner errors when scheduling pods.

Steps to Reproduce the Problem

Configure provisioner with blockDeviceMappings block above

Resource Specs and Logs

@maciej-ciach maciej-ciach added the bug Something isn't working label Aug 26, 2022
@FernandoMiguel
Copy link
Contributor

@bwagner5
Copy link
Contributor

This would be a good thing to add! Probably not very difficult either if anyone would like to take a stab at a PR for it

@bwagner5 bwagner5 added feature New feature or request good-first-issue Good for newcomers and removed bug Something isn't working labels Aug 26, 2022
@FernandoMiguel
Copy link
Contributor

@bwagner5 add to where?
the code i linked is already in this repo

@bwagner5
Copy link
Contributor

virtualName is not implemented yet and would be required for non-ebs instance storage.

@TechDawg270
Copy link

i will try to prep a PR for this over the next 2-3 days

@saurabhpal97
Copy link

Tried to fix in #2554

@d-m
Copy link

d-m commented Jan 25, 2023

Is it possible to modify instance store volumes via blockDeviceMappings now? I see the PR for this was closed but not merged.

@cep21
Copy link

cep21 commented Feb 3, 2023

Are there workarounds or examples of how I can use the on host SSD for my ephemeral storage? Even if I need to make specific Provisioners, an example would be helpful

@bwagner5
Copy link
Contributor

There's an open issue for this that has a little more activity, going to close this one as a duplicate and will track work on this front in #2723.

There is on-going work in the eks optimized AL2 AMI to setup a RAID-0 out of instance storage disks and remount containerd and kubelet. Once that PR is merged into the EKS Optimized AMI, we can then set the bootstrap flag within Karpenter to enable the new functionality and adjust the node ephemeral-storage capacity to assume that we'll use a RAID-0 setup for instance types with NVMe instance storage. awslabs/amazon-eks-ami#1171

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request good-first-issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

7 participants