diff --git a/kubernetes-templates/heapster/0/README.md b/kubernetes-templates/heapster/0/README.md new file mode 100644 index 0000000..9bf521e --- /dev/null +++ b/kubernetes-templates/heapster/0/README.md @@ -0,0 +1,5 @@ +# Heapster Grafana InfluxDB + +Heapster enables Container Cluster Monitoring and Performance Analysis. Heapster collects and interprets various signals like compute resource usage, lifecycle events, etc, and exports cluster metrics via REST endpoints. + +This Tempalte runs Heapster with Grafana and InfluxDB in kube-system namespace, it should be running on Kubernetes v1.3.4-rancher1 or higher. diff --git a/kubernetes-templates/heapster/0/grafana-service.yml b/kubernetes-templates/heapster/0/grafana-service.yml new file mode 100644 index 0000000..3ca1a86 --- /dev/null +++ b/kubernetes-templates/heapster/0/grafana-service.yml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + namespace: kube-system + labels: null + name: monitoring-grafana +spec: + type: NodePort + ports: + - port: 80 + nodePort: ${GRAFANA_PORT} + targetPort: 3000 + selector: + name: influxGrafana diff --git a/kubernetes-templates/heapster/0/heapster-rc.yml b/kubernetes-templates/heapster/0/heapster-rc.yml new file mode 100644 index 0000000..79f2094 --- /dev/null +++ b/kubernetes-templates/heapster/0/heapster-rc.yml @@ -0,0 +1,29 @@ +--- +apiVersion: v1 +kind: ReplicationController +metadata: + namespace: kube-system + labels: + k8s-app: heapster + name: heapster + version: v6 + name: heapster +spec: + replicas: 1 + selector: + k8s-app: heapster + version: v6 + template: + metadata: + labels: + k8s-app: heapster + version: v6 + spec: + containers: + - name: heapster + image: kubernetes/heapster:canary + imagePullPolicy: Always + command: + - /heapster + - --source=kubernetes:https://Kubernetes.kubernetes:6443?inClusterConfig=true&insecure=true + - --sink=influxdb:http://monitoring-influxdb:8086 diff --git a/kubernetes-templates/heapster/0/heapster-service.yml b/kubernetes-templates/heapster/0/heapster-service.yml new file mode 100644 index 0000000..5c21316 --- /dev/null +++ b/kubernetes-templates/heapster/0/heapster-service.yml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: Service +metadata: + namespace: kube-system + labels: null + name: heapster +spec: + ports: + - port: 80 + targetPort: 8082 + selector: + k8s-app: heapster diff --git a/kubernetes-templates/heapster/0/influx-grafana-rc.yml b/kubernetes-templates/heapster/0/influx-grafana-rc.yml new file mode 100644 index 0000000..839bf3d --- /dev/null +++ b/kubernetes-templates/heapster/0/influx-grafana-rc.yml @@ -0,0 +1,48 @@ +--- +apiVersion: v1 +kind: ReplicationController +metadata: + namespace: kube-system + labels: + name: influxGrafana + name: influxdb-grafana +spec: + replicas: 1 + selector: + name: influxGrafana + template: + metadata: + labels: + name: influxGrafana + spec: + containers: + - name: influxdb + image: kubernetes/heapster_influxdb:v0.5 + volumeMounts: + - mountPath: /data + name: influxdb-storage + - name: grafana + image: gcr.io/google_containers/heapster_grafana:v2.6.0-2 + env: + - name: INFLUXDB_SERVICE_URL + value: http://monitoring-influxdb:8086 + # 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 + value: / + volumeMounts: + - mountPath: /var + name: grafana-storage + volumes: + - name: influxdb-storage + emptyDir: {} + - name: grafana-storage + emptyDir: {} diff --git a/kubernetes-templates/heapster/0/influxdb-service.yml b/kubernetes-templates/heapster/0/influxdb-service.yml new file mode 100644 index 0000000..ef19284 --- /dev/null +++ b/kubernetes-templates/heapster/0/influxdb-service.yml @@ -0,0 +1,19 @@ +--- +apiVersion: v1 +kind: Service +metadata: + namespace: kube-system + labels: null + name: monitoring-influxdb +spec: + type: NodePort + ports: + - name: http + nodePort: ${INFLUXDB_PORT} + port: 8083 + targetPort: 8083 + - name: api + port: 8086 + targetPort: 8086 + selector: + name: influxGrafana diff --git a/kubernetes-templates/heapster/0/rancher-compose.yml b/kubernetes-templates/heapster/0/rancher-compose.yml new file mode 100644 index 0000000..48e770b --- /dev/null +++ b/kubernetes-templates/heapster/0/rancher-compose.yml @@ -0,0 +1,15 @@ +.catalog: + name: Heapster Grafana InfluxDB + version: canary-rancher1 + description: A cluster-wide aggregator of monitoring and event data. + questions: + - variable: "GRAFANA_PORT" + label: "Node port for Grafana" + required: true + default: 30804 + type: "int" + - variable: "INFLUXDB_PORT" + label: "Node port for Influxdb" + required: true + default: 30805 + type: "int" diff --git a/kubernetes-templates/heapster/catalogIcon-heapster.svg b/kubernetes-templates/heapster/catalogIcon-heapster.svg new file mode 100644 index 0000000..8616d36 --- /dev/null +++ b/kubernetes-templates/heapster/catalogIcon-heapster.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + diff --git a/kubernetes-templates/heapster/config.yml b/kubernetes-templates/heapster/config.yml new file mode 100644 index 0000000..09f441c --- /dev/null +++ b/kubernetes-templates/heapster/config.yml @@ -0,0 +1,4 @@ +name: Heapster Grafana InfluxDB +description: A cluster-wide aggregator of monitoring and event data. +version: canary-rancher1 +category: Monitoring