运行 docker 来自 k3s-master 的 k3s-agent 上的容器

Run docker container on k3s-agent from k3s-master

我在 ubuntu 20 上制作了一个 k3s-master,在另一个 ubuntu 20 上制作了一个 k3s-agent。我将两个系统连接到同一个 network.I docker k3s-agent 上的图像,我可以 运行 k3s-agent.I 上的容器创建一个集群,k3s-agent 和 k3s-master 都连接到集群。我在 master 上使用 kubectl get nodes 命令检查,我可以看到列出了 agent 和 master。

我需要以下方面的帮助。 我想在 k3s-master 的 k3s-agent 上 运行 docker 图像。有什么办法 运行 docker 从 master 到 agent 的图像吗?

我开始知道我可以制作 pod 并且使用 pod 我可以做到这一点。但是 pod 不工作。

如果我没有误解的话,您可以简单地使用 kubectl 命令传送您的 docker 图像,例如; kubectl run my-pod --image=your-image ...

如果你想在 agent-side 上 运行 pods 那么你可以使用 tainttoleration 能力来匹配 pods 和节点。

我们可以做两件事。

  1. nodeName,

只需在 yaml 文件中提及 nodeName: mynode1

  1. taints and toleration

我们可以在 pod 的 yaml 文件中设置 Taints and Toleration。示例如下。

像这样为节点设置污点

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"

Document for taints and toleration

注意:- 我同时设置了 nodeNametaints and toleration,因为 nodeName 在极少数情况下不起作用。