-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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 multiple container engines on the host #154
Comments
There's now a |
We're also targeting CRI functionality explicitly: https://kind.sigs.k8s.io/docs/design/principles/#target-cri-functionality |
Currently working on moving more of the flags (ports) behind abstractions borrowed from CRI. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
This is pretty old, but in case anyone is still paying attention - I'm pretty close to having this working where basically the global I had to do something along the lines of what you are describing first, @BenTheElder, where I made a generic
Then replaced all the places that called the |
Yeah, sorry this has been drawn out. We're definitely doing this, things have settled a bit and now that I've landed some new debugging infrastructure and other major cleanups I'll be reviving this ... That said: If you're just replacing
We'd like to do something a little more comprehensive to make things more flexible internally and go beyond even just docker and podman eventually (eg kata or ignite might be quite handy for some use cases) ... |
I tried that at first and I couldn't get it to work actually, linux and wsl2 (which is its own ball game entirely). And I might have spoken too soon on my previous comment, as well. Podman...has its quirks still. So far it was just simple things like format templates being a bit different, but then I ran into an issue with the node failing to start because it couldn't remount
There is a regression in podman > 1.5.0 with passing stdin to the container during an exec. I'm getting further with 1.4.4 though. |
I have a pretty drastic refactor to put node creation / deletion / interaction behind interfaces ongoing in this branch: https://github.com/BenTheElder/kind/tree/nodes |
PR for that branch #879 |
#879 is in, we're most of the way to having this abstracted out for nodes, there's one or two code paths that still depend on specifically docker. I'm working on a follow up to eliminate the rest of those. |
#1023 is the last change to remove docker from the critical path for bringing up a cluster and move it behind the provider interface. I intend to do further cleanup to the APIs around this and experiment with podman etc. in the v0.7 timeframe (AKA O(soon)). We're almost done with the fixes for 0.6 |
#1023 landed, #1025 finishes removing docker specific things from the APIs, leaving room to start experimenting with Provider implementations. I've also fired up a throwaway GCE VM with podman for a while now, doing some experiments with that to get a better understanding of what supporting podman properly would entail now. |
Awesome. |
Since Fedora 31 basically broke docker for me, I'm just adding this comment so I can follow this. I've been using @rhatdan - Is there a corresponding being tracked at the podman repo? As soon as there's things to test, I'll be ready! :) |
So, Fedora 31 broke kubernetes. Podman will not fix this. You need to switch to cgroups v1, which will unbreak docker and Kubernetes. |
In theory it should be possible to test podman compatibility with kind by doing:
With zero kind changes. But in practice you'll likely find that podman is still not actually 100% compatible to the docker CLI, so we'll need to start implementing a custom backend in kind to handle these. I have a GCE vm with podman starting on this but it is NOT the priority of this project. The focus is testing Kubernetes for the Kubernetes project, which we are accomplishing with docker for the moment. https://kind.sigs.k8s.io/docs/contributing/project-scope/ |
ACK. I will be passing the kernel boot options for now. |
I am like 90% done with a podman provider with @BenTheElder 's refactor. The aforementioned rootless issue still applies. I can't get the kind image to boot properly unless podman (and therefore kind) is executed as root. This also causes the E.g. my
just to get the container created in rootless podman. The issue I'm trying to figure out right now is with cleanup. Specifically, the pods in |
/assign @amwat Expect PRs related to this issue soon.
That's because podman until October last year didn't support anonymous volumes properly, instead it bind mounted them to the same path on the host (!) |
More updates: We'll need to wait for podman 1.8 to get kind/pkg/cluster/nodeutils/util.go Line 76 in 4c7854c
|
can confirm that it's workable with 1.7.1-dev though, needs some more work in kind but feasible once containers/podman#4818 lands. |
It has landed and hopefully will be in podman 1.8.0. |
BTW Now that Podman is beginning to support the Docker API, it would be interesting to see if KIND could use it. |
#1302 -- provisional support is in, it requires a dev build ( |
In v0.8.0 we will be selecting podman or docker backends automatically. The support is a bit rough (needs rootful, which makes some things clunky) but mostly functional. There will be more details in the release announcement, probably relatively soon. I'd like to fix up a few smaller things in 0.8 |
Hi @BenTheElder, just curious, any updates about the |
Good to know, thanks for the clarification. |
Just wanted to update that we've all discussed this and are going forward with committing to the podman backend for now. It's still under tested and secondary, notably host-reboot functionality will likely be lacking for the immediate future, but we have more core contributor commitment to this. You can see evidence of this in #1611 #1581 #1506 #1567 #1401 (comment) ... |
I would like to cooperate (minikube with kind), regarding the podman support. We have added a "podman" driver to minikube next to the docker driver, Since the "kicbase" we are using is based on kindbase, trying to upstream all |
DOC component name updated
#151 should bring initial support forpodman
via @rhatdanThis should mostly be a drop in replacement.(it's not... podman has quirks)We should further clean up the code base a bit to help with this sort of thing. We've mostly but not quite isolated the container runtime functionality.
/assign
/assign @rhatdan
/kind feature
/kind cleanup
/priority important-longterm
related: #153 is the same thing, but within the nodes
The text was updated successfully, but these errors were encountered: