如何在microk8s中使用本地docker镜像?

tec*_*der 6 docker kubernetes minikube microk8s

我一直在使用minikube在本地测试Kubernetes。在minikube中,我们可以通过使用eval $(minikube docker-env)命令来使用本地docker映像。

我开始探索microk8。在我的在Ubuntu 18上运行的计算机上使用snap安装了microk8s。

除了创建本地docker注册表外,还有什么方法可以将本地docker镜像与microk8一起使用,就像我们使用minikube进行测试和开发一样?

microk8s.docker 命令也无法正常工作,它显示:

找不到命令'microk8s.docker',但可以使用以下命令安装:

快速安装microk8s

但已安装。

Nav*_*rni 11

microk8s 有一个私有注册表,可用于此目的。

您必须事先启用注册表,使用以下命令

$ microk8s.enable 注册表

注册表将流量映射到端口 32000,因此您必须将 docker 映像推送到注册表。如果图像已经存在于本地,您可以使用 docker tag 命令。

$docker tag <imageName:version> localhost:32000/<imageName:version>

$docker push localhost:32000/<imageName:version>.
Run Code Online (Sandbox Code Playgroud)

使用https://microk8s.io/docs/registry-built-in了解更多信息。


Pjo*_*erS 3

不幸的是,您没有提供 microk8 版本和您的步骤。

我猜你是用sudo snap install microk8s --classic命令来安装的。目前它将下载 v1.14.0。
您可以使用检查您的版本snap info microk8s

1.14.0 版本引入了microk8s.daemon-docker的更改,并将其更改为microk8s.daemon-containerd。由于此更改,microk8s 无法执行 docker 命令。Microk8s 包含版本 1.11 和 1.13 之间的daemon-docker

如果你习惯使用 docker install microk8s v1.13 bysudo snap install microk8s --classic --channel=1.13/stable

供将来使用:

1)安装microk8s - sudo snap install microk8s --classic --channel=1.13/stable(如果仍然想使用docker)

2) 确保 microk8s 已启动 - microk8s.start(你可以通过 停止它microk8s.stop)

3)检查正在运行的服务 -microk8s.inspect

kubectl get all --all-namespaces4)microk8s中的命令前缀不同,即需要使用- 代替microk8s.kubectl get all --all-namespaces(稍后可以使用别名来改变它)

5) 您可以使用 Dockerfile 创建映像microk8s.docker build .(不要忘记在命令末尾添加 Dockerfile 和“.”)。

您可以随时查看Microk8s 文档