参考node_exporter的做法,提供一个监控K8S集群节点情况(OS内核参数、网络连通性、Hadoop相关的配置等等)的程序。
dep ensure
CGO_ENABLED=0 go build -a -ldflags '-extldflags "-static"' .
为了排查是否出现竞态问题,可以在编译时加上--race
kubernetes的访问需要可用的kubelet.conf,通过kubelet.conf.path
指定kubelet.conf的路径
docker的访问可以开放docker daemon的监听端口,通过docker.host
指向确切的地址
docker build -t node-guard:1.0
Usage of ./node_guard:
-c string
the config file path
-d debug mode
-m string
mount point
-p int
listen port (default 8080)
为了收集宿主机的状态信息,所以需要将宿主机的整个根路径挂载到容器内。注意-m选择宿主机的挂载点。
举个栗子:
docker run -tid --entrypoint /bin/sh --name node_guard -v /:/host --net host --memory=128M --cpu-period=100000 --cpu-quota=1000 node_guard:1.0
选择将宿主机的根路径挂在到了容器内的/host下
./node_guard -c conf.yaml -p 8080 -m /host -d
-m指定了/host
参考node_guard.yaml就可以了
请参考