请求恢复已停止的OpenShift Ingress Router及登录前节点配置咨询
解决OpenShift Ingress Router停止及节点配置修改问题
一、登录前修改节点配置(无需OpenShift集群登录)
若无法通过OpenShift控制台或oc命令行登录集群,可直接通过节点操作系统终端调整配置:
- 通过物理控制台、IPMI/iDRAC等远程管理工具,登录到运行Ingress Router的节点操作系统(通常为CoreOS/RHEL)。
- 切换至root权限:
sudo -i - 使用节点本地kubeconfig文件执行
oc命令修改节点污点:- 查看当前节点污点:
oc --kubeconfig /var/lib/kubelet/kubeconfig describe node <节点名称> - 删除导致Router Pod无法调度的污点:
oc --kubeconfig /var/lib/kubelet/kubeconfig taint nodes <节点名称> <污点键>:<污点值>-
(例如,若污点为node-role.kubernetes.io/infra:NoSchedule,则执行oc --kubeconfig /var/lib/kubelet/kubeconfig taint nodes <节点名> node-role.kubernetes.io/infra:NoSchedule-)
- 查看当前节点污点:
二、恢复OpenShift Ingress Router
- 节点污点调整完成后,检查Ingress Controller状态:
oc --kubeconfig /var/lib/kubelet/kubeconfig get pods -n openshift-ingress - 若Router Pod未自动重启,手动删除停止的Pod触发重建:
oc --kubeconfig /var/lib/kubelet/kubeconfig delete pod -n openshift-ingress <Router Pod名称> - 验证Router Pod状态,直到显示
Running:oc --kubeconfig /var/lib/kubelet/kubeconfig get pods -n openshift-ingress - 若Router仍无法调度,检查Ingress Controller的容忍度配置,确保与节点污点匹配:
oc --kubeconfig /var/lib/kubelet/kubeconfig edit ingresscontroller/default -n openshift-ingress-operator
在spec.nodePlacement.tolerations字段添加对应容忍度,示例:
保存退出后,Ingress Operator会自动更新Router Pod配置并完成重建。spec: nodePlacement: tolerations: - key: "node-role.kubernetes.io/infra" operator: "Exists" effect: "NoSchedule"
内容的提问来源于stack exchange,提问作者ddakker
相关产品推荐
相关产品推荐

