From a0b1a93799033e3c195fbbda46e3fbe1c4d524dd Mon Sep 17 00:00:00 2001 From: Frederic Branczyk <fbranczyk@gmail.com> Date: Tue, 18 Oct 2016 14:50:28 +0200 Subject: [PATCH] add node-exporter, kube-state-metrics, and alertmanager controller Also ensure that all workloads have memory requirements and limits. --- .../controllers/alertmanager-controller.yaml | 24 ++++++++++ .../controllers/prometheus-controller.yaml | 3 ++ .../exporters/kube-state-metrics-bundle.yaml | 45 ++++++++++++++++++ manifests/exporters/node-exporter-bundle.yaml | 47 +++++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 manifests/controllers/alertmanager-controller.yaml create mode 100644 manifests/exporters/kube-state-metrics-bundle.yaml create mode 100644 manifests/exporters/node-exporter-bundle.yaml diff --git a/manifests/controllers/alertmanager-controller.yaml b/manifests/controllers/alertmanager-controller.yaml new file mode 100644 index 00000000..a75cea91 --- /dev/null +++ b/manifests/controllers/alertmanager-controller.yaml @@ -0,0 +1,24 @@ +apiVersion: extensions/v1beta1 +kind: ReplicaSet +metadata: + name: alertmanager-controller + labels: + controller: alertmanager +spec: + replicas: 1 + template: + metadata: + labels: + controller: alertmanager + spec: + containers: + - name: alertmanager-controller + image: quay.io/coreos/kube-alertmanager-controller:latest + resources: + requests: + cpu: 100m + memory: 50Mi + limits: + cpu: 200m + memory: 100Mi + diff --git a/manifests/controllers/prometheus-controller.yaml b/manifests/controllers/prometheus-controller.yaml index 7c8e378e..f6893247 100644 --- a/manifests/controllers/prometheus-controller.yaml +++ b/manifests/controllers/prometheus-controller.yaml @@ -18,4 +18,7 @@ spec: requests: cpu: 100m memory: 50Mi + limits: + cpu: 200m + memory: 100Mi diff --git a/manifests/exporters/kube-state-metrics-bundle.yaml b/manifests/exporters/kube-state-metrics-bundle.yaml new file mode 100644 index 00000000..05a69b0b --- /dev/null +++ b/manifests/exporters/kube-state-metrics-bundle.yaml @@ -0,0 +1,45 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + prometheus.io/scrape: 'true' + labels: + app: kube-state-metrics + name: kube-state-metrics + name: kube-state-metrics +spec: + clusterIP: None + ports: + - name: scrape + port: 8080 + protocol: TCP + selector: + app: kube-state-metrics + type: ClusterIP +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: kube-state-metrics +spec: + replicas: 1 + template: + metadata: + labels: + app: kube-state-metrics + annotations: + prometheus.io/scrape: 'true' + spec: + containers: + - name: kube-state-metrics + image: gcr.io/google_containers/kube-state-metrics:v0.3.0 + ports: + - containerPort: 8080 + resources: + requests: + memory: 30Mi + cpu: 100m + limits: + memory: 50Mi + cpu: 200m + diff --git a/manifests/exporters/node-exporter-bundle.yaml b/manifests/exporters/node-exporter-bundle.yaml new file mode 100644 index 00000000..164c8471 --- /dev/null +++ b/manifests/exporters/node-exporter-bundle.yaml @@ -0,0 +1,47 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + prometheus.io/scrape: 'true' + labels: + app: node-exporter + name: node-exporter + name: node-exporter +spec: + clusterIP: None + ports: + - name: scrape + port: 9100 + protocol: TCP + selector: + app: node-exporter + type: ClusterIP +--- +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: node-exporter +spec: + template: + metadata: + labels: + app: node-exporter + name: node-exporter + spec: + hostNetwork: true + hostPID: true + containers: + - image: quay.io/prometheus/node-exporter:0.12.0 + name: node-exporter + ports: + - containerPort: 9100 + hostPort: 9100 + name: scrape + resources: + requests: + memory: 30Mi + cpu: 100m + limits: + memory: 50Mi + cpu: 200m + -- GitLab