From 9e501e8a82d50685770b3ea703b5e2043a725075 Mon Sep 17 00:00:00 2001 From: Henrik Schmidt Date: Tue, 24 Apr 2018 21:08:06 +0200 Subject: [PATCH] fix heapster issues (#953) --- .../dashboard/dashboard-controller.yaml | 1 + .../addons/heapster/heapster-controller.yaml | 82 ++++--------------- .../addons/heapster/heapster-rbac.yaml | 47 ++++------- .../addons/heapster/heapster-service.yaml | 14 ++-- config/kubermatic/static/master/versions.yaml | 24 +++--- 5 files changed, 49 insertions(+), 119 deletions(-) diff --git a/addon-manager/addons/dashboard/dashboard-controller.yaml b/addon-manager/addons/dashboard/dashboard-controller.yaml index 7068d72eb4d..dbe38110e04 100644 --- a/addon-manager/addons/dashboard/dashboard-controller.yaml +++ b/addon-manager/addons/dashboard/dashboard-controller.yaml @@ -42,6 +42,7 @@ spec: protocol: TCP args: - --auto-generate-certificates + - --heapster-host=http://heapster:80 volumeMounts: - name: kubernetes-dashboard-certs mountPath: /certs diff --git a/addon-manager/addons/heapster/heapster-controller.yaml b/addon-manager/addons/heapster/heapster-controller.yaml index 59e6dde1cc9..0cad4cc4ffe 100644 --- a/addon-manager/addons/heapster/heapster-controller.yaml +++ b/addon-manager/addons/heapster/heapster-controller.yaml @@ -7,19 +7,6 @@ metadata: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile --- -apiVersion: v1 -kind: ConfigMap -metadata: - name: heapster-config - namespace: kube-system - labels: - kubernetes.io/cluster-service: "true" - addonmanager.kubernetes.io/mode: EnsureExists -data: - NannyConfiguration: |- - apiVersion: nannyconfig/v1alpha1 - kind: NannyConfiguration ---- apiVersion: extensions/v1beta1 kind: Deployment metadata: @@ -29,69 +16,28 @@ metadata: k8s-app: heapster kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile - version: v1.5.0 spec: replicas: 1 selector: matchLabels: k8s-app: heapster - version: v1.5.0 template: metadata: labels: k8s-app: heapster - version: v1.5.0 - annotations: - scheduler.alpha.kubernetes.io/critical-pod: '' spec: + serviceAccount: heapster containers: - - image: gcr.io/google_containers/heapster-amd64:v1.5.0 - name: heapster - livenessProbe: - httpGet: - path: /healthz - port: 8082 - scheme: HTTP - initialDelaySeconds: 180 - timeoutSeconds: 5 - command: - - /heapster - - --source=kubernetes.summary_api:'' - - image: gcr.io/google_containers/addon-resizer:1.8.1 - name: heapster-nanny - resources: - limits: - cpu: 50m - memory: 256Mi - env: - - name: MY_POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: MY_POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - volumeMounts: - - name: heapster-config-volume - mountPath: /etc/config - command: - - /pod_nanny - - --config-dir=/etc/config - - --cpu=80m - - --extra-cpu=0.5m - - --memory=140Mi - - --extra-memory=4Mi - - --threshold=5 - - --deployment=heapster-v1.5.0 - - --container=heapster - - --poll-period=300000 - - --estimator=exponential - volumes: - - name: heapster-config-volume - configMap: - name: heapster-config - serviceAccountName: heapster - tolerations: - - key: "CriticalAddonsOnly" - operator: "Exists" + - image: gcr.io/google_containers/heapster-amd64:v1.5.2 + name: heapster + livenessProbe: + httpGet: + path: /healthz + port: 8082 + scheme: HTTP + initialDelaySeconds: 180 + timeoutSeconds: 5 + command: + - /heapster + - --source=kubernetes.summary_api:https://kubernetes.default.svc?kubeletHttps=true&kubeletPort=10250&insecure=true + - --metric-resolution=30s diff --git a/addon-manager/addons/heapster/heapster-rbac.yaml b/addon-manager/addons/heapster/heapster-rbac.yaml index e75c18b614d..834e0f643cb 100644 --- a/addon-manager/addons/heapster/heapster-rbac.yaml +++ b/addon-manager/addons/heapster/heapster-rbac.yaml @@ -1,58 +1,41 @@ apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: heapster-binding - labels: - 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/v1 -kind: Role +kind: ClusterRole metadata: - name: system:pod-nanny - namespace: kube-system - labels: - kubernetes.io/cluster-service: "true" - addonmanager.kubernetes.io/mode: Reconcile + name: heapster-patched rules: - apiGroups: - "" resources: + - events + - namespaces + - nodes + - nodes/stats - pods verbs: - get + - list + - watch - apiGroups: - - "extensions" + - extensions resources: - deployments verbs: - get - - update + - list + - watch --- apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding +kind: ClusterRoleBinding metadata: - name: heapster-binding - namespace: kube-system + name: heapster-patched labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile roleRef: apiGroup: rbac.authorization.k8s.io - kind: Role - name: system:pod-nanny + kind: ClusterRole + name: heapster-patched subjects: - kind: ServiceAccount name: heapster namespace: kube-system ---- diff --git a/addon-manager/addons/heapster/heapster-service.yaml b/addon-manager/addons/heapster/heapster-service.yaml index aab19cbb064..df8cbf597fd 100644 --- a/addon-manager/addons/heapster/heapster-service.yaml +++ b/addon-manager/addons/heapster/heapster-service.yaml @@ -1,15 +1,15 @@ kind: Service apiVersion: v1 -metadata: +metadata: name: heapster namespace: kube-system - labels: + labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile kubernetes.io/name: "Heapster" -spec: - ports: - - port: 80 - targetPort: 8082 - selector: +spec: + ports: + - port: 80 + targetPort: 8082 + selector: k8s-app: heapster diff --git a/config/kubermatic/static/master/versions.yaml b/config/kubermatic/static/master/versions.yaml index b6da982e599..028fee6b83e 100644 --- a/config/kubermatic/static/master/versions.yaml +++ b/config/kubermatic/static/master/versions.yaml @@ -18,7 +18,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -40,7 +40,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -62,7 +62,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -84,7 +84,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -106,7 +106,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -128,7 +128,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -150,7 +150,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -172,7 +172,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -194,7 +194,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -216,7 +216,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -238,7 +238,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest @@ -260,7 +260,7 @@ versions: etcd-operator-version: v0.6.0 etcd-cluster-version: 3.2.7 kube-machine-version: v0.2.3 - addon-manager-version: v1.9.4 + addon-manager-version: v1.9.5 pod-network-bridge: v0.4 machine-controller-version: v0.5.1 kube-state-metrics-version: latest