apiVersion: v1 kind: Namespace metadata: name: prometheus --- apiVersion: v1 kind: ConfigMap metadata: name: prometheus namespace: prometheus data: prometheus.yml: |- scrape_configs: - job_name: 'kubernetes-nodes' scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt insecure_skip_verify: true bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node metric_relabel_configs: - source_labels: [pod_name] target_label: environment regex: (.+)-.+-.+ replacement: $1 - job_name: kubernetes-pods tls_config: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" insecure_skip_verify: true bearer_token_file: "/var/run/secrets/kubernetes.io/serviceaccount/token" kubernetes_sd_configs: - role: pod api_server: https://kubernetes.default.svc:443 tls_config: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" bearer_token_file: "/var/run/secrets/kubernetes.io/serviceaccount/token" relabel_configs: - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape action: keep regex: 'true' - source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path action: replace target_label: __metrics_path__ regex: "(.+)" - source_labels: - __address__ - __meta_kubernetes_pod_annotation_prometheus_io_port action: replace regex: "([^:]+)(?::[0-9]+)?;([0-9]+)" replacement: "$1:$2" target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: - __meta_kubernetes_namespace action: replace target_label: kubernetes_namespace - source_labels: - __meta_kubernetes_pod_name action: replace target_label: kubernetes_pod_name --- apiVersion: v1 kind: Service metadata: name: prometheus namespace: prometheus spec: selector: app: prometheus ports: - name: prometheus protocol: TCP port: 9090 nodePort: 30090 type: NodePort --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: prometheus namespace: prometheus spec: replicas: 1 template: metadata: labels: app: prometheus spec: containers: - name: prometheus image: prom/prometheus:latest args: - '-config.file=/prometheus-data/prometheus.yml' ports: - name: prometheus containerPort: 9090 volumeMounts: - name: data-volume mountPath: /prometheus-data volumes: - name: data-volume configMap: name: prometheus