apiVersion: apps/v1 kind: Deployment metadata: name: prometheus namespace: observability labels: app: prometheus spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: prometheus template: metadata: labels: app: prometheus spec: nodeName: prod102 enableServiceLinks: false containers: - name: prometheus image: prom/prometheus:v3.2.1 imagePullPolicy: IfNotPresent command: ["/bin/prometheus"] args: - --config.file=/etc/prometheus/prometheus.yml - --storage.tsdb.path=/prometheus - --storage.tsdb.retention.time=15d ports: - containerPort: 9090 hostPort: 9090 volumeMounts: - name: config mountPath: /etc/prometheus/prometheus.yml subPath: prometheus.yml - name: data mountPath: /prometheus volumes: - name: config hostPath: path: /usr/cluster/observability/metrics/prometheus.yml type: File - name: data hostPath: path: /usr/cluster/docker/volumes/observability_prometheus_data/_data type: DirectoryOrCreate --- apiVersion: v1 kind: Service metadata: name: prometheus namespace: observability spec: selector: app: prometheus ports: - name: p9090 port: 9090 targetPort: 9090 --- apiVersion: apps/v1 kind: Deployment metadata: name: grafana namespace: observability labels: app: grafana spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: grafana template: metadata: labels: app: grafana spec: nodeName: prod102 enableServiceLinks: false containers: - name: grafana image: grafana/grafana:11.5.2 imagePullPolicy: IfNotPresent command: ["/run.sh"] env: - name: GF_SECURITY_ADMIN_USER value: admin - name: GF_SECURITY_ADMIN_PASSWORD value: Gf-gpu-2026 - name: GF_SERVER_ROOT_URL value: http://10.0.1.47:3001 ports: - containerPort: 3000 hostPort: 3001 volumeMounts: - name: datasources mountPath: /etc/grafana/provisioning/datasources - name: dashboards-prov mountPath: /etc/grafana/provisioning/dashboards - name: dashboards mountPath: /var/lib/grafana/dashboards - name: data mountPath: /var/lib/grafana volumes: - name: datasources hostPath: path: /usr/cluster/observability/metrics/grafana/provisioning/datasources type: Directory - name: dashboards-prov hostPath: path: /usr/cluster/observability/metrics/grafana/provisioning/dashboards type: Directory - name: dashboards hostPath: path: /usr/cluster/observability/metrics/grafana/dashboards type: Directory - name: data hostPath: path: /usr/cluster/docker/volumes/observability_grafana_data/_data type: DirectoryOrCreate --- apiVersion: v1 kind: Service metadata: name: grafana namespace: observability spec: selector: app: grafana ports: - name: p3000 port: 3000 targetPort: 3000 --- apiVersion: apps/v1 kind: Deployment metadata: name: dcgm-exporter namespace: observability labels: app: dcgm-exporter spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: dcgm-exporter template: metadata: labels: app: dcgm-exporter spec: nodeName: prod102 enableServiceLinks: false containers: - name: dcgm-exporter image: nvidia/dcgm-exporter:3.3.8-3.6.0-ubuntu22.04 imagePullPolicy: IfNotPresent command: ["/usr/local/dcgm/dcgm-exporter-entrypoint.sh"] env: - name: NVIDIA_VISIBLE_DEVICES value: all - name: NVIDIA_DRIVER_CAPABILITIES value: all ports: - containerPort: 9400 hostPort: 9400 --- apiVersion: v1 kind: Service metadata: name: dcgm-exporter namespace: observability spec: selector: app: dcgm-exporter ports: - name: p9400 port: 9400 targetPort: 9400