是否可以将 microk8s 设置为使用 docker 引擎而不是 containerd?

Posted

技术标签:

【中文标题】是否可以将 microk8s 设置为使用 docker 引擎而不是 containerd?【英文标题】:Is it possible to set microk8s to use docker engine instead of containerd? 【发布时间】:2020-07-22 00:04:40 【问题描述】:

首先,我不是容器编排工具方面的专家。

我刚刚根据指南安装了microk8s: https://microk8s.io/docs/

如果我运行 microk8s kubectl get nodes,我会看到,我的节点实际上正在运行 containerd 引擎。

我的应用程序构建过程设置为生成docker文件并自动创建docker镜像,所以我希望microk8s也使用docker。

我之前用过minikube,现在决定试试microk8s。现在我有点迷茫,也许从一开始就坚持使用 docker 是个坏主意?

可以为microk8s设置docker引擎吗?


我以前从未使用过包含,而且我不知道如何为我的应用准备包含的图像。这就是我问的原因。

【问题讨论】:

【参考方案1】:

您不需要专门 docker 来在 kubernetes 上使用 docker 镜像运行 pod。任何 OCI 标准运行时,例如 containerd、docker、CRI-O 等作为 OCI 运行时都可以运行 docker 镜像,因为它们都遵循相同的 OCI 标准。

microk8s 不提供从不同 OCI 运行时中进行选择的能力

【讨论】:

所以我认为这意味着我可以使用 containerd 引擎轻松使用 docker 图像。我的问题没有意义? 是的,您绝对可以这样做...kubernetes 从您那里抽象出容器运行时,因此您无需担心...现在 microk8s 不提供选择不同 OCI 运行时的能力。 .如果你想在 OCI 运行时有一个选择,你可以使用 kubeadm【参考方案2】:

首先,我不是容器编排工具方面的专家。

MicroK8s 只是一个可以安装在 Ubuntu 以及其他 Linux 发行版上的 snap 包。 MicroK8s 易于安装,并且磁盘和内存占用空间小,对于那些有兴趣探索 K8s 的人来说,它是一个很好的切入点。

如您所知,容器需要运行时引擎; 虽然 Docker 是 Pod 中最常用的容器运行时,但 Pod 可以根据需要使用其他容器运行时引擎,例如 CoreOS rkt 等。对于容器本身来说,没有区别。这就是这种方法的全部想法。

您可以轻松地在 microk8s 上运行您的容器。

希望对您有所帮助。

【讨论】:

【参考方案3】:

要运行支持 Nvidia GPU 的容器,我必须在 microk8s 中从 containerd 切换到 docker。我是这样做的:

    编辑 /var/snap/microk8s/current/args/kubelet

    从远程更改 --container-runtime=docker。那么,

$ microk8s 停止

$ micrk8s 开始

【讨论】:

以上是关于是否可以将 microk8s 设置为使用 docker 引擎而不是 containerd?的主要内容,如果未能解决你的问题,请参考以下文章

microk8s 搭建

如何为 microk8s grafana 设置 SMTP(prometheus 插件)

Microk8s 无法在 Longhorn 上自动安装 pod

使用 microk8s 从主机简单入口?

我如何杀死 microk8s Kubernetes?

如何在不将Dock设置为Fill的情况下将Label置于Panel内部