- 安装Helm
首先需要安装Helm包管理器,可以参考官方文档进行安装:https://helm.sh/docs/intro/install/
- 添加Prometheus nfs exporter Helm仓库
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
- 创建values.yaml文件
创建一个values.yaml文件用于指定我们的部署配置,可以通过下面的命令创建文件并添加配置:
$ cat <<EOF > values.yaml
serviceMonitor:
enabled: true
interval: 30s
scrapeTimeout: 10s
namespaceSelector:
any: true
selector:
matchLabels:
app.kubernetes.io/name: nfs-exporter
podSecurityPolicy:
enabled: false
rbac:
create: true
image:
repository: quay.io/prometheus-community/nfs-exporter
tag: v0.8.7
pullPolicy: IfNotPresent
pullSecrets: []
config:
exports:
- server: nfs-server-name
path: /path/to/export
EOF
在上述配置中,我们定义了nfs-exporter的基本设置,包括图像版本、拉取策略、导出目录等。
- 使用Helm部署nfs-exporter
使用以下命令将nfs-exporter部署到Kubernetes集群中:
$ helm install nfs-exporter prometheus-community/nfs-exporter --values values.yaml
- 验证部署是否成功
使用以下命令检查nfs-exporter是否已经正确部署:
$ kubectl get pods -l "app.kubernetes.io/name=nfs-exporter"
如果部署成功,应该看到一个或多个运行中的nfs-exporter Pod。
- 配置Prometheus监控
为了让Prometheus监控nfs-exporter,我们需要在Prometheus配置中添加以下内容:
- job_name: 'nfs-exporter'
scrape_interval: 30s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets: ['nfs-exporter-service-name.namespace.svc.cluster.local:9501']
在上述配置中,我们指定了nfs-exporter服务的名称和端口号。请注意,这里使用的是Kubernetes服务DNS名称而不是Pod IP地址,因为Kubernetes负责管理服务的负载均衡,并根据需要重新调度Pod。
- 查看Prometheus数据
完成上述配置后,可以在Prometheus UI中查看nfs-exporter收集的数据,例如:
nfs2_read_bytes_total{export="/path/to/export",instance="nfs-exporter-service-name.namespace.svc.cluster.local:9501",job="nfs-exporter"} 4.966912e+06
nfs2_write_ops_total{export="/path/to/export",instance="nfs-exporter-service-name.namespace.svc.cluster.local:9501",job="nfs-exporter"} 562
- 完成
现在我们已经成功地将nfs-exporter部署到了Kubernetes集群中,并且可以使用Prometheus对其进行监控。