-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
Add support for gVisor within containerd #7650
Comments
@sathieu does gVisor have a stable release we could reference? From what I see in the docs they recommend |
@cristicalin There are tagged release in github: https://github.com/google/gvisor/releases THere are also documented at https://gvisor.dev/docs/user_guide/install/#specific-release. |
It's not immediately clear to me if any of those are considered stable or development releases. Should we settle on a specific date release? |
How are you planning to install it? You can pin versions with the debian package the normal way AFAIK. Otherwise you can use a specific version by specifying the date (however not all dates necessarily have releases) |
@ianlewis the issue I see is that we cannot release with the version pointing at latest as that could break after release, so personally I would prefer we have a guideline on how to pick a stable version that can be used. For example, we tag our next release 2.17 and use version @floryut or @champtar I would appreciate your thoughts here as well. I'm willing to work on the support for this but it's not clear in my mind how to properly align gVisor releases with kubespray's Second question, I see gVisor only publishes packages for debian/ubuntu. Should we try to support RHEL derivatives or other OSes as well? |
@cristicalin Right. At the link I posted it describes how you can download the binaries for a specific release at For example, the runsc binary for the May 10th release is at https://storage.googleapis.com/gvisor/releases/release/20210510.0/x86_64/runsc. The binaries at these specific urls won't change over time. |
@cristicalin With regard to rpm packages, we don't have plans for RHEL derivatives yet but we can consider it if there is need. Feel free to submit an issue. The binaries in the binary release should work however as all binaries are static binaries and should run on any system given the right OS (Linux) and architecture (x86_64). |
@ianlewis I could use some help on the implementation. I got While
Any help would be appreciated. |
@cristicalin Unfortunately, while Docker does have the concept of "runtimes", the Docker CRI runtime doesn't support RuntimeClass. It will only work when using a CRI implementation that supports RuntimeClass, like containerd. Another thing to worry about is that kubeadm prefers Docker as the CRI runtime if both Docker and containerd are installed so you need to make sure that the kubelet is using containerd. Some more info is written gVisor's FAQ.-. |
@ianlewis thanks for the info about the docker limitation. I modified the change and focused on getting cri-o support instead. I referenced some information in the only issue I could find about cri-o support for gVisor (google/gvisor#2219) but I was still unable to get cri-o + gVisor combination to work. Is this combination supported by gVisor or we should limit our support to just |
@cristicalin cri-o has very limited support right now and isn't well tested. I think it would be best to limit support to containerd as we're reliant on it's shim support right now. |
I restricted the use to just I'm now stuck on the the role testing via molecule. It seems the following command gets stuck and never returns: # ctr run --runtime io.containerd.runsc.v1 docker.io/library/hello-world:latest gvisor1 In addition, deleting the container via @ianlewis can you suggest an alternative way of testing that the runtime is functional until the bug in gVisor is fixed? |
Finally I managed to use The PR for this feature is in good shape for review now, I welcome your scrutiny. |
You did it the right way which is to use |
What would you like to be added:
Kubespray already has support for Katacontainers within containerd. gVisor is secure and more light-weighted.
Doc: https://gvisor.dev/docs/user_guide/containerd/quick_start/
Why is this needed:
Security with performance.
The text was updated successfully, but these errors were encountered: