Merge pull request #25 from brancz/cleanup

*: cleanup and unify minikube and self-hosted discovery
This commit is contained in:
Fabian Reinartz
2016-12-24 10:18:29 +01:00
committed by GitHub
14 changed files with 143 additions and 43 deletions

View File

@@ -53,15 +53,10 @@ scrape_configs:
relabel_configs:
- action: keep
source_labels: [__meta_kubernetes_service_name]
regex: prometheus|kubernetes|node-exporter|kube-state-metrics|etcd-k8s
regex: prometheus|node-exporter|kube-state-metrics
- action: replace
source_labels: [__meta_kubernetes_service_name]
target_label: job
- action: replace
source_labels: [__meta_kubernetes_service_name]
regex: kubernetes
target_label: __scheme__
replacement: https
# Scrapes the endpoint lists for the kube-dns server. Which we consider
# part of a default setup.
@@ -75,13 +70,16 @@ scrape_configs:
relabel_configs:
- action: replace
source_labels: [__meta_kubernetes_service_name]
source_labels: [__meta_kubernetes_service_label_k8s_app]
target_label: job
regex: "kube-(.*)-prometheus-discovery"
replacement: "kube-${1}"
- action: keep
source_labels: [__meta_kubernetes_service_name]
regex: "kube-(.*)-prometheus-discovery"
regex: ".*-prometheus-discovery"
- action: keep
source_labels: [__meta_kubernetes_endpoint_port_name]
regex: "prometheus.*"
regex: "http-metrics.*|https-metrics.*"
- action: replace
source_labels: [__meta_kubernetes_endpoint_port_name]
regex: "https-metrics.*"
target_label: __scheme__
replacement: https

View File

@@ -4,19 +4,24 @@ if [ -z "${KUBECONFIG}" ]; then
KUBECONFIG=~/.kube/config
fi
kubectl --kubeconfig="$KUBECONFIG" create namespace monitoring
if [ -z "${NAMESPACE}" ]; then
NAMESPACE=monitoring
fi
kubectl --kubeconfig="$KUBECONFIG" create namespace "$NAMESPACE"
kctl() {
kubectl --kubeconfig="$KUBECONFIG" -n "monitoring" "$@"
kubectl --kubeconfig="$KUBECONFIG" -n "$NAMESPACE" "$@"
}
kctl apply -f manifests/prometheus-operator.yaml
kctl create -f manifests/prometheus-operator.yaml
# Wait for TPRs to be ready.
until kctl get servicemonitor; do sleep 1; done
until kctl get prometheus; do sleep 1; done
until kctl get alertmanager; do sleep 1; done
kctl apply -f manifests/exporters
kctl apply -f manifests/grafana
kctl apply -f manifests/prometheus
kctl apply -f manifests/alertmanager
kctl create -f manifests/exporters
kctl create -f manifests/grafana
kctl create -f manifests/prometheus
kctl create -f manifests/alertmanager

View File

@@ -4,8 +4,12 @@ if [ -z "${KUBECONFIG}" ]; then
KUBECONFIG=~/.kube/config
fi
if [ -z "${NAMESPACE}" ]; then
NAMESPACE=monitoring
fi
kctl() {
kubectl --kubeconfig="$KUBECONFIG" -n "monitoring" "$@"
kubectl --kubeconfig="$KUBECONFIG" -n "$NAMESPACE" "$@"
}
kctl delete -f manifests/exporters

View File

@@ -3,8 +3,7 @@ kind: Service
metadata:
name: etcd-k8s
labels:
app: etcd
etcd: k8s
k8s-app: etcd
spec:
type: ClusterIP
clusterIP: None
@@ -18,8 +17,7 @@ kind: Endpoints
metadata:
name: etcd-k8s
labels:
app: etcd
etcd: k8s
k8s-app: etcd
subsets:
- addresses:
- ip: 10.142.0.2

View File

@@ -3,8 +3,7 @@ kind: Service
metadata:
name: etcd-k8s
labels:
app: etcd
etcd: k8s
k8s-app: etcd
spec:
type: ClusterIP
clusterIP: None
@@ -18,8 +17,7 @@ kind: Endpoints
metadata:
name: etcd-k8s
labels:
app: etcd
etcd: k8s
k8s-app: etcd
subsets:
- addresses:
- ip: 172.17.4.51

View File

