diff --git a/hack/cluster-monitoring/deploy b/hack/cluster-monitoring/deploy index 3c3a5dcdb9e50a4bcb085e3734e698a7301b0be0..2d0d50ad326fd25bebabd3d39a9878974c29ee62 100755 --- a/hack/cluster-monitoring/deploy +++ b/hack/cluster-monitoring/deploy @@ -26,20 +26,6 @@ echo "done!" kctl apply -f manifests/exporters kctl apply -f manifests/grafana/grafana-credentials.yaml kctl apply -f manifests/grafana - -kctl apply -f manifests/prometheus/prometheus-k8s-rules.yaml -kctl apply -f manifests/prometheus/prometheus-k8s-service.yaml -kctl apply -f manifests/prometheus/prometheus-cluster-role-binding.yaml -kctl apply -f manifests/prometheus/prometheus-cluster-role.yaml -kctl apply -f manifests/prometheus/prometheus-k8s-service-account.yaml - -kctl apply -f manifests/alertmanager/alertmanager-config.yaml -kctl apply -f manifests/alertmanager/alertmanager-service.yaml - -# `kubectl apply` is currently not working for third party resources so we are -# using `kubectl create` here for the time being. -# (https://github.com/kubernetes/kubernetes/issues/29542) -kctl create -f manifests/prometheus/prometheus-k8s-servicemonitors.yaml -kctl create -f manifests/prometheus/prometheus-k8s.yaml -kctl create -f manifests/alertmanager/alertmanager.yaml +kctl apply -f manifests/prometheus/ +kctl apply -f manifests/alertmanager/ diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-alertmanager.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-alertmanager.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d193b6769caaa587672e91eacbae7c40d6eef47d --- /dev/null +++ b/manifests/prometheus/prometheus-k8s-service-monitor-alertmanager.yaml @@ -0,0 +1,12 @@ +apiVersion: monitoring.coreos.com/v1alpha1 +kind: ServiceMonitor +metadata: + labels: + alertmanager: main + name: alertmanager +spec: + endpoints: + - port: web + selector: + matchExpressions: + - {key: alertmanager, operator: In, values: [main]} diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-apiserver.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-apiserver.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1fd793e511f658c52c5b6da5a772f9f0b08fb39c --- /dev/null +++ b/manifests/prometheus/prometheus-k8s-service-monitor-apiserver.yaml @@ -0,0 +1,23 @@ +apiVersion: monitoring.coreos.com/v1alpha1 +kind: ServiceMonitor +metadata: + name: kube-apiserver + labels: + k8s-apps: https +spec: + jobLabel: provider + selector: + matchLabels: + component: apiserver + provider: kubernetes + namespaceSelector: + matchNames: + - default + endpoints: + - port: https + interval: 15s + scheme: https + tlsConfig: + caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + serverName: kubernetes + bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-k8s-apps-http.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-k8s-apps-http.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fbfcda97b31b4be1e15eb1e6e789337adee38da0 --- /dev/null +++ b/manifests/prometheus/prometheus-k8s-service-monitor-k8s-apps-http.yaml @@ -0,0 +1,23 @@ +apiVersion: monitoring.coreos.com/v1alpha1 +kind: ServiceMonitor +metadata: + name: k8s-apps-http + namespace: monitoring + labels: + k8s-apps: http +spec: + jobLabel: k8s-app + selector: + matchExpressions: + - {key: k8s-app, operator: Exists} + - {key: k8s-app, operator: NotIn, values: [kubelet]} + namespaceSelector: + matchNames: + - kube-system + endpoints: + - port: http-metrics + interval: 15s + - port: http-metrics-dnsmasq + interval: 15s + - port: http-metrics-skydns + interval: 15s diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-kube-state-metrics.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-kube-state-metrics.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c4ed1afced6c8852d76167dbc6334b7533582d7e --- /dev/null +++ b/manifests/prometheus/prometheus-k8s-service-monitor-kube-state-metrics.yaml @@ -0,0 +1,19 @@ +apiVersion: monitoring.coreos.com/v1alpha1 +kind: ServiceMonitor +metadata: + name: kube-state-metrics + namespace: monitoring + labels: + k8s-apps: http +spec: + jobLabel: k8s-app + selector: + matchLabels: + k8s-app: kube-state-metrics + namespaceSelector: + matchNames: + - monitoring + endpoints: + - port: http-metrics + interval: 15s + honorLabels: true diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-kubelet.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-kubelet.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4e9aabd8cbc9791e42062c582d1572e2ef662869 --- /dev/null +++ b/manifests/prometheus/prometheus-k8s-service-monitor-kubelet.yaml @@ -0,0 +1,17 @@ +apiVersion: monitoring.coreos.com/v1alpha1 +kind: ServiceMonitor +metadata: + name: kubelet + labels: + k8s-apps: http +spec: + jobLabel: k8s-app + selector: + matchLabels: + k8s-app: kubelet + namespaceSelector: + matchNames: + - kube-system + endpoints: + - port: http-metrics + interval: 15s diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-node-exporter.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-node-exporter.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a7b20301d38756d4da4acaa05f71249a58962566 --- /dev/null +++ b/manifests/prometheus/prometheus-k8s-service-monitor-node-exporter.yaml @@ -0,0 +1,18 @@ +apiVersion: monitoring.coreos.com/v1alpha1 +kind: ServiceMonitor +metadata: + name: node-exporter + namespace: monitoring + labels: + k8s-apps: http +spec: + jobLabel: k8s-app + selector: + matchLabels: + k8s-app: node-exporter + namespaceSelector: + matchNames: + - monitoring + endpoints: + - port: http-metrics + interval: 15s diff --git a/manifests/prometheus/prometheus-k8s-service-monitor-prometheus.yaml b/manifests/prometheus/prometheus-k8s-service-monitor-prometheus.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5e5d17be37dbd573c6fa813c59cbf41e912a1a4c --- /dev/null +++ b/manifests/prometheus/prometheus-k8s-service-monitor-prometheus.yaml @@ -0,0 +1,12 @@ +apiVersion: monitoring.coreos.com/v1alpha1 +kind: ServiceMonitor +metadata: + name: prometheus + labels: + prometheus: k8s +spec: + endpoints: + - port: web + selector: + matchExpressions: + - {key: prometheus, operator: In, values: [k8s]} diff --git a/manifests/prometheus/prometheus-k8s-servicemonitors.yaml b/manifests/prometheus/prometheus-k8s-servicemonitors.yaml deleted file mode 100644 index ac2a26a17244b51716bbb7e945595e6643e01b13..0000000000000000000000000000000000000000 --- a/manifests/prometheus/prometheus-k8s-servicemonitors.yaml +++ /dev/null @@ -1,72 +0,0 @@ -apiVersion: monitoring.coreos.com/v1alpha1 -kind: ServiceMonitor -metadata: - name: kube-apiserver - labels: - k8s-apps: https -spec: - jobLabel: provider - selector: - matchLabels: - component: apiserver - provider: kubernetes - namespaceSelector: - matchNames: - - default - endpoints: - - port: https - interval: 15s - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token ---- -apiVersion: monitoring.coreos.com/v1alpha1 -kind: ServiceMonitor -metadata: - name: k8s-apps-http - labels: - k8s-apps: http -spec: - jobLabel: k8s-app - selector: - matchExpressions: - - {key: k8s-app, operator: Exists} - namespaceSelector: - matchNames: - - kube-system - - monitoring - endpoints: - - port: http-metrics - interval: 15s - - port: http-metrics-dnsmasq - interval: 15s - - port: http-metrics-skydns - interval: 15s ---- -apiVersion: monitoring.coreos.com/v1alpha1 -kind: ServiceMonitor -metadata: - name: prometheus - labels: - prometheus: k8s -spec: - endpoints: - - port: web - selector: - matchExpressions: - - {key: prometheus, operator: In, values: [k8s]} ---- -apiVersion: monitoring.coreos.com/v1alpha1 -kind: ServiceMonitor -metadata: - labels: - alertmanager: main - name: alertmanager -spec: - endpoints: - - port: web - selector: - matchExpressions: - - {key: alertmanager, operator: In, values: [main]} \ No newline at end of file