kubectl create -f node-exporter.yaml文件生成的pod 全部pending,在其他集群也是同样的方法生成的Pod是正常的,所以可以排除yaml文件的问题吧,yaml文件如下:
pending的pod,describe后报以下错误:
报错是提示你,端口上问题啊,有1个节点没有空闲端口让你请求。
查看一下节点现在已有的侦听端口是否够你去请求。
看错误信息你的k8s集群一共有四个节点(3个master、1个worker),错误分成两部分:
问题1:
你的workload类型是deamon-set,容器内端口用的是9100。正常情况下容器内端口不受宿主机影响,但你的yaml里配置了
hostNetwork:true
,所以会直接使用node所在的端口。看你的回复里报错是端口被占用,那么可以在该node上运行lsof -i :9100
查看是否有服务占用了9100这个端口,有就kill掉。
问题2:
节点不符合调度策略是因为你的yaml里设置了
tolerations
,看配置是不允许调度到master节点。但由于deamon-set类型的workload会在每个节点上都创建,所以3个master节点都报错了。解决方案是删掉下面的污点配置。
可能是端口被占用的缘故,检查一下报错的端口号的使用情况
感觉是端口被占用,需要设置个新的端口
看报错信息是4个节点都不可用,原因是端口都被占用了,可以修改一下端口重新试试