在 Kubernetes 中,允许 master 节点部署 Pod 需要解除其默认的 “不可调度” 状态。可以通过以下步骤实现:

⚙️ 方法一:移除 master 节点的污点(Taint)(推荐)

  1. ​查看当前节点污点​
kubectl describe node <master-node-name> | grep Taints

通常会显示:Taints: node-role.kubernetes.io/master:NoSchedule

  1. ​移除污点​
kubectl taint nodes <master-node-name> node-role.kubernetes.io/master:NoSchedule-
  1. ​验证修改​
kubectl describe node <master-node-name> | grep Taints
# 应该显示:Taints: <none>

⚙️ 方法二:在 Pod 中配置容忍(Toleration)

在 Pod 定义中添加 tolerations,允许调度到 master 节点:

spec:
  tolerations:
  - key: "node-role.kubernetes.io/master"
    operator: "Exists"
    effect: "NoSchedule"

完整示例如下:

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
  - name: nginx
    image: nginx:latest
  tolerations:
  - key: "node-role.kubernetes.io/master"
    operator: "Exists"
    effect: "NoSchedule"
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