我在ubuntu 20上做了一个k3s-master
,在另一个ubuntu 20上做了一个k3s-agent
。我有两个系统连接到同一个网络。我在k3 s-agent上有docker镜像,我可以在k3 s-agent上运行容器。我创建了一个集群,k3 s-agent和k3 s-master都连接到集群。我在master上使用kubectl get nodes
命令进行了检查,可以看到代理和master都已列出。
我在以下几点上需要帮助。我想从k3 s-master在k3 s-agent上运行docker image。有没有办法从master在agent上运行docker image?
我知道我可以做豆荚,用豆荚我可以做到这一点。但分离舱不管用
3条答案
按热度按时间1szpjjfi1#
如果我没有误解的话,你可以简单地用kubectl命令传递你的docker镜像,比如:
kubectl run my-pod --image=your-image ...
如果您希望在代理端运行pod,那么您可以使用
taint
和toleration
功能来匹配pod和节点。vngu2lb82#
我们可以做两件事。
nodeName
,只需在yaml文件中提到
nodeName: mynode1
。taints and toleration
我们可以在pod的yaml文件中设置
Taints and Toleration
。示例如下。将Taints设置为这样的节点
我们可以容忍在yaml文件如下。
Document for taints and toleration
注:-我设置了
nodeName
和taints and toleration
,导致nodeName
在罕见情况下不工作。4dc9hkyq3#
在代理节点上运行Docker镜像的一个选择是,您可以在该节点上本地构建镜像。构建完成后,您可以设置
imagePullPolicy: Never
,使其尝试从代理的本地Docker注册表中获取它。