k8s1.28.1部署prometheus监控
时间: 2025-01-26 13:02:49 浏览: 48
### 部署 Prometheus 进行 Kubernetes 监控
#### 准备工作
为了确保Prometheus能够正常运行并收集集群内的数据,在部署前需确认已创建必要的证书和Secret资源。对于etcd监控遇到的证书问题,可以通过如下命令来创建所需的secret:
```bash
kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs \
--from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt \
--from-file=etcd-client.crt=/etc/kubernetes/pki/apiserver-etcd-client.crt \
--from-file=etcd-client.key=/etc/kubernetes/pki/apiserver-etcd-client.key[^2]
```
此操作会将指定路径下的CA文件、客户端证书以及私钥打包成名为`kube-etcd-client-certs`的秘密对象存储于命名空间`kubesphere-monitoring-system`下。
#### 安装 Prometheus Operator 和 CRDs
推荐采用Helm Chart方式安装Prometheus及其相关组件。首先添加Prometheus社区官方仓库,并更新本地缓存:
```bash
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
```
接着可以利用以下命令完成Prometheus Operator及相关自定义资源定义(CRDs)的安装:
```bash
helm install prometheus-operator prometheus-community/kube-prometheus-stack -n monitoring --create-namespace
```
这一步骤将在`monitoring`这个新的命名空间内设置好Prometheus所需的基础架构和服务发现机制。
#### 创建 ServiceMonitor 资源以便抓取目标指标
为了让Prometheus能自动发现并采集来自不同服务的数据点,需要为想要被监测的服务配置对应的ServiceMonitor资源描述符。这里假设要让Prometheus获取到整个Kubernetes Dashboard的相关度量信息,则可编写类似下面yaml格式的内容并通过`kubectl apply -f <filename>.yaml`提交给API Server处理:
```yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: kubernetes-dashboard-servicemonitor
namespace: kubernetes-dashboard
spec:
selector:
matchLabels:
k8s-app: kubernetes-dashboard
endpoints:
- port: http-metrics
interval: 30s
namespaceSelector:
any: true
```
上述YAML片段中的端口名称(`http-metrics`)应该匹配实际暴露出来的metrics接口所使用的端口号;同时调整时间间隔参数以适应具体需求场景。
通过以上步骤即可实现在Kubernetes 1.28.1环境中成功部署Prometheus来进行有效的集群状态跟踪与性能分析。
阅读全文
相关推荐









