最近在K8S上部署監控工具Heapster和Metrics遇到一些問題。pod啟動之后顯示:
[root@MASTER ~]# kubectl top node
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)
通常這種情況都是網絡原因導致的問題。當我們使用二進制部署K8S時,如果master節點不部署網絡插件的話,監控工具由於使用了Targetpoort的形式使用POD ip 與MASTER進行通信。因此如果MASTER沒有部署網絡插件,便沒有路由回應POD。因此導致此問題發生。
部署了Flanneld之后,還需注意iptables是否放行了相關的路由通信。這里有個坑,我每次重啟機器后iptables都會重啟一遍導致有些規則顯示DROP,如圖所示:
這里一定要保證所有的路由都能通信,
iptables -A FORWARD -j ACCEPT 或者iptables -F。
之后metrics或者heapster會到收集階段:
部署成功。