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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

support sysbox #1772

Closed
BenTheElder opened this issue Aug 7, 2020 · 10 comments
Closed

support sysbox #1772

BenTheElder opened this issue Aug 7, 2020 · 10 comments
Labels
area/provider/docker Issues or PRs related to docker help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/backlog Higher priority than priority/awaiting-more-evidence.

Comments

@BenTheElder
Copy link
Member

https://github.com/nestybox/sysbox is open source now 馃檭

This sits below docker, so we'll need to think about how this fits into the current abstractions.

I think to start, we can gate it behind KIND_EXPERIMENTAL_RUNTIME=sysbox-runc (in absence of a standard env to do this in docker).

cc @ctalledo

@BenTheElder BenTheElder added kind/feature Categorizes issue or PR as related to a new feature. area/provider/docker Issues or PRs related to docker labels Aug 7, 2020
@BenTheElder
Copy link
Member Author

we should also probe docker to see if sysbox is the default runtime and gracefully handle that.

@BenTheElder BenTheElder added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Aug 7, 2020
@ctalledo
Copy link

ctalledo commented Aug 7, 2020

Thanks for opening the issue Ben, I will be glad to help add support for Sysbox in KinD.

cc @rmolina

@rodnymolina
Copy link

Thanks @BenTheElder, will look into KIND_EXPERIMENTAL_RUNTIME approach.

@AkihiroSuda
Copy link
Member

@rodnymolina
Copy link

@AkihiroSuda thanks for pointing that out, these changes make sense. But please keep in mind that they are not required by Sysbox to host K8s clusters (Sysbox already handles K8s sysctl write attempts). You can easily test it yourself by looking at this KinD fork (with very minimal changes) that we created as a prototype.

@felipecrs
Copy link
Contributor

Do we have numbers to compare how sysbox can enhance kind performance?

@ctalledo
Copy link

ctalledo commented Sep 7, 2020

@felipecrs : sysbox would not enhance kind performance; it's benefits would mainly be functional, such as:

  1. Removing the need for using privileged containers for the K8s node containers (i.e., enhancing isolation between the k8s node containers and the host).

  2. Since sysbox does partial emulation of /proc and will support emulation of /proc/cpuinfo and /proc/meminfo in the near future, this enables the K8s scheduler running inside the kind cluster to better schedule workloads according to the resources consumed by each k8s node container. This is helpful in scenarios where users want more realistic scheduling in the kind cluster.

An additional benefit would be that sysbox removes the need for many of the actions taken in the KinD entrypoint script, but it's not clear to me that KinD would be able to take advantage of this given that it has to support the OCI runc which does require the entrypoint.

Finally, sysbox has some optimizations that save a lot of disk space when the inner containers/pods are spawned by running K8s + Docker inside the container. But KinD nodes use containerd only (not Docker) inside the container, and thus said optimizations don't apply.

@felipecrs
Copy link
Contributor

Thank you so much @ctalledo for the great explanation.

I was asking because we have a very resource consumer CI which install many applications in a KinD cluster, so any kind of optimization would be welcome.

Despite that, the benefits that sysbox brings already worth it.

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 6, 2020
@kubernetes-sigs kubernetes-sigs deleted a comment from fejta-bot Dec 6, 2020
@BenTheElder BenTheElder removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 6, 2020
@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 6, 2021
@kubernetes-sigs kubernetes-sigs deleted a comment from fejta-bot Mar 6, 2021
@ctalledo
Copy link

ctalledo commented Mar 7, 2021

Unfortunately I haven't had cycles to dedicate to integrating KinD with sysbox-runc yet.

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Apr 6, 2021
@ctalledo
Copy link

Still no cycles on Nestybox's side to help integrate KinD with Sysbox unfortunately. If anyone else has the desire and cycles we would be happy to assist.

@kubernetes-sigs kubernetes-sigs deleted a comment from fejta-bot Apr 13, 2021
@BenTheElder BenTheElder removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Apr 13, 2021
@BenTheElder BenTheElder added the priority/backlog Higher priority than priority/awaiting-more-evidence. label Jul 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/provider/docker Issues or PRs related to docker help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/backlog Higher priority than priority/awaiting-more-evidence.
Projects
None yet
Development

No branches or pull requests

6 participants