是否可以将 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 grafana 设置 SMTP(prometheus 插件)