Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save TejasBob/a8b10cd14357f94c9f680f33f2cf1b4f to your computer and use it in GitHub Desktop.
Save TejasBob/a8b10cd14357f94c9f680f33f2cf1b4f to your computer and use it in GitHub Desktop.

Revisions

  1. @chukaofili chukaofili revised this gist May 20, 2018. 1 changed file with 13 additions and 0 deletions.
    13 changes: 13 additions & 0 deletions heapster-influxdb-grafana.yaml
    Original file line number Diff line number Diff line change
    @@ -45,6 +45,19 @@ metadata:
    name: heapster
    namespace: kube-system
    ---
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1beta1
    metadata:
    name: heapster
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: system:heapster
    subjects:
    - kind: ServiceAccount
    name: heapster
    namespace: kube-system
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
  2. @chukaofili chukaofili created this gist May 20, 2018.
    160 changes: 160 additions & 0 deletions heapster-influxdb-grafana.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,160 @@
    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: k8s.gcr.io/heapster-influxdb-amd64:v1.3.3
    volumeMounts:
    - mountPath: /data
    name: influxdb-storage
    volumes:
    - name: influxdb-storage
    emptyDir: {}
    ---
    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
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: heapster
    namespace: kube-system
    ---
    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
    containers:
    - name: heapster
    image: k8s.gcr.io/heapster-amd64:v1.4.2
    imagePullPolicy: IfNotPresent
    command:
    - /heapster
    - --source=kubernetes:https://kubernetes.default
    - --sink=influxdb:http://monitoring-influxdb.kube-system.svc:8086
    ---
    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
    ---
    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: k8s.gcr.io/heapster-grafana-amd64:v4.4.3
    ports:
    - containerPort: 3000
    protocol: TCP
    volumeMounts:
    - mountPath: /etc/ssl/certs
    name: ca-certificates
    readOnly: true
    - mountPath: /var
    name: grafana-storage
    env:
    - name: INFLUXDB_HOST
    value: monitoring-influxdb
    - name: GF_SERVER_HTTP_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/namespaces/kube-system/services/monitoring-grafana/proxy
    value: /
    volumes:
    - name: ca-certificates
    hostPath:
    path: /etc/ssl/certs
    - name: grafana-storage
    emptyDir: {}
    ---
    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
    ports:
    - port: 80
    targetPort: 3000
    selector:
    k8s-app: grafana