| @ -0,0 +1,6 @@ | |||
| # kubernetes-grafana | |||
| Lo que yo hice: https://devopscube.com/setup-grafana-kubernetes/ | |||
| Read about the grafana implementation on Kubernetes here https://devopscube.com/setup-grafana-kubernetes/ | |||
| @ -0,0 +1,42 @@ | |||
| apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: grafana | |||
| namespace: monitoring | |||
| spec: | |||
| replicas: 1 | |||
| selector: | |||
| matchLabels: | |||
| app: grafana | |||
| template: | |||
| metadata: | |||
| name: grafana | |||
| labels: | |||
| app: grafana | |||
| spec: | |||
| containers: | |||
| - name: grafana | |||
| image: grafana/grafana:latest | |||
| ports: | |||
| - name: grafana | |||
| containerPort: 3000 | |||
| resources: | |||
| limits: | |||
| memory: "1Gi" | |||
| cpu: "1000m" | |||
| requests: | |||
| memory: 500M | |||
| cpu: "500m" | |||
| volumeMounts: | |||
| - mountPath: /var/lib/grafana | |||
| name: grafana-storage | |||
| - mountPath: /etc/grafana/provisioning/datasources | |||
| name: grafana-datasources | |||
| readOnly: false | |||
| volumes: | |||
| - name: grafana-storage | |||
| emptyDir: {} | |||
| - name: grafana-datasources | |||
| configMap: | |||
| defaultMode: 420 | |||
| name: grafana-datasources | |||
| @ -0,0 +1,21 @@ | |||
| apiVersion: v1 | |||
| kind: ConfigMap | |||
| metadata: | |||
| name: grafana-datasources | |||
| namespace: monitoring | |||
| data: | |||
| prometheus.yaml: |- | |||
| { | |||
| "apiVersion": 1, | |||
| "datasources": [ | |||
| { | |||
| "access":"proxy", | |||
| "editable": true, | |||
| "name": "prometheus", | |||
| "orgId": 1, | |||
| "type": "prometheus", | |||
| "url": "http://prometheus-service.monitoring.svc:8080", | |||
| "version": 1 | |||
| } | |||
| ] | |||
| } | |||
| @ -0,0 +1,16 @@ | |||
| apiVersion: v1 | |||
| kind: Service | |||
| metadata: | |||
| name: grafana | |||
| namespace: monitoring | |||
| annotations: | |||
| prometheus.io/scrape: 'true' | |||
| prometheus.io/port: '3000' | |||
| spec: | |||
| selector: | |||
| app: grafana | |||
| type: NodePort | |||
| ports: | |||
| - port: 3000 | |||
| targetPort: 3000 | |||
| nodePort: 32000 | |||
| @ -0,0 +1,23 @@ | |||
| # kubernetes prometheus Setup | |||
| Lo que yo hice: https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/ | |||
| Complete prometheus monitoring stack setup on Kubernetes. | |||
| You can find the full tutorial from here https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/ | |||
| Idea of this repo to understand all the components involved in prometheus setup. | |||
| # Other Manifest repos | |||
| Kube State metrics manifests: https://github.com/devopscube/kube-state-metrics-configs | |||
| Alert manager Manifests: https://github.com/bibinwilson/kubernetes-alert-manager | |||
| Grafana manifests: https://github.com/bibinwilson/kubernetes-grafana | |||
| Node Exporter manifests: https://github.com/bibinwilson/kubernetes-node-exporter | |||
| @ -0,0 +1,33 @@ | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRole | |||
| metadata: | |||
| name: prometheus | |||
| rules: | |||
| - apiGroups: [""] | |||
| resources: | |||
| - nodes | |||
| - nodes/proxy | |||
| - services | |||
| - endpoints | |||
| - pods | |||
| verbs: ["get", "list", "watch"] | |||
| - apiGroups: | |||
| - extensions | |||
| resources: | |||
| - ingresses | |||
| verbs: ["get", "list", "watch"] | |||
| - nonResourceURLs: ["/metrics"] | |||
| verbs: ["get"] | |||
| --- | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRoleBinding | |||
| metadata: | |||
| name: prometheus | |||
| roleRef: | |||
| apiGroup: rbac.authorization.k8s.io | |||
| kind: ClusterRole | |||
| name: prometheus | |||
| subjects: | |||
| - kind: ServiceAccount | |||
| name: default | |||
| namespace: monitoring | |||
| @ -0,0 +1,159 @@ | |||
| apiVersion: v1 | |||
| kind: ConfigMap | |||
| metadata: | |||
| name: prometheus-server-conf | |||
| labels: | |||
| name: prometheus-server-conf | |||
| namespace: monitoring | |||
| data: | |||
| prometheus.rules: |- | |||
| groups: | |||
| - name: devopscube demo alert | |||
| rules: | |||
| - alert: High Pod Memory | |||
| expr: sum(container_memory_usage_bytes) > 1 | |||
| for: 1m | |||
| labels: | |||
| severity: slack | |||
| annotations: | |||
| summary: High Memory Usage | |||
| prometheus.yml: |- | |||
| global: | |||
| scrape_interval: 5s | |||
| evaluation_interval: 5s | |||
| rule_files: | |||
| - /etc/prometheus/prometheus.rules | |||
| alerting: | |||
| alertmanagers: | |||
| - scheme: http | |||
| static_configs: | |||
| - targets: | |||
| - "alertmanager.monitoring.svc:9093" | |||
| scrape_configs: | |||
| - job_name: 'node-exporter' | |||
| kubernetes_sd_configs: | |||
| - role: endpoints | |||
| relabel_configs: | |||
| - source_labels: [__meta_kubernetes_endpoints_name] | |||
| regex: 'node-exporter' | |||
| action: keep | |||
| - job_name: 'kubernetes-apiservers' | |||
| kubernetes_sd_configs: | |||
| - role: endpoints | |||
| scheme: https | |||
| 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_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] | |||
| action: keep | |||
| regex: default;kubernetes;https | |||
| - job_name: 'kubernetes-nodes' | |||
| scheme: https | |||
| 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: node | |||
| relabel_configs: | |||
| - action: labelmap | |||
| regex: __meta_kubernetes_node_label_(.+) | |||
| - target_label: __address__ | |||
| replacement: kubernetes.default.svc:443 | |||
| - source_labels: [__meta_kubernetes_node_name] | |||
| regex: (.+) | |||
| target_label: __metrics_path__ | |||
| replacement: /api/v1/nodes/${1}/proxy/metrics | |||
| - job_name: 'kubernetes-pods' | |||
| kubernetes_sd_configs: | |||
| - role: pod | |||
| 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: ([^:]+)(?::\d+)?;(\d+) | |||
| 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 | |||
| - job_name: 'kube-state-metrics' | |||
| static_configs: | |||
| - targets: ['kube-state-metrics.kube-system.svc.cluster.local:8080'] | |||
| - job_name: 'kubernetes-cadvisor' | |||
| scheme: https | |||
| 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: node | |||
| relabel_configs: | |||
| - action: labelmap | |||
| regex: __meta_kubernetes_node_label_(.+) | |||
| - target_label: __address__ | |||
| replacement: kubernetes.default.svc:443 | |||
| - source_labels: [__meta_kubernetes_node_name] | |||
| regex: (.+) | |||
| target_label: __metrics_path__ | |||
| replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor | |||
| - job_name: 'kubernetes-service-endpoints' | |||
| kubernetes_sd_configs: | |||
| - role: endpoints | |||
| relabel_configs: | |||
| - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] | |||
| action: keep | |||
| regex: true | |||
| - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme] | |||
| action: replace | |||
| target_label: __scheme__ | |||
| regex: (https?) | |||
| - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path] | |||
| action: replace | |||
| target_label: __metrics_path__ | |||
| regex: (.+) | |||
| - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] | |||
| action: replace | |||
| target_label: __address__ | |||
| regex: ([^:]+)(?::\d+)?;(\d+) | |||
| replacement: $1:$2 | |||
| - action: labelmap | |||
| regex: __meta_kubernetes_service_label_(.+) | |||
| - source_labels: [__meta_kubernetes_namespace] | |||
| action: replace | |||
| target_label: kubernetes_namespace | |||
| - source_labels: [__meta_kubernetes_service_name] | |||
| action: replace | |||
| target_label: kubernetes_name | |||
| @ -0,0 +1,38 @@ | |||
| apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: prometheus-deployment | |||
| namespace: monitoring | |||
| labels: | |||
| app: prometheus-server | |||
| spec: | |||
| replicas: 1 | |||
| selector: | |||
| matchLabels: | |||
| app: prometheus-server | |||
| template: | |||
| metadata: | |||
| labels: | |||
| app: prometheus-server | |||
| spec: | |||
| containers: | |||
| - name: prometheus | |||
| image: prom/prometheus | |||
| args: | |||
| - "--config.file=/etc/prometheus/prometheus.yml" | |||
| - "--storage.tsdb.path=/prometheus/" | |||
| ports: | |||
| - containerPort: 9090 | |||
| volumeMounts: | |||
| - name: prometheus-config-volume | |||
| mountPath: /etc/prometheus/ | |||
| - name: prometheus-storage-volume | |||
| mountPath: /prometheus/ | |||
| volumes: | |||
| - name: prometheus-config-volume | |||
| configMap: | |||
| defaultMode: 420 | |||
| name: prometheus-server-conf | |||
| - name: prometheus-storage-volume | |||
| emptyDir: {} | |||
| @ -0,0 +1,33 @@ | |||
| ## Nginx Ingress | |||
| ## Follow https://devopscube.com/setup-ingress-kubernetes-nginx-controller/ | |||
| apiVersion: extensions/v1beta1 | |||
| kind: Ingress | |||
| metadata: | |||
| name: prometheus-ui | |||
| namespace: monitoring | |||
| annotations: | |||
| kubernetes.io/ingress.class: nginx | |||
| spec: | |||
| rules: | |||
| # Use the host you used in your kubernetes Ingress Configurations | |||
| - host: prometheus.example.com | |||
| http: | |||
| paths: | |||
| - backend: | |||
| serviceName: prometheus-service | |||
| servicePort: 8080 | |||
| tls: | |||
| - hosts: | |||
| - prometheus.apps.shaker242.lab | |||
| secretName: prometheus-secret | |||
| --- | |||
| apiVersion: v1 | |||
| kind: Secret | |||
| metadata: | |||
| name: prometheus-secret | |||
| namespace: monitoring | |||
| data: | |||
| # USe base64 in the certs | |||
| tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZpVENDQkhHZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBRENCd0RFak1DRUdBMVVFQXhNYWFXNTAKWlhKdFpXUnBZWFJsTG5Ob1lXdGxjakkwTWk1c1lXSXhDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJRXdoVwphWEpuYVc1cFlURVFNQTRHQTFVRUJ4TUhRbkpwYzNSdmR6RXNNQ29HQTFVRUNoTWpVMGhCUzBWU01qUXlJRXhoCllpQkRaWEowYVdacFkyRjBaU0JCZFhSb2IzSnBkSGt4T1RBM0JnTlZCQXNUTUZOSVFVdEZVakkwTWlCTVlXSWcKU1c1MFpYSnRaV1JwWVhSbElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlVEFlRncweE9URXdNVGN4TmpFMgpNekZhRncweU1URXdNVFl4TmpFMk16RmFNSUdBTVIwd0d3WURWUVFERkJRcUxtRndjSE11YzJoaGEyVnlNalF5CkxteGhZakVMTUFrR0ExVUVCaE1DVlZNeEVUQVBCZ05WQkFnVENGWnBjbWRwYm1saE1SQXdEZ1lEVlFRSEV3ZEMKY21semRHOTNNUll3RkFZRFZRUUtFdzFUU0VGTFJWSXlORElnVEdGaU1SVXdFd1lEVlFRTEV3eE1ZV0lnVjJWaQpjMmwwWlhNd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURsRm16QVd0U09JcXZNCkpCV3Vuc0VIUmxraXozUmpSK0p1NTV0K0hCUG95YnZwVkJJeXMxZ3prby9INlkxa2Zxa1JCUzZZYVFHM2lYRFcKaDgzNlNWc3pNVUNVS3BtNXlZQXJRNzB4YlpPTXRJcjc1VEcrejFaRGJaeFUzbnh6RXdHdDN3U3c5OVJ0bjhWbgo5dEpTVXI0MHBHUytNemMzcnZOUFZRMjJoYTlhQTdGL2NVcGxtZUpkUnZEVnJ3Q012UklEcndXVEZjZkU3bUtxCjFSUkRxVDhETnlydlJmeUlubytmSkUxTmRuVEVMY0dTYVZlajhZVVFONHY0WFRnLzJncmxIN1pFT1VXNy9oYm8KUXh6NVllejVSam1wOWVPVUpvdVdmWk5FNEJBbGRZeVYxd2NPRXhRTmswck5BOU45ZXBjNWtUVVZQR3pOTWRucgovVXQxOWMweEFnTUJBQUdqZ2dIS01JSUJ4akFKQmdOVkhSTUVBakFBTUJFR0NXQ0dTQUdHK0VJQkFRUUVBd0lHClFEQUxCZ05WSFE4RUJBTUNCYUF3TXdZSllJWklBWWI0UWdFTkJDWVdKRTl3Wlc1VFUwd2dSMlZ1WlhKaGRHVmsKSUZObGNuWmxjaUJEWlhKMGFXWnBZMkYwWlRBZEJnTlZIUTRFRmdRVWRhYy94MTR6dXl3RVZPSi9vTjdQeU82bApDZ2N3Z2RzR0ExVWRJd1NCMHpDQjBJQVVzZFM1WWxuWEpWTk5mRVpkTEQvL2RyNE5mV3FoZ2JTa2diRXdnYTR4CkdUQVhCZ05WQkFNVEVHTmhMbk5vWVd0bGNqSTBNaTVzWVdJeEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUkKRXdoV2FYSm5hVzVwWVRFUU1BNEdBMVVFQnhNSFFuSnBjM1J2ZHpFc01Db0dBMVVFQ2hNalUwaEJTMFZTTWpReQpJRXhoWWlCRFpYSjBhV1pwWTJGMFpTQkJkWFJvYjNKcGRIa3hNVEF2QmdOVkJBc1RLRk5JUVV0RlVqSTBNaUJNCllXSWdVbTl2ZENCRFpYSjBhV1pwWTJGMFpTQkJkWFJvYjNKcGRIbUNBUUV3SFFZRFZSMGxCQll3RkFZSUt3WUIKQlFVSEF3RUdDQ3NHQVFVRkNBSUNNRWdHQTFVZEVRUkJNRCtDRFhOb1lXdGxjakkwTWk1c1lXS0NFbUZ3Y0hNdQpjMmhoYTJWeU1qUXlMbXhoWW9JVUtpNWhjSEJ6TG5Ob1lXdGxjakkwTWk1c1lXS0hCTUNvQ3hBd0RRWUpLb1pJCmh2Y05BUUVMQlFBRGdnRUJBRzA3ZHFNdFZYdVQrckduQlN4SkVTNjNSa2pHaWd0c3ZtNTk4NSsrbjZjRW5kSDIKb2hjaGdmRUo5V0UxYUFWSDR4QlJSdVRIUFVJOFcvd3N1OFBxQ1o4NHpRQ2U2elAyeThEcmEwbjFzK2lIeHFwRAorS3BwZS91NkNLVTFEL0VWRU9MakpZd3pRYlFLSUlPL2Y1Q0JVbUpGWjBuZ1VIUEtvUDNyTXordTlBOWFvRkVrCnF3dDBadHFHcWpjMkh3Q09UOTlOVmFsZ29ISXljOElxQXJXdjNSWklraUlyaW9kSUdDMS94MVQ2dHhKcEUyRisKQzZ0Tzk0U0FVSUJwc2VORjNFbGNLNUsyTW44YVAzR3NnNFRHeElPN2Q1eUIvb3YwNGhOV2Q1S2QwWGorL1BvQgpLOU43cFQ1SVU2citLekNoeGlSdmRvZlAzV0VYN1ZkNEtLWG94K0U9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K | |||
| tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2d0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktrd2dnU2xBZ0VBQW9JQkFRRGxGbXpBV3RTT0lxdk0KSkJXdW5zRUhSbGtpejNSalIrSnU1NXQrSEJQb3lidnBWQkl5czFnemtvL0g2WTFrZnFrUkJTNllhUUczaVhEVwpoODM2U1Zzek1VQ1VLcG01eVlBclE3MHhiWk9NdElyNzVURyt6MVpEYlp4VTNueHpFd0d0M3dTdzk5UnRuOFZuCjl0SlNVcjQwcEdTK016YzNydk5QVlEyMmhhOWFBN0YvY1VwbG1lSmRSdkRWcndDTXZSSURyd1dURmNmRTdtS3EKMVJSRHFUOEROeXJ2UmZ5SW5vK2ZKRTFOZG5URUxjR1NhVmVqOFlVUU40djRYVGcvMmdybEg3WkVPVVc3L2hibwpReHo1WWV6NVJqbXA5ZU9VSm91V2ZaTkU0QkFsZFl5VjF3Y09FeFFOazByTkE5TjllcGM1a1RVVlBHek5NZG5yCi9VdDE5YzB4QWdNQkFBRUNnZ0VCQU5zOHRjRDBiQnpHZzRFdk8yek0wMUJoKzZYN3daZk4wSjV3bW5kNjZYYkwKc1VEZ1N6WW9PbzNJZ2o5QWZTY2lyQ3YwdUozMVNFWmNpeGRVQ2tTdjlVNnRvTzdyUWdqeUZPM1N1dm5Wc3ZKaQpTZXc5Y0hqNk5jVDczak8rWkgxQVFFZ2tlWG5mQTNZU0JEcTFsSnhpUVZOaHpHUFY0Yzh4Wi9xUkhEbUVBTWR6CmwyaTB6dHJtcWRqSng4aTQxOXpGL1pVektoa2JtcVZVb3JjZ1lNdEt5QVloSENMYms2RFZtQ1FhbDlndEUrNjUKTmFTOEwxUW9yVWNVS0FoSTNKT2Q2TTRwbWRPaExITjZpZ0VwWFdVWGxBZjRITUZicHd5M1oxejNqZzVqTE9ragp6SWNDSVRaai9CYVZvSVc4QzJUb0pieUJKWkN6UDVjUVJTdkJOOGV4aUFFQ2dZRUEvV0Nxb2xVUWtOQkQrSnlPCklXOUJIRVlPS3oxRFZxNWxHRFhoNFMyTStpOU1pck5nUlcvL0NFRGhRUVVMZmtBTDgxMERPQmxsMXRRRUpGK3cKb1V6dWt6U1lkK1hTSnhicTM5YTF1ZGJldTNZU1ljeC8wTEEweGFQOW1sN1l1NXUraUZ4NGhwcnYyL2UrVklZQQpzTWV4WkZSODA3Q3M5YXN5MkdFT1l2aEdKb0VDZ1lFQTUzVm1weFlQbDFOYTVTMElJbEpuYm40dTl0RHpwYm5TCnpsMjBVQ3Q0d0N4STR6YjY1S1o4V1VaYlFzVTVaZ0VqTmxJWURXUisrd3kwVXh2SmNxUG5nS0xuOEdoSzhvOVEKeVJuR2dSYXAxWmNuUEdsbGdCeHQzM0s5TDNWMmJzMXBPcGJKMGlpOVdySWM4MU1wUVFpQjZ1RDRSZ216M0ZWSQpnUk5Ec2ZHS0xyRUNnWUVBbWY5ZXRqc3RUbGJHZVJ2dDVyUlB4bmR0dFNvTysyZ1RXWnVtSmM0aG1RMldYOWFWCjlKNFZTMWJqa1RrWHV5d0NGMis0dlNmeWxaZFd6U1M3bmMyOFV3dnNmekxYZjVxV05tV3hIYnBTdFcwVnp3c1QKeENyVWFDczd2ODlWdXZEMTVMc1BKZ0NWT0FSalVjd0FMM0d2aDJNeVd4ZE9pQ0g5VFRYd0lJYjFYQUVDZ1lBMwp4ZUptZ0xwaERJVHFsRjlSWmVubWhpRnErQTY5OEhrTG9TakI2TGZBRnV1NVZKWkFZcDIwSlcvNE51NE4xbGhWCnpwSmRKOG94Vkc1ZldHTENiUnhyc3RXUTZKQ213a0lGTTJEUjJsUXlVNm53dExUd21la2YzdFlYaVlad1RLNysKbnpjaW5RNkR2RWVkbW54bVgxWnU4cWJndVpYTmtmOVdtdjNFOHg4SkFRS0JnUUNNeDFWNHJIcUpwVXJMdkRVVQo4RzhXVGNrT2VFM2o2anhlcHMwcnExdEd1cE9XWW5saFlNYyt5VkMzMDZUc2dXUmJ5R1Y4YWNaRkF4WS9Ub2N5CmxpcXlUS1NGNUloYXhZQVpRTzVkOU1oTmN0bTRReDNaOUtTekZ5ZG01QlZVL0grMFFmUnRwM29TeFVneXRZNXkKV3ZDTFZ5bmNGZlZpL0VkaTdaZHM2aW82QVE9PQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg== | |||
| @ -0,0 +1,17 @@ | |||
| apiVersion: v1 | |||
| kind: Service | |||
| metadata: | |||
| name: prometheus-service | |||
| namespace: monitoring | |||
| annotations: | |||
| prometheus.io/scrape: 'true' | |||
| prometheus.io/port: '9090' | |||
| spec: | |||
| selector: | |||
| app: prometheus-server | |||
| type: NodePort | |||
| ports: | |||
| - port: 8080 | |||
| targetPort: 9090 | |||
| nodePort: 30000 | |||
| @ -0,0 +1 @@ | |||
| Subproject commit 6afe00e9df3e4c7b2d41b5b409ad25ebcee39859 | |||