k8s 部署servicemonitor 监听pod (示例)
yaml
·
这里提供一个经过测试的示例YAML模板,用于在Kubernetes中部署一个Node.js应用程序,并将其指标收集并发送到Prometheus:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodejs-app
labels:
app: nodejs-app
spec:
replicas: 1
selector:
matchLabels:
app: nodejs-app
template:
metadata:
labels:
app: nodejs-app
spec:
containers:
- name: nodejs-app
image: nodejs-app:latest
ports:
- name: http
containerPort: 3000
env:
- name: PROMETHEUS_PORT
value: "9090"
---
apiVersion: v1
kind: Service
metadata:
name: nodejs-app
labels:
app: nodejs-app
spec:
selector:
app: nodejs-app
ports:
- name: http
protocol: TCP
port: 80
targetPort: 3000
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: nodejs-app-monitor
labels:
app: nodejs-app
spec:
selector:
matchLabels:
app: nodejs-app
endpoints:
- port: http
interval: 30s
path: /metrics
这个示例使用Deployment来创建一个Pod,其中包含一个名为nodejs-app的容器。容器运行Node.js应用程序,它在端口3000上暴露指标。这个容器还定义了一个名为PROMETHEUS_PORT的环境变量,用于指定Prometheus的端口号。Service将流量转发到Pod中的端口3000上,ServiceMonitor使用标签选择器选择要监视的Pod,并将其指标上传到Prometheus。在这个示例中,ServiceMonitor将每30秒轮询一次/metrics路径,并将指标发送到Prometheus的默认端口(9090)。
请注意,这个示例中的环境变量和路径可能需要根据你的应用程序做出一些调整。另外,你需要根据你的实际情况对Pod、Service和ServiceMonitor的名称、标签和选择器进行适当修改。你还需要在Kubernetes集群中安装和配置Prometheus和kube-prometheus-stack等监控相关的组件,以确保这个模板能够正常工作。
更多推荐
已为社区贡献3条内容
所有评论(0)