我正在探索和学习在linux工作站上使用podman和minikube的容器和kubernetes。我使用podman在工作站上构建映像,并希望使用kvm2虚拟机驱动程序在工作站上运行的minikube中部署这些映像。我还使用CRI-O容器运行时启动minikube。
在此方案中,将这些映像从工作站部署到minikube的有效工作流程是什么?Docker没有在minikube VM上运行,因此不能像minikube文档中描述的那样重用Docker守护进程。在使用kvm2的时候,与minikube共享主机文件系统似乎也不可行。
运行对工作站和minikube vm都可见的本地注册表是最佳选择吗?对How to use local docker images with Minikube?和(Kubernetes + Minikube) can't get docker image from local registry的回答似乎为配置本地注册表提供了很好的解决方案。
skopeo会是一个解决方案吗?
编辑:这是一篇很好的文章,描述了如何使用podman:https://computingforgeeks.com/create-docker-container-registry-with-podman-letsencrypt/设置注册表
谢谢
布拉德
发布于 2020-01-20 06:21:19
Minikube文档为https://minikube.sigs.k8s.io/docs/tasks/docker_registry/的潜在工作流程提供了基础。为了使用podman代替docker,我执行了以下操作
按照指示,使用--insecure-registry标志启动minikube。我特别使用了
minikube start --network-plugin=cni --enable-default-cni --bootstrapper=kubeadm --container-runtime=cri-o --cpus 4 --memory 4g --insecure-registry "192.168.39.0/24"启用minikube注册表插件。
minikube addons enable registry将podman配置为使用不安全的minikube注册表,方法是将注册表添加到/etc/containers/registries.conf的不安全注册表部分。这一部分现在看起来像
[registries.insecure]
registries = ['192.168.39.175:5000']其中192.168.39.175是minikube ip。此ip可能会在minikube重新启动后更改。
遵循https://minikube.sigs.k8s.io/docs/tasks/docker_registry/中的构建、推送和运行命令,将podman替换为docker。这里假设test-img容器文件存在。
内部版本:podman build --tag $(minikube ip):5000/test-img .
推送:podman push $(minikube ip):5000/test-img
运行:kubectl run test-img --image=$(minikube ip):5000/test-img
这是可行的,但有一个严重的复杂性:在使用kvm2时,目前还没有明显的方法来设置minikube VM的IP地址。IP地址始终在192.168.39.0/24子网中,但这是唯一确定的。每次minikube启动时,注册表的IP地址都会发生变化,这对podman和整个工作流程都有重要影响。
更多的是另一个解决方案。
https://stackoverflow.com/questions/59811664
复制相似问题