我一直在使用minikube在本地测试Kubernetes。在minikube中,我们可以使用eval $(minikube docker-env)
命令来使用本地docker映像。
我开始探索microk8。在我的在Ubuntu 18上运行的计算机上使用snap安装了microk8。
除了创建本地docker注册表外,是否还有其他方法可以将microk8与本地docker镜像一起使用,就像我们使用minikube进行测试和开发一样?
microk8s.docker
命令也不起作用,显示为:
找不到命令'microk8s.docker',但是可以使用以下命令安装
快速安装microk8s
但已安装。
答案 0 :(得分:7)
microk8s有一个专用注册表,可以用于此目的。
您必须先使用以下命令启用注册表
$ microk8s.enable注册表
注册表将流量映射到端口32000,因此您必须将docker映像推送到注册表。如果该图像已经在本地存在,则可以使用docker tag命令。
$docker tag <imageName:version> localhost:32000/<imageName:version>
$docker push localhost:32000/<imageName:version>.
答案 1 :(得分:1)
很遗憾,您没有提供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 。
如果您习惯使用sudo snap install microk8s --classic --channel=1.13/stable
的docker安装microk8s v1.13
以备将来使用:
1)安装microk8s-sudo snap install microk8s --classic --channel=1.13/stable
(如果仍要使用docker)
2)确保已启动microk8s-microk8s.start
(您可以通过microk8s.stop
停止它)
3)通过-microk8s.inspect
4)microk8s中的命令前缀不同,即代替
-kubectl get all --all-namespaces
,您需要使用microk8s.kubectl get all --all-namespaces
(以后您可以使用allias进行修改)
5)您可以使用microk8s.docker build .
通过Dockerfile创建映像(不要忘记在命令末尾添加Dockerfile和“。”)。
您随时可以检查Microk8s documentation