我有一个使用 Minikube 的 Kubernetes 项目。到目前为止,它一直使用 Docker 作为驱动程序。但是,我们被指示切换并改用 Podman。
问题源于 Podman 目前似乎仍处于与 Minikube 一起使用的实验阶段。没关系,因为 Podman 似乎对某些人有用。所以我需要弄清楚如何在我们的系统上启用 Podman。
细节:
- Ubuntu 18.04.6
- Minikube 1.31.1
- podman 3.4.2
安装
- 迷你库
- *卷曲-LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
- sudo dpkg -i minikube_latest_amd64.deb*
- 波德曼
- sudo sh -c “回显'debhttp://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}//'> /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list”
- wget -nvhttps://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key-O- | sudo apt-key 添加 -
- sudo apt 更新
- sudo apt 安装 podman -y
- 迷你库
此时 minikube 和 podman 都已分别启动并运行。下一步我将配置 Minikube 来运行 Podman
- 迷你库
- minikube 配置将 rootless 设置为 true
- minikube 配置设置驱动程序 podman
- minikube 配置设置 cpu 4
- minikube 配置设置内存 8192
- minikube 配置设置容器运行时 containerd
我跑minikube 配置视图只是为了验证一切设置是否正确。
只是提供一些背景信息。我们之所以要转换,部分原因是客户运行 podman,并且一直这样做是因为 podman 可以设置为无根运行。我知道 docker 现在有这个功能,或者我读过,但客户不能选择运行 docker。我也尝试过这两种方式容器和克里欧作为容器运行时,但导致了同样的错误。
此时,我已准备好启动运行 podman 的集群。因此
启动 minikube
一开始一切看起来都很好。我遇到的第一个错误是
但这似乎不是问题,这只是说明它尚未实现。从我找到的文档来看,情况似乎如此。
然而几分钟后它就失败了。
所以我检查了我的活跃个人资料。
我得到了一个未知状态,这反映了初始化失败的事实。我运行minikube 状态并得到其中大部分都不存在的信息。
我接下来要做的是检查日志,但在这里遇到了另一个错误。
minikube 日志 --file=logs.txt
奇怪的是,它与我尝试启动集群时看到的情况类似。所以我从这里开始
我查看了 minikube github 上报告的相关问题客人状态错误,但是并不多。
- https://github.com/kubernetes/minikube/issues/13992
- 这涉及到一些与docker相关的步骤。Docker对我来说运行得很好,所以我忽略了它
- https://github.com/kubernetes/minikube/issues/12915
- 指着https://github.com/kubernetes/minikube/issues/8409
- 但同样,它似乎引用了 docker 设置
- 指着https://github.com/kubernetes/minikube/issues/8409
- https://github.com/kubernetes/minikube/issues/14845
- 这篇文章看起来很有希望。一位用户似乎通过添加等待参数解决了这个问题
- --wait-timeout 15m0s --全部等待
- 但这对我没什么用
- 这篇文章看起来很有希望。一位用户似乎通过添加等待参数解决了这个问题
那么从这里继续。我开始研究另一个方面,它看起来可能是集群本身初始化的失败点。
看起来卷名已经存在。好的,所以我要做的第一件事就是删除当前配置文件
minikube 删除
现在我查看 podman 卷,发现有一个名为迷你库。所以我删除了它,但我使用全部只是为了确定的论点。podman 卷 rm --all。
我尝试再次启动集群,但再次失败。当卷问题发生时,它似乎会重新启动默认容器,但是,弹出下一个错误,容器迷你库不存在,无法找到。这很奇怪,因为当我检查个人资料列表时,它有当天的计划。
我花了很多时间研究这个问题,但还是没能找到任何答案。我希望有人看到这个问题并能提供一些建议。最后,我想说,这个问题与 Podman 的使用不稳定且仍处于试验阶段有关,正如 Minikube 网站上所述。
最后一件事,我尝试卸载并重新安装 Minikube 和 Podman。运行此程序并失败的主要系统是 Ubuntu 20.04,我切换到另一个系统进行测试,看看是系统问题还是与环境有关的问题。但两个系统上都出现了完全相同的错误。
有什么想法或见解吗?
答案1
阻止我将 Podman 用作 Minkube 驱动程序的主要问题是 Podman 版本。您需要安装更新版本的 Podman,我目前正在运行 4.6.2。
这可以通过几种方式完成。您可以从源代码构建,但我遇到了一些问题,因为从某些源代码构建 Podman 需要新版本的 Golang,我也很难获得它。您可以在这里找到有用的信息,从源代码构建。
获取最新 podman 的另一种方法是使用 Kubic Project repo。当然,你必须使用不稳定而不是“稳定”的仓库。你可以在这里找到有关如何添加 Kubic 仓库的信息,添加 Kubic repo
请注意,还存在其他问题,例如 rootless 目前对我来说不起作用,并且存在一些与拉取容器镜像相关的问题。