@@ -0,0 +1,27 @@
apiVersion: v1
kind: Service
metadata:
name: kube-apiserver-prometheus-discovery
labels:
k8s-app: kubernetes
spec:
type: ClusterIP
clusterIP: None
ports:
- name: https-metrics
port: 8443
protocol: TCP
---
apiVersion: v1
kind: Endpoints
metadata:
name: kube-apiserver-prometheus-discovery
labels:
k8s-app: kubernetes
subsets:
- addresses:
- ip: 192.168.99.100
ports:
- name: https-metrics
port: 8443
protocol: TCP

View File

@@ -0,0 +1,28 @@
apiVersion: v1
kind: Service
metadata:
name: kube-controller-manager-prometheus-discovery
labels:
k8s-app: kube-controller-manager
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 10252
targetPort: 10252
protocol: TCP
---
apiVersion: v1
kind: Endpoints
metadata:
name: kube-controller-manager-prometheus-discovery
labels:
k8s-app: kube-controller-manager
subsets:
- addresses:
- ip: 192.168.99.100
ports:
- name: http-metrics
port: 10252
protocol: TCP

View File

@@ -0,0 +1,28 @@
apiVersion: v1
kind: Service
metadata:
name: kube-scheduler-prometheus-discovery
labels:
k8s-app: kube-scheduler
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 10251
targetPort: 10251
protocol: TCP
---
apiVersion: v1
kind: Endpoints
metadata:
name: kube-scheduler-prometheus-discovery
labels:
k8s-app: kube-scheduler
subsets:
- addresses:
- ip: 192.168.99.100
ports:
- name: http-metrics
port: 10251
protocol: TCP

View File

@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: kube-apiserver-prometheus-discovery
labels:
k8s-app: kubernetes
spec:
selector:
k8s-app: kube-apiserver
type: ClusterIP
clusterIP: None
ports:
- name: https-metrics
port: 443
targetPort: 443
protocol: TCP

View File

@@ -10,7 +10,7 @@ spec:
type: ClusterIP
clusterIP: None
ports:
- name: prometheus
- name: http-metrics
port: 10252
targetPort: 10252
protocol: TCP

View File

@@ -10,11 +10,11 @@ spec:
type: ClusterIP
clusterIP: None
ports:
- name: prometheus-skydns
- name: http-metrics-skydns
port: 10055
targetPort: 10055
protocol: TCP
- name: prometheus-dnsmasq
- name: http-metrics-dnsmasq
port: 10054
targetPort: 10054
protocol: TCP

View File

@@ -10,7 +10,7 @@ spec:
type: ClusterIP
clusterIP: None
ports:
- name: prometheus
- name: http-metrics
port: 10251
targetPort: 10251
protocol: TCP

View File

@@ -13,7 +13,7 @@ spec:
spec:
containers:
- name: prometheus-operator
image: quay.io/coreos/prometheus-operator:v0.1.0
image: quay.io/coreos/prometheus-operator:v0.2.1
resources:
requests:
cpu: 100m

View File

@@ -56,15 +56,10 @@ data:
relabel_configs:
- action: keep
source_labels: [__meta_kubernetes_service_name]
regex: prometheus|kubernetes|node-exporter|kube-state-metrics|etcd-k8s
regex: prometheus|node-exporter|kube-state-metrics
- action: replace
source_labels: [__meta_kubernetes_service_name]
target_label: job
- action: replace
source_labels: [__meta_kubernetes_service_name]
regex: kubernetes
target_label: __scheme__
replacement: https
# Scrapes the endpoint lists for the kube-dns server. Which we consider
# part of a default setup.
@@ -78,16 +73,19 @@ data:
relabel_configs:
- action: replace
source_labels: [__meta_kubernetes_service_name]
source_labels: [__meta_kubernetes_service_label_k8s_app]
target_label: job
regex: "kube-(.*)-prometheus-discovery"
replacement: "kube-${1}"
- action: keep
source_labels: [__meta_kubernetes_service_name]
regex: "kube-(.*)-prometheus-discovery"
regex: ".*-prometheus-discovery"
- action: keep
source_labels: [__meta_kubernetes_endpoint_port_name]
regex: "prometheus.*"
regex: "http-metrics.*|https-metrics.*"
- action: replace
source_labels: [__meta_kubernetes_endpoint_port_name]
regex: "https-metrics.*"
target_label: __scheme__
replacement: https
kind: ConfigMap
metadata:
creationTimestamp: null