美文网首页
kube-prometheus 部署指南

kube-prometheus 部署指南

作者: 微苦的茶 | 来源:发表于2019-12-11 17:20 被阅读0次

    kube-prometheus 部署指南

    1、介绍:

    2、版本:

    Kubernetes 版本:1.16.2

    Docker 版本:18.09.9

    Kube-prometheus 版本:0.2.0

    3、下载 kube-prometheus 镜像部署文件

    前往 github 上下载 0.2.0 版本的压缩包

    4、进入源码的 manifests 文件夹

    cd kube-prometheus/manifests/

    5、修改源码文件,将 service 以 NodePort 的方式提供服务

    vim prometheus-service.yaml

    apiVersion: v1

    kind: Service

    metadata:

      labels:

        prometheus: k8s

      name: prometheus-k8s

      namespace: monitoring

    spec:

      type: NodePort

      ports:

      - name: http

        port: 9090

        targetPort: web

        nodePort: 9090

      selector:

        app: prometheus

        prometheus: k8s

      sessionAffinity: ClientIP

    vim alertmanager-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: 3000

      selector:

        app: grafana

    vim prometheus-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: 9093

      selector:

        alertmanager: main

        app: alertmanager

      sessionAffinity: ClientIP

    6、修改配置文件设置 prometheus 历史数据保存 15 天,并且使用 ceph 设置数据持久化

    vim 00StorageClass.yaml

    kind: StorageClass

    apiVersion: storage.k8s.io/v1

    metadata:

      name: cephfs

    provisioner: ceph.com/cephfs

    parameters:

        monitors: 192.168.10.101:6789,192.168.10.102:6789,192.168.10.103:6789

        adminId: admin

        adminSecretName: ceph-admin-secret

        adminSecretNamespace: "kube-system"

        claimRoot: /volumes/kubernetes

    修改prometheus部署文件

    vim prometheus-prometheus.yaml

    apiVersion: monitoring.coreos.com/v1

    kind: Prometheus

    metadata:

      labels:

        prometheus: k8s

      name: k8s

      namespace: monitoring

    spec:

      alerting:

        alertmanagers:

        - name: alertmanager-main

          namespace: monitoring

          port: web

      baseImage: quay.io/prometheus/prometheus

      nodeSelector:

        kubernetes.io/os: linux

      podMonitorSelector: {}

      replicas: 2

      retention: 15d #设置历史数据保存15天

      resources:

        requests:

          memory: 400Mi

      ruleSelector:

        matchLabels:

          prometheus: k8s

          role: alert-rules

      securityContext:

        fsGroup: 0 #一定修改不然会有权限错误

        runAsNonRoot: false#一定修改不然会有权限错误

        runAsUser: 0#一定修改不然会有权限错误

      serviceAccountName: prometheus-k8s

      serviceMonitorNamespaceSelector: {}

      serviceMonitorSelector: {}

      version: v2.11.0

      storage:

        volumeClaimTemplate:

          spec:

            storageClassName: cephfs

            resources:

              requests:

                storage: 20Gi

    7、设置 grafana 持久化

    先创建pvc文件

    vim 00grafana-pvc.yaml

    kind: PersistentVolumeClaim

    apiVersion: v1

    metadata:

      name: grafana

    namespace: monitoring  #指定monitoring

    spec:

    storageClassName: cephfs #指定StorageClass

      accessModes:

        - ReadWriteOnce

      resources:

        requests:

          storage: 10Gi

    8、监控 kube-controller-manager 和 kube-scheduler 这两个系统组件

    创建两个 service 对应上述系统组件

    vim 00kube-scheduler-service.yaml

    apiVersion: v1

    kind: Service

    metadata:

      namespace: kube-system

      name: kube-scheduler

      labels:

        k8s-app: kube-scheduler

    spec:

      selector:

        component: kube-scheduler

      ports:

      - name: http-metrics

        port: 10251

        targetPort: 10251

        protocol: TCP

    vim 00kube-controller-manager-service.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

      ports:

      - name: http-metrics

        port: 10252

        targetPort: 10252

        protocol: TCP

    修改grafana部署文件

    - name: grafana-storage

            persistentVolumeClaim:

              claimName: grafana

    9、现在就可以 apply 文件了

    kubectl apply

    -

    f .

    相关文章

      网友评论

          本文标题:kube-prometheus 部署指南

          本文链接:https://www.haomeiwen.com/subject/fqhagctx.html