apiVersion: v1
kind: ServiceAccount
metadata:name: heapster
namespace: kube-system
---apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: heapster
namespace: kube-system
spec:replicas:1template:metadata:labels:task: monitoring
k8s-app: heapster
spec:serviceAccountName: heapster
containers:-name: heapster
image: gcr.io/google_containers/heapster-amd64:v1.5.3
imagePullPolicy: IfNotPresent
command:- /heapster
---source=kubernetes:https://kubernetes.default:443?useServiceAccount=true&kubeletHttps=true&kubeletPort=10250&insecure=true
---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:80targetPort:8082selector:k8s-app: heapster
influxdb.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: monitoring-influxdb
namespace: kube-system
spec:replicas:1template:metadata:labels:task: monitoring
k8s-app: influxdb
spec:containers:-name: influxdb
image: gcr.io/google_containers/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:8086targetPort:8086selector:k8s-app: influxdb
grafana.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: monitoring-grafana
namespace: kube-system
spec:replicas:1template:metadata:labels:task: monitoring
k8s-app: grafana
spec:containers:-name: grafana
image: gcr.io/google_containers/heapster-grafana-amd64:v4.4.3
ports:-containerPort:3000protocol: TCP
volumeMounts:-mountPath: /etc/ssl
name: ca-certificates
readOnly:true-mountPath: /etc/pki
name: ca-pki
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/proxyvalue: /
volumes:-name: ca-certificates
hostPath:path: /etc/ssl
-name: ca-pki
hostPath:path: /etc/pki
-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 porttype: NodePort
ports:-port:80targetPort:3000nodePort:30001selector:k8s-app: grafana