环境
kubernetes: v1.17.3
kube-prometheus
部署
获取源码
需要安装git
yum -y install git
下载官方prometheus-operator
git clone https://github.com/coreos/kube-prometheus.git
## 或使用我自己的github文件省去下面所有配置直接kubectl apply -f 相应目录下的文件即可
https://github.com/kubernetes-devops/prometheus-operator.git
#使用此配置以下操作仅为了解
修改配置文件
在alertmanager-service.yaml增加---------type: NodePort及nodePort: 30093
在grafana-service.yaml增加---------type: NodePort及nodePort: 32000
在prometheus-service.yaml增加---------type: NodePort及nodePort: 30090

创建monitoring 名称空间并安装prometheus-operator
cd kube-prometheus
kubectl create -f manifests/setup
kubectl create -f manifests/
http://localhost:30090/targets
我们发现有两个targets下面没有内容,分别是kube-controller-manager和kube-scheduler。
解决办法
这里创建两个管理组件的svc,将svc的label设置为k8s-app: {kube-controller-manager、kube-scheduler},这样就可以被servicemonitor选中
如果需要监控controllers、scheduler需要修改其配置文件,--bind-address地址为:0.0.0.0
创建一个svc用来绑定
#创建一个单独的目录存放
mkdir /root/kube-promethues/manifests/scheduler-controller-manager
cd /root/kube-promethues/manifests/scheduler-controller-manager
vim prometheus-kubeMasterService.yaml
apiVersion: v1
kind: Service
metadata:
namespace: kube-system
name: kube-controller-manager
labels:
k8s-app: kube-controller-manager
spec:
selector:
component: kube-controller-manager
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 10252
targetPort: 10252
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
namespace: kube-system
name: kube-scheduler
labels:
k8s-app: kube-scheduler
spec:
selector:
component: kube-scheduler
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 10251
targetPort: 10251
protocol: TCP
手动填写svc对应的ep的属性,ep的名称要和svc名称和属性对应上
vim prometheus-kubeMasterEndPoints.yaml
apiVersion: v1
kind: Endpoints
metadata:
labels:
k8s-app: kube-controller-manager
name: kube-controller-manager
namespace: kube-system
subsets:
- addresses:
- ip: 192.168.0.10
- ip: 192.168.0.11
- ip: 192.168.0.12
ports:
- name: http-metrics
port: 10252
protocol: TCP
---
apiVersion: v1
kind: Endpoints
metadata:
labels:
k8s-app: kube-scheduler
name: kube-scheduler
namespace: kube-system
subsets:
- addresses:
- ip: 192.168.0.10
- ip: 192.

本文介绍了如何使用prometheus-operator监控kubernetes集群,包括kube-proxy和Etcd集群。通过创建ServiceMonitor、Service和Endpoint,配置证书,并修改配置文件,成功实现了对kube-controller-manager、kube-scheduler、kube-proxy和Etcd的监控,并能在Prometheus和Grafana中查看监控数据。
最低0.47元/天 解锁文章
7万+

被折叠的 条评论
为什么被折叠?



