From d8f6b6f81b9bbc8d9284af45a1d0f7d93dbf7ce1 Mon Sep 17 00:00:00 2001 From: Frederic Branczyk <fbranczyk@gmail.com> Date: Fri, 18 May 2018 11:52:27 +0200 Subject: [PATCH] kube-prometheus: Update kops docs --- README.md | 8 ++++++ docs/KOPSonAWS.md | 20 --------------- examples/jsonnet-snippets/kops.jsonnet | 2 ++ ...kube-prometheus-insecure-kubelet.libsonnet | 25 +++++++++++++++++++ .../kube-prometheus-kops.libsonnet | 23 +++++++++++++++++ 5 files changed, 58 insertions(+), 20 deletions(-) delete mode 100644 docs/KOPSonAWS.md create mode 100644 examples/jsonnet-snippets/kops.jsonnet create mode 100644 jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet create mode 100644 jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet diff --git a/README.md b/README.md index e5e1ddbc..d67ea680 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,14 @@ bootkube: (import "kube-prometheus/kube-prometheus-bootkube.libsonnet") ``` +kops: + +[embedmd]:# (examples/jsonnet-snippets/kops.jsonnet) +```jsonnet +(import 'kube-prometheus/kube-prometheus.libsonnet') + +(import 'kube-prometheus/kube-prometheus-kops.libsonnet') +``` + Another mixin that may be useful for exploring the stack is to expose the UIs of Prometheus, Alertmanager and Grafana on NodePorts: [embedmd]:# (examples/jsonnet-snippets/node-ports.jsonnet) diff --git a/docs/KOPSonAWS.md b/docs/KOPSonAWS.md deleted file mode 100644 index 26080a9f..00000000 --- a/docs/KOPSonAWS.md +++ /dev/null @@ -1,20 +0,0 @@ -# Adding kube-prometheus to [KOPS](https://github.com/kubernetes/kops) on AWS 1.5.x - - -## Prerequisites - -A running Kubernetes cluster created with [KOPS](https://github.com/kubernetes/kops). - -These instructions have currently been tested with **topology=public** on AWS with KOPS 1.7.1 and Kubernetes 1.7.x - -Following the instructions in the [README](https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/README.md): - -Example: - -```bash -git clone -b master https://github.com/coreos/prometheus-operator.git prometheus-operator-temp; -cd prometheus-operator-temp/contrib/kube-prometheus -./hack/cluster-monitoring/self-hosted-deploy -cd - -rm -rf prometheus-operator-temp -``` diff --git a/examples/jsonnet-snippets/kops.jsonnet b/examples/jsonnet-snippets/kops.jsonnet new file mode 100644 index 00000000..4ff9ceae --- /dev/null +++ b/examples/jsonnet-snippets/kops.jsonnet @@ -0,0 +1,2 @@ +(import 'kube-prometheus/kube-prometheus.libsonnet') + +(import 'kube-prometheus/kube-prometheus-kops.libsonnet') diff --git a/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet new file mode 100644 index 00000000..1bd64e1b --- /dev/null +++ b/jsonnet/kube-prometheus/kube-prometheus-insecure-kubelet.libsonnet @@ -0,0 +1,25 @@ +{ + prometheus+:: { + serviceMonitorKubelet+: + { + spec+: { + endpoints: [ + { + port: 'http-metrics', + scheme: 'http', + interval: '30s', + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + }, + { + port: 'http-metrics', + scheme: 'http', + path: '/metrics/cadvisor', + interval: '30s', + honorLabels: true, + bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token', + }, + ], + }, + }, + }, +} diff --git a/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet b/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet new file mode 100644 index 00000000..a9cf3bb3 --- /dev/null +++ b/jsonnet/kube-prometheus/kube-prometheus-kops.libsonnet @@ -0,0 +1,23 @@ +local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; +local service = k.core.v1.service; +local servicePort = k.core.v1.service.mixin.spec.portsType; + +{ + prometheus+:: { + kubeControllerManagerPrometheusDiscoveryService: + service.new('kube-controller-manager-prometheus-discovery', { 'k8s-app': 'kube-controller-manager' }, servicePort.newNamed('http-metrics', 10252, 10252)) + + service.mixin.metadata.withNamespace('kube-system') + + service.mixin.metadata.withLabels({ 'k8s-app': 'kube-controller-manager' }) + + service.mixin.spec.withClusterIp('None'), + kubeSchedulerPrometheusDiscoveryService: + service.new('kube-scheduler-prometheus-discovery', { 'k8s-app': 'kube-scheduler' }, servicePort.newNamed('http-metrics', 10251, 10251)) + + service.mixin.metadata.withNamespace('kube-system') + + service.mixin.metadata.withLabels({ 'k8s-app': 'kube-scheduler' }) + + service.mixin.spec.withClusterIp('None'), + kubeDnsPrometheusDiscoveryService: + service.new('kube-dns-prometheus-discovery', { 'k8s-app': 'kube-dns' }, [servicePort.newNamed('http-metrics-skydns', 10055, 10055), servicePort.newNamed('http-metrics-dnsmasq', 10054, 10054)]) + + service.mixin.metadata.withNamespace('kube-system') + + service.mixin.metadata.withLabels({ 'k8s-app': 'kube-dns' }) + + service.mixin.spec.withClusterIp('None'), + }, +} -- GitLab