首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >prometheus监控安装使用

prometheus监控安装使用

原创
作者头像
堕落飞鸟
发布2022-06-07 09:18:10
发布2022-06-07 09:18:10
8700
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

一、安装

1.1、创建CRD以及namespace
代码语言:javascript
复制
# 官方地址:https://github.com/prometheus-operator/kube-prometheus
# 下载对应版本安装包
https://github.com/prometheus-operator/kube-prometheus/tree/v0.10.0
​
# 创建operator
kubectl apply --server-side -f manifests/setup
​
1.2、修改持久化配置
代码语言:javascript
复制
# 修改文件prometheus-prometheus.yaml
# 数据持久化
vim prometheus-prometheus.yaml
  storage:
    volumeClaimTemplate:
      spec:
        storageClassName: rook-ceph-block
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 20Gi
​
# 修改文件grafana-deployment.yaml
# 数据持久化
vim grafana-deployment.yaml
# 新建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
    name: grafana-pvc
    namespace: monitoring
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  storageClassName: rook-ceph-block
​
# pvc绑定
      - name: grafana-storage
        persistentVolumeClaim:
          claimName: grafana-pvc
1.3、完成安装
代码语言:javascript
复制
# 创建
kubectl apply -f manifests/
1.4、配置monitoring ingress
代码语言:javascript
复制
# 配置monitoring ingress
# 生成https证书
kubectl create secret tls test-secret --cert=www.test.com.crt --key=www.test.com.key -n monitoring
​
# 编辑ingress文件
vim monitoring-ingress-https.yaml
​
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: grafana
  namespace: monitoring
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  tls:
    - hosts:
        - grafana.test.com
      secretName: test-secret
  rules:
    - host: grafana.test.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: grafana
                port:
                  name: http
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prometheus
  namespace: monitoring
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  tls:
    - hosts:
        - prometheus.test.com
      secretName: test-secret
  rules:
    - host: prometheus.test.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: prometheus-k8s
                port:
                  name: web
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: alertmanager
  namespace: monitoring
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  tls:
    - hosts:
        - alertmanager.test.com
      secretName: test-secret
  rules:
    - host: alertmanager.test.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: alertmanager-main
                port:
                  name: web
​
# 创建ingress
kubectl apply -f monitoring-ingress-https.yaml
​
# grafana默认密码admin/admin,初次登陆后修改
1.5、处理现有警告
代码语言:javascript
复制
# kube-scheduler
vim kube-scheduler-svc-ep.yaml
​
apiVersion: v1
kind: Service
metadata:
  name: kube-scheduler
  namespace: kube-system
  labels:
    k8s-app: kube-scheduler
    app.kubernetes.io/name: kube-scheduler
spec:
  type: ClusterIP
  clusterIP: None
  ports:
  - name: https-metrics
    port: 10259
    targetPort: 10259
    protocol: TCP
​
---
apiVersion: v1
kind: Endpoints
metadata:
  name: kube-scheduler
  namespace: kube-system
  labels:
    k8s-app: kube-scheduler
    app.kubernetes.io/name: kube-scheduler
subsets:
- addresses:
  - ip: 192.168.31.181
    targetRef:
      kind: Node
      name: k8s-master01
      uid: 69c15b18-fd73-4de0-949b-a2a7f2e26984
  - ip: 192.168.31.182
    targetRef:
      kind: Node
      name: k8s-master02
      uid: de34705b-3c3f-4648-b00b-e90321b69fc9
  - ip: 192.168.31.183
    targetRef:
      kind: Node
      name: k8s-master03
      uid: ba97e111-6372-45b0-972c-99445214e42c
  ports:
    - name: https-metrics
      port: 10259
      protocol: TCP
​
# kube-controller-manager
vim kube-controller-manager-svc-ep.yaml
​
apiVersion: v1
kind: Service
metadata:
  name: kube-controller-manager
  namespace: kube-system
  labels:
    k8s-app: kube-controller-manager
    app.kubernetes.io/name: kube-controller-manager
spec:
  type: ClusterIP
  clusterIP: None
  ports:
  - name: https-metrics
    port: 10257
    targetPort: 10257
    protocol: TCP
​
---
apiVersion: v1
kind: Endpoints
metadata:
  name: kube-controller-manager
  namespace: kube-system
  labels:
    k8s-app: kube-controller-manager
    app.kubernetes.io/name: kube-controller-manager
subsets:
- addresses:
  - ip: 192.168.31.181
    targetRef:
      kind: Node
      name: k8s-master01
      uid: 69c15b18-fd73-4de0-949b-a2a7f2e26984
  - ip: 192.168.31.182
    targetRef:
      kind: Node
      name: k8s-master02
      uid: de34705b-3c3f-4648-b00b-e90321b69fc9
  - ip: 192.168.31.183
    targetRef:
      kind: Node
      name: k8s-master03
      uid: ba97e111-6372-45b0-972c-99445214e42c
  ports:
    - name: https-metrics
      port: 10257
      protocol: TCP

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装
    • 1.1、创建CRD以及namespace
    • 1.2、修改持久化配置
    • 1.3、完成安装
    • 1.4、配置monitoring ingress
    • 1.5、处理现有警告
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档