赞
踩
用于收集节点机器的数据信息,那么node-exporter与节点机器的连接在哪里?
node-exporter.yaml
apiVersion: apps/v1 kind: DaemonSet metadata: name: node-exporter namespace: kube-system labels: k8s-app: node-exporter spec: selector: matchLabels: k8s-app: node-exporter template: metadata: labels: k8s-app: node-exporter spec: containers: - image: prom/node-exporter name: node-exporter ports: - containerPort: 9100 protocol: TCP name: http tolerations: - key: "node-role.kubernetes.io/master" operator: "Exists" effect: "NoSchedule" --- apiVersion: v1 kind: Service metadata: labels: k8s-app: node-exporter name: node-exporter namespace: kube-system spec: ports: - name: http port: 9100 nodePort: 31672 protocol: TC type: NodePort selector: k8s-app: node-exporter
我们可以看到node-exporter的kind: DaemonSet
DaemonSet确保全部(或者一些)Node上运行一个Pod的副本。当有Node加入集群时,也会为他们新增一个Pod。当有Node从集群移除时,这些Pod也会被回收。也就是只要
kubectl create -f node-exporter.yaml
node-exporter会自动加入到k8s管理下的每个Node。自动关联无需手动关联。
prometheus用于存储node-exporte收集的数据,他们之间的联系在哪里呢?
首先我们可以看到node-exporter开放了端口31672
所以prometheus监听node-exporter的时候也要监听31672这个端口
然后我们配置node-exporter的IP是在prometheus的configmap.yaml文件中。
这里用公网IP和内网IP都可以访问通。区别暂时还不知道。
注意:
如果修改了configmap.yaml文件,需要做以下几步,而不是仅仅apply configmap.yaml
kubectl delete -f prometheus.svc.yml
kubectl delete -f prometheus.deploy.yml
kubectl delete -f configmap.yaml
验证prometheus服务是否已不存在
kubectl get po -A
重新创建prometheus服务
kubectl create -f configmap.yaml
kubectl create -f prometheus.deploy.yml
kubectl create -f prometheus.svc.yml
kubectl get po -n kube-system
Grafana用来展示prometheus存储的数据。他们之间的联系简单明了。
在Grafana的Data Source页面配置好prometheus的IP(master公网ip)+端口。就可以读取到prometheus存储的数据,并且以图表形式展示数据了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。