如何在主节点 运行 apiserver 上部署 pod
How to deploy a pod on a master node running apiserver
我有一个 pod,它本质上是一个 api 服务器的插件,它几乎没有工作负载 pod,它的任务是将 watches 外部化到另一个 pubsub 设施(就像一个 api 的桥梁一样给另一个)
为了减少实际网络连接的延迟和数量,我认为始终将其 1-replica 部署部署到同一台机器上可能是有意义的,即 运行 api 服务器本身。原来是主节点。 Pod 几乎不使用 ram 和 CPU,没有任何端点的纯流式 pod - 从 k8s 手表到其他东西的桥梁。我该怎么做?
如果你想在master节点上部署一个pod。
只是 运行:
kubectl taint nodes --all node-role.kubernetes.io/master-
如果您的目的只是运行主节点上的特定 pod 并且不打开主节点,您应该实施tolerations
并且nodeSelector
。下面的示例将始终 运行 主节点上的 busybox:
apiVersion: v1
kind: Pod
metadata:
name: busybox
labels:
run: busybox
spec:
restartPolicy: Never
nodeSelector:
<a unique label on your master node>: <the label value>
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
command: ["ash","-c","sleep 3600"]
我有一个 pod,它本质上是一个 api 服务器的插件,它几乎没有工作负载 pod,它的任务是将 watches 外部化到另一个 pubsub 设施(就像一个 api 的桥梁一样给另一个) 为了减少实际网络连接的延迟和数量,我认为始终将其 1-replica 部署部署到同一台机器上可能是有意义的,即 运行 api 服务器本身。原来是主节点。 Pod 几乎不使用 ram 和 CPU,没有任何端点的纯流式 pod - 从 k8s 手表到其他东西的桥梁。我该怎么做?
如果你想在master节点上部署一个pod。
只是 运行:
kubectl taint nodes --all node-role.kubernetes.io/master-
如果您的目的只是运行主节点上的特定 pod 并且不打开主节点,您应该实施tolerations
并且nodeSelector
。下面的示例将始终 运行 主节点上的 busybox:
apiVersion: v1
kind: Pod
metadata:
name: busybox
labels:
run: busybox
spec:
restartPolicy: Never
nodeSelector:
<a unique label on your master node>: <the label value>
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
command: ["ash","-c","sleep 3600"]