Kubernetes 可以在没有 LXD 守护进程的情况下管理 LXC 容器吗?
Posted
技术标签:
【中文标题】Kubernetes 可以在没有 LXD 守护进程的情况下管理 LXC 容器吗?【英文标题】:Can Kubernetes manage LXC containers without LXD daemon? 【发布时间】:2020-12-06 10:09:21 【问题描述】:我在 Oracle Linux(主机)上运行多个 LXC 容器,并在这些容器中运行 EBS 应用程序。 现在我每 5 台主机上就有 10 多个容器。 我正在寻找管理这些容器的解决方案。研究告诉我,Kubernetes 是一种用于管理容器并使用它执行其他一些活动的解决方案,例如自动缩放等。 但是 Kubernetes 与 LXD 一起用于 lxc 容器。 有什么方法可以直接用 Kubernetes 管理 lxc 容器吗? 任何帮助将不胜感激!
谢谢!!
【问题讨论】:
你用的是LXD还是经典的LXC? 我正在使用经典的 LXC 软件包,即将推出 oracle Linux Base repo 【参考方案1】:你用的是 LXD 还是经典的 LXC?
我正在使用经典的 LXC 包,该包即将推出 oracle Linux Base repo。
好吧,官方LXE project description对此没有任何疑问。它明确指出LXD must be installed:
要求
你需要安装 LXD >= 3.3,官方提供的软件包 仅适用于via snap。 还支持源构建的 LXD。
所以这意味着你不能使用经典的 LXC。
您可能知道LXC 和LXD 是两个不同的产品,尽管第二个是建立在第一个之上的,正如您可以阅读here 一样,但最重要的区别是 LXD 公开 REST API:
LXD 的核心是一个特权守护进程,它通过 本地 unix 套接字以及通过网络(如果启用)。
客户端,比如 LXD 本身提供的命令行工具 通过该 REST API 执行所有操作。这意味着无论你是 与您的本地主机或远程服务器交谈,一切正常 同样的方式。
这实际上是它的关键功能,它可以使用 LXE 等其他工具对其进行管理。
再说一遍:您的问题的答案是:不,您不能使用经典的 LXC。一定是 LXD。据我所知,没有其他方法可以直接使用 kubernetes 管理 LXC 容器。
【讨论】:
感谢您的回复,但是我们可以使用自定义 images.in LXC 创建容器吗? this 回答你的问题了吗?【参考方案2】:我相信你可以安装 LXD,它应该会看到你所有的 lxc 容器(作为它和扩展)。如果没有,应该有简单的方法将 lxc 容器迁移到 lxd。后记,您可以将 LXE 扩展用于 kubernates。
【讨论】:
以上是关于Kubernetes 可以在没有 LXD 守护进程的情况下管理 LXC 容器吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Kubernetes CI管道中使用Gradle守护程序?
kubernetes系列 - n. 设置kubelet 预留资源
第152天学习打卡(Kubernetes Service 部署有状态应用 部署守护进程 job corejob Secret ConfigMap )