美文网首页自动化运维
k8s 监控 influxdb+grafana+heapster

k8s 监控 influxdb+grafana+heapster

作者: 秋幻旎苏 | 来源:发表于2017-04-06 18:12 被阅读0次

    官方文档:https://github.com/kubernetes/heapster/tree/v1.3.0/deploy/kube-config/influxdb

    启动顺序:influxdb、grafana、heapster

    一. influxdb

    influxdb-deployment.yaml

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: monitoring-influxdb
      namespace: kube-system
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            task: monitoring
            k8s-app: influxdb
        spec:
          containers:
          - name: influxdb
            image: gcr.io/google_containers/heapster-influxdb-amd64:v1.1.1
            volumeMounts:
            - mountPath: /data
              name: influxdb-storage
          volumes:
          - name: influxdb-storage
            emptyDir: {}
    
    

    influxdb-svc.yaml

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        task: monitoring
        # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
        # If you are NOT using this as an addon, you should comment out this line.
        kubernetes.io/cluster-service: 'true'
        kubernetes.io/name: monitoring-influxdb
      name: monitoring-influxdb
      namespace: kube-system
    spec:
      ports:
      - port: 8086
        targetPort: 8086
      selector:
        k8s-app: influxdb
    

    二.grafana

    grafana-deployment.yaml

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: monitoring-grafana
      namespace: kube-system
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            task: monitoring
            k8s-app: grafana
        spec:
          containers:
          - name: grafana
            image: gcr.io/google_containers/heapster-grafana-amd64:v4.0.2
            ports:
              - containerPort: 3000
                protocol: TCP
            volumeMounts:
            - mountPath: /var
              name: grafana-storage
            env:
            - name: INFLUXDB_HOST
              value: monitoring-influxdb
            - name: GRAFANA_PORT
              value: "3000"
              # The following env variables are required to make Grafana accessible via
              # the kubernetes api-server proxy. On production clusters, we recommend
              # removing these env variables, setup auth for grafana, and expose the grafana
              # service using a LoadBalancer or a public IP.
            - name: GF_AUTH_BASIC_ENABLED
              value: "false"
            - name: GF_AUTH_ANONYMOUS_ENABLED
              value: "true"
            - name: GF_AUTH_ANONYMOUS_ORG_ROLE
              value: Admin
            - name: GF_SERVER_ROOT_URL
              # If you're only using the API Server proxy, set this value instead:
              # value: /api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/
              value: /
          volumes:
          - name: grafana-storage
            emptyDir: {}
    

    grafana-svc.yaml

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
        # If you are NOT using this as an addon, you should comment out this line.
        kubernetes.io/cluster-service: 'true'
        kubernetes.io/name: monitoring-grafana
      name: monitoring-grafana
      namespace: kube-system
    spec:
      # In a production setup, we recommend accessing Grafana through an external Loadbalancer
      # or through a public IP.
      # type: LoadBalancer
      # You could also use NodePort to expose the service at a randomly-generated port
      # type: NodePort
      type: NodePort
      ports:
      - port: 80
        targetPort: 3000
        nodePort: 31000
      selector:
        k8s-app: grafana
    

    三.heapster

    heapster默认是通过443访问api,需要配置证书,本集群没有采用证书,所以在heapster-deployment.yaml文件要指定访问apiserver的方式
    heapster-deployment.yaml

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: heapster
      namespace: kube-system
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            task: monitoring
            k8s-app: heapster
        spec:
          containers:
          - name: heapster
            image: gcr.io/google_containers/heapster-amd64:v1.3.0-beta.1
            imagePullPolicy: IfNotPresent
            command:
            - /heapster
            - --source=kubernetes:http://192.168.40.50:8080?inClusterConfig=false&kubeletHttps=true&kubeletPort=10250&useServiceAccount=true&auth=
            - --sink=influxdb:http://monitoring-influxdb:8086
    
    

    heapster-service.yaml

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        task: monitoring
        # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
        # If you are NOT using this as an addon, you should comment out this line.
        kubernetes.io/cluster-service: 'true'
        kubernetes.io/name: Heapster
      name: heapster
      namespace: kube-system
    spec:
      ports:
      - port: 80
        targetPort: 8082
      selector:
        k8s-app: heapster
    

    四.grafana查看

    1.访问grafana界面

    http://nodeip:端口

    界面

    2. 登陆

    用户admin
    密码admin


    登陆.png

    3. 监控

    选择资源 监控信息

    4.添加数据库

    图片.png 图片.png 图片.png

    相关文章

      网友评论

        本文标题:k8s 监控 influxdb+grafana+heapster

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