diff --git a/manifests/k8s/kube-controller-manager-bootkube-vagrant-multi.yaml b/manifests/k8s/kube-controller-manager-bootkube-vagrant-multi.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..316076f394802778c2dd3001fd93769b92717f0b
--- /dev/null
+++ b/manifests/k8s/kube-controller-manager-bootkube-vagrant-multi.yaml
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: kube-controller-manager-prometheus-discovery
+  labels:
+    k8s-app: kube-controller-manager
+  annotations:
+    prometheus.io/scrape: 'true'
+spec:
+  selector:
+    k8s-app: kube-controller-manager
+  type: ClusterIP
+  clusterIP: None
+  ports:
+  - name: prometheus
+    port: 10252
+    targetPort: 10252
+    protocol: TCP
diff --git a/manifests/k8s/kube-dns-prom-bootkube-vagrant-multi.yaml b/manifests/k8s/kube-dns-prom-bootkube-vagrant-multi.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ec949c99745b0624b3a2b09f9003076767fb5e97
--- /dev/null
+++ b/manifests/k8s/kube-dns-prom-bootkube-vagrant-multi.yaml
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: kube-dns-prometheus-discovery
+  labels:
+    k8s-app: kube-dns
+  annotations:
+    prometheus.io/scrape: 'true'
+spec:
+  selector:
+    k8s-app: kube-dns
+  type: ClusterIP
+  clusterIP: None
+  ports:
+  - name: prometheus
+    port: 8082
+    targetPort: 8082
+    protocol: TCP
diff --git a/manifests/k8s/kube-scheduler-bootkube-vagrant-multi.yaml b/manifests/k8s/kube-scheduler-bootkube-vagrant-multi.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..67360ec248b7e19a8d2908e928df329b3f011e4e
--- /dev/null
+++ b/manifests/k8s/kube-scheduler-bootkube-vagrant-multi.yaml
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: kube-scheduler-prometheus-discovery
+  labels:
+    k8s-app: kube-scheduler
+  annotations:
+    prometheus.io/scrape: 'true'
+spec:
+  selector:
+    k8s-app: kube-scheduler
+  type: ClusterIP
+  clusterIP: None
+  ports:
+  - name: prometheus
+    port: 10251
+    targetPort: 10251
+    protocol: TCP
diff --git a/manifests/prometheus/prometheus-k8s-cm.yaml b/manifests/prometheus/prometheus-k8s-cm.yaml
index 0a9fc30ed3b7cb70d9f5c5828a2cad2f959e5dff..73389f517a46e2596ae168bb7752874a2dac4268 100644
--- a/manifests/prometheus/prometheus-k8s-cm.yaml
+++ b/manifests/prometheus/prometheus-k8s-cm.yaml
@@ -50,3 +50,27 @@ data:
         regex: kubernetes
         target_label: __scheme__
         replacement: https
+
+    # Scrapes the endpoint lists for the kube-dns server. Which we consider
+    # part of a default setup.
+    - job_name: kube-components
+      scrape_interval: 20s
+      tls_config:
+        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+
+      kubernetes_sd_configs:
+      - role: endpoints
+
+      relabel_configs:
+      - action: replace
+        source_labels: [__meta_kubernetes_service_name]
+        target_label: job
+        regex: "kube-(.*)-prometheus-discovery"
+        replacement: "kube-${1}"
+      - action: keep
+        source_labels: [__meta_kubernetes_service_name]
+        regex: "kube-(.*)-prometheus-discovery"
+      - action: keep
+        source_labels: [__meta_kubernetes_endpoint_port_name]
+        regex: "prometheus"