sealerio / sealer

Build, Share and Run Both Your Kubernetes Cluster and Distributed Applications (Project under CNCF)
http://sealer.cool
Apache License 2.0
2.05k stars 360 forks source link

[proposal] Be neutral on supporting container runtime: docker, containerd, runC, runV, runE and so on #1540

Open allencloud opened 2 years ago

allencloud commented 2 years ago

sealer focus on distributed application distribution: packaging, distributing and running, and it should be neutral to on supporting container runtime, in principle. Currently, sealer supports embedded containerd and docker. And sealer hacks a little bit on docker. The hacking seems to break the no-vendor lock-in rules for end-users. What is more, it brings the obstacle to support more container runtimes, like runE, runV.

To enhance sealer's ClusterImage ecosystem, we should support more container runtime within runtime ecosystem, which is covering the runtime scenario of distributed application.

For how to achieve this, it may not be quite difficult. Maybe we just need to support communicating with the existence docker(with runV embedded) or container(with runE embedded). And let docker and containerd to be responsible for underlying runE and runV part.

justadogistaken commented 2 years ago

I tried to propose a solution for optimization in feat: use cri socket to replace image webhook for pulling image from private repo. But it seem not to be done yet. Is this solution impossble or something?

justadogistaken commented 2 years ago

@YTGhost Do you want to take this work?

YTGhost commented 2 years ago

@YTGhost Do you want to take this work?

This looks interesting and I'm willing to take the job, but I may need some time to learn more about it.

justadogistaken commented 2 years ago

@YTGhost You can contact me directly to learn more about the backgroud. You know who I am, right?

YTGhost commented 2 years ago

justadogistaken

Yep! I will contact you within the next few days.

allencloud commented 2 years ago

@YTGhost Do you want to take this work?

This looks interesting and I'm willing to take the job, but I may need some time to learn more about it.

Really appreciate it you are interested in this. @YTGhost While, just supporting more container runtime is not a big deal, I think. It is much more important to design an open mechanism to support more container runtimes. Otherwise, supporting every one more container runtime would consume so much energy of the sealer core developers. With better ways, we should provide open mechanism, both the sealer official team and community end-users have ability to customize container runtime in their ClusterImage.

So from my point of view, we should emphasize more on design rather than implementation. For more details, you could refer to https://github.com/sealerio/sealer/issues/1651 to get more background.