【问题标题】:How to deploy a pod on a master node running apiserver如何在运行 apiserver 的主节点上部署 pod
【发布时间】:2022-01-17 09:57:33
【问题描述】:

我有一个 pod,它本质上是一个 apiserver 的插件,它几乎没有工作负载 pod,它的任务是将手表外部化到另一个 pubsub 设施(就像从一个 api 到另一个 api 的桥梁) 为了减少实际网络连接的延迟和数量,我认为始终将其 1-replica 部署部署到同一台机器上可能是有意义的,即运行 apiserver 本身。原来它是一个主节点。 Pod 几乎不占用内存和 CPU,没有任何端点的纯流式 Pod - 从 k8s 手表连接到其他东西。我该怎么做?

【问题讨论】:

  • 官方文档中的“污点和宽容”是很好的起点。

标签: kubernetes deployment kubernetes-apiserver kube-apiserver


【解决方案1】:

如果您想在主节点上部署 pod。
运行:

kubectl taint nodes --all node-role.kubernetes.io/master-

【讨论】:

  • 是否保证部署在运行 apiserver pod 的同一节点上?
  • 上面的命令只允许在master节点上运行pod。您还需要指定在其上运行的 pod。
【解决方案2】:

如果你的意图只是在主节点上运行一个特定的 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"]

【讨论】:

    猜你喜欢
    • 2020-03-17
    • 2016-04-22
    • 1970-01-01
    • 2020-11-10
    • 2020-04-10
    • 2021-03-21
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    相关资源
    最近更新 更多