允许master节点部署pod

本文详细介绍了Kubernetes中如何通过设置节点污点来控制Pod的调度行为,包括NoSchedule、PreferNoSchedule及NoExecute三种策略,以及如何使用kubectl命令对master节点进行操作。

1 node(s) had taints that the pod didn't tolerate

异界神域 2020-01-21 11:37:28  1512  已收藏
展开
允许master节点部署pod
kubectl taint nodes --all node-role.kubernetes.io/master-
如果不允许调度
kubectl taint nodes master1 node-role.kubernetes.io/master=:NoSchedule
污点可选参数
      NoSchedule: 一定不能被调度
      PreferNoSchedule: 尽量不要调度
      NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
 

### Kubernetes DaemonSet 部署 Master 节点缺少 Pod 的解决方案 #### 一、检查节点状态 确保所有节点,包括Master节点处于正常工作状态。可以通过`kubectl get nodes`命令查看各个节点的状态。如果发现某些节点不可用或存在异常,则需要进一步排查这些节点上的问题。 #### 二、验证Flannel网络配置 由于提到所有节点需上传flannel镜像至/opt目录并由master节点应用kube-flannel.yml文件[^2],因此要确认此操作已在集群内全部完成,并且Flannel CNI插件已成功启动运行。这一步骤对于跨主机容器间通信至关重要,任何错误都可能导致Pod无法被正确分配给目标节点。 #### 三、调整调度策略排除控制平面组件所在节点 默认情况下,Kubernetes不会将普通的工作负载安排到标记为“control-plane”的节点上(即通常所说的master节点)。这是因为通过taints/tolerations机制设置了排斥规则来保护关键系统的稳定性。然而,在特定场景下比如小型开发测试环境中可能希望改变这种行为以便充分利用资源。此时可考虑移除相关污点或者增加容忍度设置让DaemonSets能够覆盖整个集群中的每一个成员: ```bash # 移除master节点上的NoSchedule taint kubectl taint nodes <your-master-node-name> node-role.kubernetes.io/control-plane- ``` 上述命令将会使得master节点不再具有阻止其他pods调度上去的特性,从而允许DaemonSet管理下的Pod实例也能在此类特殊位置创建出来。 #### 四、重启API Server和服务代理进程 有时简单的服务重启就能解决问题。尝试停止再重新开启apiserver以及kube-proxy等相关后台程序可能会刷新内部缓存数据结构进而恢复正常的服务发现流程。具体做法取决于所使用的操作系统版本及其初始化方式;例如systemd环境下可以使用如下指令: ```bash sudo systemctl restart kubelet.service sudo systemctl restart kube-apiserver.service sudo systemctl restart kube-controller-manager.service sudo systemctl restart kube-scheduler.service sudo systemctl restart kube-proxy.service ``` 以上措施有助于清除潜在的数据不一致情况,特别是当遇到因同步过程发生部分Node信息丢失而导致DaemonSet的部分Pod实例无法调度的情况时尤为有效[^1]。 #### 五、核对资源配置请求与实际可用容量之间的匹配程度 最后还需仔细对比期望部署的应用所需CPU/内存等硬件参数同当前环境所能提供的最大限额之间是否存在冲突。即使是在看似充足的条件下也有可能因为预留不足或其他因素造成个别实例得不到满足而一直处于Pending阶段。针对这一点可通过编辑YAML描述文档适当降低单个单元消耗量或是扩大整体供给规模加以改善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值