zoukankan      html  css  js  c++  java
  • K8S 1.8 安装heapster

    现有k8s 1.8集群无法使用top命令,定位异常资源服务困难,需要安装metrics-server,经测试由于版本过老,集群本身kubelet未开启聚合功能,无法部署metrics-server,故部署弃用组件heapster,部署文件如下:

    • 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:
            serviceAccountName: heapster
            # 生产只有master可以访问kubelet服务,故将heapster调度到master运行
            # 忽略masster污点
            nodeSelector:
              "node-role.kubernetes.io/master": "true"
            tolerations:
            - key: node-role.kubernetes.io/master
              operator: Exists
              effect: NoSchedule
            containers:
            - name: heapster
              image: k8s.gcr.io/heapster-amd64:v1.4.3
              imagePullPolicy: IfNotPresent
              command:
              - /heapster
              # kubelet未开启https 10255端口,手动添加采集源
              - --source=kubernetes.summary_api:https://kubernetes.default.svc?kubeletHttps=true&kubeletPort=10250&insecure=true
              # 指定influxdb
              - --sink=influxdb:http://monitoring-influxdb-heapster:8086
      
    • heapster-rbac.yaml

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: heapster
        namespace: kube-system
      
      ---
      
      kind: ClusterRoleBinding
      apiVersion: rbac.authorization.k8s.io/v1beta1
      metadata:
        name: heapster
      subjects:
        - kind: ServiceAccount
          name: heapster
          namespace: kube-system
      roleRef:
        kind: ClusterRole
        name: cluster-admin
        apiGroup: rbac.authorization.k8s.io
      
    • 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
      
    • influxdb-cm.yaml

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: influxdb-config-heapster
        namespace: kube-system
      data:
        config.toml: |
          reporting-disabled = true
          bind-address = ":8088"
          [meta]
            dir = "/data/meta"
            retention-autocreate = true
            logging-enabled = true
          [data]
            dir = "/data/data"
            wal-dir = "/data/wal"
            query-log-enabled = true
            cache-max-memory-size = 1073741824
            cache-snapshot-memory-size = 26214400
            cache-snapshot-write-cold-duration = "10m0s"
            compact-full-write-cold-duration = "4h0m0s"
            max-series-per-database = 1000000
            max-values-per-tag = 100000
            trace-logging-enabled = false
          [coordinator]
            write-timeout = "10s"
            max-concurrent-queries = 0
            query-timeout = "0s"
            log-queries-after = "0s"
            max-select-point = 0
            max-select-series = 0
            max-select-buckets = 0
          [retention]
            enabled = true
            check-interval = "30m0s"
          [admin]
            enabled = true
            bind-address = ":8083"
            https-enabled = false
            https-certificate = "/etc/ssl/influxdb.pem"
          [shard-precreation]
            enabled = true
            check-interval = "10m0s"
            advance-period = "30m0s"
          [monitor]
            store-enabled = true
            store-database = "_internal"
            store-interval = "10s"
          [subscriber]
            enabled = true
            http-timeout = "30s"
            insecure-skip-verify = false
            ca-certs = ""
            write-concurrency = 40
            write-buffer-size = 1000
          [http]
            enabled = true
            bind-address = ":8086"
            auth-enabled = false
            log-enabled = true
            write-tracing = false
            pprof-enabled = false
            https-enabled = false
            https-certificate = "/etc/ssl/influxdb.pem"
            https-private-key = ""
            max-row-limit = 10000
            max-connection-limit = 0
            shared-secret = ""
            realm = "InfluxDB"
            unix-socket-enabled = false
            bind-socket = "/var/run/influxdb.sock"
          [[graphite]]
            enabled = false
            bind-address = ":2003"
            database = "graphite"
            retention-policy = ""
            protocol = "tcp"
            batch-size = 5000
            batch-pending = 10
            batch-timeout = "1s"
            consistency-level = "one"
            separator = "."
            udp-read-buffer = 0
          [[collectd]]
            enabled = false
            bind-address = ":25826"
            database = "collectd"
            retention-policy = ""
            batch-size = 5000
            batch-pending = 10
            batch-timeout = "10s"
            read-buffer = 0
            typesdb = "/usr/share/collectd/types.db"
          [[opentsdb]]
            enabled = false
            bind-address = ":4242"
            database = "opentsdb"
            retention-policy = ""
            consistency-level = "one"
            tls-enabled = false
            certificate = "/etc/ssl/influxdb.pem"
            batch-size = 1000
            batch-pending = 5
            batch-timeout = "1s"
            log-point-errors = true
          [[udp]]
            enabled = false
            bind-address = ":8089"
            database = "udp"
            retention-policy = ""
            batch-size = 5000
            batch-pending = 10
            read-buffer = 0
            batch-timeout = "1s"
            precision = ""
          [continuous_queries]
            log-enabled = true
            enabled = true
            run-interval = "1s"
      
    • influxdb-deployment.yaml

      apiVersion: extensions/v1beta1
      kind: Deployment
      metadata:
        name: monitoring-influxdb-heapster
        namespace: kube-system
      spec:
        replicas: 1
        template:
          metadata:
            labels:
              task: monitoring
              k8s-app: influxdb
          spec:
            containers:
            - name: influxdb
              image: if-harbor.in.za/devops/heapster-influxdb-amd64:v1.1.1
              volumeMounts:
              - mountPath: /data
                name: influxdb-storage
              - mountPath: /etc/
                name: influxdb-config
            volumes:
            - name: influxdb-storage
              emptyDir: {}
            - name: influxdb-config
              configMap:
                name: influxdb-config-heapster
      
      
    • influxdb-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: monitoring-influxdb-heapster
        name: monitoring-influxdb-heapster
        namespace: kube-system
      spec:
        type: NodePort
        ports:
        - port: 8086
          targetPort: 8086
          name: http
        - port: 8083
          targetPort: 8083
          name: admin
        selector:
          k8s-app: influxdb
      
  • 相关阅读:
    输出由“*”组成的菱形
    一个简单的计算器(c++)
    输入学号,显示对应的姓名(c++)
    使用 Puppet 在 Windows Azure 中配备 Linux 和 Windows 环境
    微软开放技术发布针对 Mac 和 Linux 的更新版 Azure Node.JS SDK 和命令行工具
    微软开放技术开发了适用于 Windows Azure 移动服务的开源 Android SDK
    微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库
    VM Depot 登陆中国!
    VM Depot 喜迎中国本土开源镜像!
    VM Depot 助您使用本地开源软件架设开发 Web 站点
  • 原文地址:https://www.cnblogs.com/drfung/p/15666865.html
Copyright © 2011-2022 走看看