我在ubuntu 20上制作了一个k3s-master
,在另一个ubuntu上制作了k3s-agent
。我把两个系统都连接到同一个网络上。我在k3s agent上有docker镜像,我可以在k3s代理上运行容器。我创建了一个集群,k3s代理和k3s主机都连接到集群。我在主机上用kubectl get nodes
命令检查了一下,我可以看到代理和主机都在列。
以下几点我需要帮助。我想从k3s master在k3s代理上运行docker镜像。有没有办法从master在代理上运行docker镜像?
我开始知道我可以制作吊舱,使用吊舱我可以做到这一点。但pod不起作用。
如果我没有误解的话,你可以简单地用kubectl命令传递你的docker镜像,比如;kubectl run my-pod --image=your-image ...
如果您希望在代理端运行pod,则可以使用taint
和toleration
功能来匹配pod和节点。
我们可以做两件事。
- CCD_ 7
只需在yaml文件中提及nodeName: mynode1
即可。
taints and toleration
我们可以在pod的yaml文件中设置Taints and Toleration
。以下示例。
将Tants设置为类似的节点
kubectl taint nodes mynode1 app=Device:NoSchedule
我们可以在yaml文件中容忍如下。
apiVersion: v1
kind: Pod
metadata:
name: scriptpod
spec:
containers:
- name: scriptdo
image: scriptdo
imagePullPolicy: Always
nodeName: mynode1
restartPolicy: Always
tolerations:
- key: "app"
operator: "Equal"
value: "Device"
effect: "NoSchedule"
的污染和容忍度文件
注意:-我同时设置了nodeName
和taints and toleration
,导致nodeName
在极少数情况下不起作用。