apiVersion: extensions/v1beta1 kind: Deployment metadata: name: heapster namespace: kube-system labels: k8s-addon: monitoring-standalone.addons.k8s.io k8s-app: heapster kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile version: v1.7.0 spec: replicas: 1 selector: matchLabels: k8s-app: heapster version: v1.7.0 template: metadata: labels: k8s-app: heapster version: v1.7.0 annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: serviceAccountName: heapster containers: - image: k8s.gcr.io/heapster:v1.4.0 name: heapster livenessProbe: httpGet: path: /healthz port: 8082 scheme: HTTP initialDelaySeconds: 180 timeoutSeconds: 5 resources: # keep request = limit to keep this container in guaranteed class limits: cpu: 100m memory: 300Mi requests: cpu: 100m memory: 300Mi command: - /heapster - --source=kubernetes.summary_api:'' - image: k8s.gcr.io/addon-resizer:2.0 name: heapster-nanny resources: limits: cpu: 50m memory: 100Mi requests: cpu: 50m memory: 100Mi env: - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace command: - /pod_nanny - --cpu=80m - --extra-cpu=0.5m - --memory=140Mi - --extra-memory=4Mi - --deployment=heapster - --container=heapster - --poll-period=300000 tolerations: - key: "CriticalAddonsOnly" operator: "Exists" --- apiVersion: v1 kind: Service metadata: name: heapster namespace: kube-system labels: k8s-addon: monitoring-standalone.addons.k8s.io kubernetes.io/name: "Heapster" kubernetes.io/cluster-service: "true" spec: ports: - port: 80 targetPort: 8082 selector: k8s-app: heapster --- apiVersion: v1 kind: ServiceAccount metadata: name: heapster namespace: kube-system labels: k8s-addon: monitoring-standalone.addons.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: heapster labels: k8s-addon: monitoring-standalone.addons.k8s.io kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: system:heapster subjects: - kind: ServiceAccount name: heapster namespace: kube-system --- # Heapster's pod_nanny monitors the heapster deployment & its pod(s), and scales # the resources of the deployment if necessary. apiVersion: rbac.authorization.k8s.io/v1beta1 kind: Role metadata: name: system:pod-nanny namespace: kube-system labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile rules: - apiGroups: - "" resources: - pods verbs: - get - apiGroups: - "extensions" resources: - deployments verbs: - get - update --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: RoleBinding metadata: name: heapster-binding namespace: kube-system labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: system:pod-nanny subjects: - kind: ServiceAccount name: heapster namespace: kube-system