1

我正在学习使用 Kubernetes 并尝试配置对我的 Kubernetes 集群的监控。为此,我使用 metricbeat 和 elk。部署和配置 metricbeat 后,出现错误:

error making http request: Get http://172.16.0.205:10255/stats/summary: dial tcp 172.16.0.205:10255: connect: connection refused

我发现我的 Kubelet 没有监听 10255 端口:

[root@kube2 /]# netstat -ap | grep -i "listen" | grep "kubelet"
tcp        0      0 localhost:40450         0.0.0.0:*               LISTEN      8560/kubelet        
tcp        0      0 localhost:10248         0.0.0.0:*               LISTEN      8560/kubelet        
tcp6       0      0 [::]:10250              [::]:*                  LISTEN      8560/kubelet 

如何启用此端口。查到需要用到参数--read-only-port = 10255的信息,但是怎么应用到我的kubelet上,我不太明白。例如:

[root@kube2 /]# kubelet --config --read-only-port=10255
\F1010 13:32:48.592306   15851 server.go:196] failed to load Kubelet config file --read-only-port=10255, error failed to read kubelet config file "/--read-only-port=10255", error: open /--read-only-port=10255: no such file or directory

这是行不通的。它需要哪个文件?

谁能帮我解决这个问题?

4

1 回答 1

0

我解决了这个问题。我在每个 kubertenes 节点的 /var/lib/kubelet/kubelet-flags 中添加了标志:

KUBELET_KUBEADM_ARGS="--cgroup-driver=systemd --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1 --read-only-port=10255"

并重启 kubelet 服务。

现在我打开了 10255 端口:

[root@kube2 7.1]# netstat -ap | grep -i "listen" | grep "kubelet"
tcp        0      0 localhost:44799         0.0.0.0:*               LISTEN      6281/kubelet        
tcp        0      0 localhost:10248         0.0.0.0:*               LISTEN      6281/kubelet        
tcp6       0      0 [::]:10250              [::]:*                  LISTEN      6281/kubelet        
tcp6       0      0 [::]:10255              [::]:*                  LISTEN      6281/kubelet    

我在我的 kibana 中看到了一些 kubernetes 的日志。

于 2019-10-10T13:18:21.220 回答