apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/name: nginx-demo name: nginx-demo spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: nginx-demo template: metadata: labels: app.kubernetes.io/name: nginx-demo annotations: prometheus.io/scrape: "true" prometheus.io/port: "9113" spec: containers: - image: nginxdemos/hello:latest name: nginx-demo ports: - name: http containerPort: 80 volumeMounts: - name: config-volume mountPath: /etc/nginx/conf.d/status.conf subPath: status.conf - image: nginx/nginx-prometheus-exporter:latest name: nginx-prometheus-exporter args: - "--nginx.scrape-uri=http://localhost:8080/stub_status" ports: - name: metrics containerPort: 9113 volumes: - name: config-volume configMap: name: status-config --- apiVersion: v1 kind: Service metadata: name: nginx-demo spec: type: NodePort selector: app.kubernetes.io/name: nginx-demo ports: - port: 80 targetPort: 80 protocol: TCP name: http - port: 9113 targetPort: 9113 name: metrics --- apiVersion: v1 kind: ConfigMap metadata: name: status-config data: status.conf: |- server { listen 8080; location /stub_status { stub_status; } }