1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
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;
}
}
|