K8S之部署 prometheus

一.相关地址信息
Prometheus github 地址:https://github.com/coreos/kube-prometheus

二.组件说明
1.MetricServer:是kubernetes集群资源使用情况的聚合器,收集数据给kubernetes集群内使用,如kubectl,hpa,scheduler等。
2.PrometheusOperator:是一个系统监测和警报工具箱,用来存储监控数据。3.NodeExporter:用于各node的关键度量指标状态数据。
4.KubeStateMetrics:收集kubernetes集群内资源对象数据,制定告警规则。5.Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输。
6.Grafana:是可视化数据统计和监控平台。

三。构建记录 #不要直接下载官方的项目,以免版本不对无法运行成功
git clone https://github.com/coreos/kube-prometheus.git
cd /root/kube-prometheus/manifests

四 修改 grafana-service.yaml 文件,使用 nodepode 方式访问 grafana:
apiVersion: v1
kind: Service
metadata:
labels:
app: grafana
name: grafana
namespace: monitoring
spec:
type: NodePort
ports:

  • name: http
    port: 3000
    targetPort: http
    nodePort: 30100
    selector:
    app: grafana

五。修改 prometheus-service.yaml,改为 nodepode

apiVersion: v1
kind: Service
metadata:
labels:
prometheus: k8s
name: prometheus-k8s
namespace: monitoring
spec:
type: NodePort
ports:

  • name: web
    port: 9090
    targetPort: web
    nodePort: 30200
    selector:
    app: prometheus
    prometheus: k8s
    sessionAffinity: ClientIP

六。修改 alertmanager-service.yaml,改为 nodepode
apiVersion: v1
kind: Service
metadata:
labels:
alertmanager: main
name: alertmanager-main
namespace: monitoring
spec:
type: NodePort
ports:

  • name: web
    port: 9093
    targetPort: web
    nodePort: 30300
    selector:
    alertmanager: main
    app: alertmanager
    sessionAffinity: ClientIP

七。导入镜像到所有工作节点
load-images.sh prometheus.tar.gz

八。拷贝项目目录到master节点,运行manifests目录下的配置文件
[root@MyBaseCentOS prometheus]# scp kube-prometheus.git.tar.gz k8smaster1:/k8s/k8sinstall/prometheus/
[root@k8smaster1 prometheus]# tar -xf kube-prometheus.git.tar.gz
[root@k8smaster1 prometheus]#cd /k8s/k8sinstall/prometheus/kube-prometheus/manifests
[root@k8smaster1 manifests]# kubectl apply -f . #如果提示错误运行多几次,

九。查询pod运行状态
[root@k8smaster1 manifests]# kubectl get pod -n monitoring -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
alertmanager-main-0 2/2 Running 0 7m29s 10.244.1.149 k8snode1
alertmanager-main-1 2/2 Running 0 7m17s 10.244.2.121 k8snode2
alertmanager-main-2 2/2 Running 0 7m4s 10.244.1.152 k8snode1
grafana-7dc5f8f9f6-x5njs 1/1 Running 0 7m47s 10.244.2.118 k8snode2
kube-state-metrics-5cbd67455c-njvxg 4/4 Running 0 7m12s 10.244.1.151 k8snode1
node-exporter-2t2dq 2/2 Running 0 7m45s 192.168.1.17 k8smaster1
node-exporter-6zlpd 2/2 Running 0 7m39s 192.168.1.19 k8snode2
node-exporter-pkr4l 2/2 Running 0 7m39s 192.168.1.18 k8snode1
prometheus-adapter-668748ddbd-mpt2k 1/1 Running 0 7m28s 10.244.2.119 k8snode2
prometheus-k8s-0 3/3 Running 1 7m13s 10.244.1.150 k8snode1
prometheus-k8s-1 3/3 Running 1 7m13s 10.244.2.122 k8snode2
prometheus-operator-7447bf4dcb-kbs49 1/1 Running 0 7m51s 10.244.1.147 k8snode1

####################################################
Prometheus无法获取数据提示 NO DATAPOINT
宿主机和虚拟机以及node节点之间需要同步时间
同步时间的服务器设定为time.aliyun.com

十。部署HPA
Horizontal Pod Autoscaling
Horizontal Pod Autoscaling 可以根据 CPU 利用率自动伸缩一个 Replication Controller、Deployment 或者Replica Set 中的 Pod 数量


版权声明:本文为weixin_45473752原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。