【五】prometheus+grafna初步部署和简单使用

部署Prometheus

地址: https://github.com/prometheus-operator/kube-prometheus/tree/release-0.7
学习来源:https://www.cnblogs.com/lidong94/p/14500276.html、https://juejin.cn/post/6865504989695967245?searchId=20240312205710B746697AB0CDB7706DB3
我使用的kube-Prometheus,因为我的k8s版本是1.19,所以根据版本对应选择的0.7
在这里插入图片描述

wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.7.0.zip
unzip v0.7.0.zip # 就可以看到kube-prometheus-0.7.0
cd kube-prometheus-0.7.0

修改service 类型为 NodePort,不然公网无法访问,并添加Nodeport端口,

vi manifests/grafana-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: monitoring
spec:
  type: NodePort     # 新增的
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 30099   # 新增的
  selector:
    app: grafana

vi manifests/alertmanager-service.yaml
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

vi manifests/prometheus-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
spec:
  type: NodePort   # 新增
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 30100   # 新增
  selector:
    app: prometheus
    prometheus: k8s
  sessionAffinity: ClientIP

注意三个文件的端口要不一样,不然会冲突,在这里运行启动命令其实就可以创建了,但是创建后会少两个监控,所以再增加一下配置

还有要修改镜像的,因为我上网是科学的,所以没有做这一步,可以看我上面贴的学习来源。

新增监控

1、修改监控端口

vi /etc/kubernetes/manifests/kube-scheduler.yaml

把这个参数的值改成这个 --bind-address=0.0.0.0

vi /etc/kubernetes/manifests/kube-controller-manager.yaml

把这个参数的值改成这个 --bind-address=0.0.0.0

在~目录下创建下面两个文件

vi kube-system-controller-manager.yaml
apiVersion: v1
kind: Service
metadata:
  namespace: kube-system
  name: kube-controller-manager
  labels:
    k8s-app: kube-controller-manager
spec:
  ports:
  - name: https-metrics
    port: 10257
  selector:
    component: kube-controller-manager

vi kube-system-schedule.yaml 
apiVersion: v1
kind: Service
metadata:
  namespace: kube-system
  name: kube-scheduler
  labels:
    k8s-app: kube-scheduler
spec:
  ports:
  - name: https-metrics
    port: 10259
  selector:
    component: kube-scheduler

kubectl apply -f kube-system-controller-manager.yaml
kubectl apply -f kube-system-schedule.yaml

部署命令

创建命令

kubectl create -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl create -f manifests/

等执行完就可以访问了
prometheus: http://103.39.226.71:30100/graph
第一次启动的时候,发现Prometheus访问不了,可以进入容器的日志中看下,报错了的话,删掉一个pod试试,删除pod会重启一个pod,这样好像就可以了。

grafna: http://103.39.226.71:30099/login 默认账号admin 密码admin

点击这个可以看到default文件夹,文件夹里就有那些监控数据
在这里插入图片描述

由于grafana默认时区是UTC,比中国时间慢了8小时,很不便于日常监控查看,需要进行修改,如下图

在这里插入图片描述

grep -i timezone grafana-dashboardDefinitions.yaml   # 找到所有的,发现有一个是小写utc,其他都是UTC
# 执行下面的,这两个是不同的,都要执行
sed -i 's/UTC/UTC+8/g'  grafana-dashboardDefinitions.yaml
sed -i 's/utc/utc+8/g'  grafana-dashboardDefinitions.yaml

kubectl apply -f grafana-dashboardDefinitions.yaml

再看时间就会变成当前时间了。

发现还是为0
在这里插入图片描述
根据这个去尝试解决 https://www.cnblogs.com/zoujiaojiao/p/16921462.html

kubectl delete -f prometheus-serviceMonitorKubeScheduler.yaml
kubectl delete -f prometheus-serviceMonitorKubeControllerManager.yaml

修改这两个文件内容
prometheus-serviceMonitorKubeControllerManager.yaml

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    k8s-app: kube-controller-manager
  name: kube-controller-manager
  namespace: monitoring
spec:
  endpoints:
  - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
    interval: 30s
    port: https-metrics
    scheme: https
    tlsConfig:
      insecureSkipVerify: true
  jobLabel: k8s-app
  namespaceSelector:
    matchNames:
    - kube-system
  selector:
    matchLabels:
      k8s-app: kube-controller-manager

prometheus-serviceMonitorKubeScheduler.yaml

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    k8s-app: kube-scheduler
  name: kube-scheduler
  namespace: monitoring
spec:
  endpoints:
  - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
    interval: 30s
    port: https-metrics
    scheme: https
    tlsConfig:
      insecureSkipVerify: true
  jobLabel: k8s-app
  namespaceSelector:
    matchNames:
    - kube-system
  selector:
    matchLabels:
      k8s-app: kube-scheduler

 kubectl apply -f prometheus-serviceMonitorKubeScheduler.yaml
 kubectl apply -f prometheus-serviceMonitorKubeControllerManager.yaml

执行最后这两个命令的时候一开始也没成功,然后我先DELETE了这两个server,然后重新创建,重复了两遍又可以了,可能是反应太慢了。反正现在显示正常了
在这里插入图片描述

我的到这里就先结束了,没有配置持久化,没有配置告警,如果要配置的,我上面贴的学习链接可以去看下。

删除命令

kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

相关推荐

  1. vue简单使用(组件的使用

    2024-03-13 23:06:05       14 阅读
  2. Docker初步使用

    2024-03-13 23:06:05       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 23:06:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 23:06:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 23:06:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 23:06:05       18 阅读

热门阅读

  1. 【C++】如何输入输出未知长度的二维数组?

    2024-03-13 23:06:05       91 阅读
  2. Rust教程:How to Rust-变量

    2024-03-13 23:06:05       24 阅读
  3. 【计算机网络】————集线器

    2024-03-13 23:06:05       22 阅读
  4. Rust常用特型之Drop特型

    2024-03-13 23:06:05       25 阅读
  5. MATLAB中mapminmax函数用法

    2024-03-13 23:06:05       22 阅读
  6. coingecko获取token price --php版

    2024-03-13 23:06:05       22 阅读
  7. GRU-深度学习循环神经网络情感分类模型搭建

    2024-03-13 23:06:05       25 阅读
  8. APK漏洞扫描工具

    2024-03-13 23:06:05       21 阅读
  9. 流量池增长(6)

    2024-03-13 23:06:05       19 阅读
  10. Everything:文件查找工具,一搜即得

    2024-03-13 23:06:05       17 阅读
  11. 三维数组指针定义和初始化例子

    2024-03-13 23:06:05       22 阅读
  12. C#写入和调用方法

    2024-03-13 23:06:05       22 阅读
  13. c语言之函数声明

    2024-03-13 23:06:05       24 阅读