apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: self labels: prometheus: self spec: podMetadata: labels: thanos-peer: 'true' replicas: 2 version: v2.2.1 serviceAccountName: prometheus-k8s serviceMonitorSelector: matchLabels: app: prometheus ruleSelector: matchLabels: role: prometheus-rulefiles prometheus: k8s resources: requests: # 2Gi is default, but won't schedule if you don't have a node with >2Gi # memory. Modify based on your target and time-series count for # production use. This value is mainly meant for demonstration/testing # purposes. memory: 400Mi containers: - name: thanos image: improbable/thanos:latest args: - "sidecar" - "--log.level=debug" - "--cluster.peers=thanos-peers.default.svc:10900" ports: - name: http containerPort: 10902 - name: grpc containerPort: 10901 - name: cluster containerPort: 10900 --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: prometheus labels: app: prometheus spec: selector: matchLabels: app: prometheus endpoints: - port: web interval: 30s --- apiVersion: v1 kind: Service metadata: labels: app: prometheus prometheus: self name: prometheus-self spec: type: NodePort ports: - name: web nodePort: 30900 port: 9090 protocol: TCP targetPort: web selector: prometheus: self