| 步骤 | 操作 |
| ------ | ------ |
| 1 | 安装和配置Prometheus |
| 2 | 创建自定义metrics |
| 3 | 部署yli到K8S集群 |
| 4 | 配置Prometheus抓取yli暴露的metrics |
| 5 | 查看监控指标 |
接下来,让我们逐步进行每个步骤的操作:
### 步骤 1:安装和配置Prometheus
在K8S集群中安装和配置Prometheus用于抓取和存储监控指标。
```yaml
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
name: prometheus
spec:
replicas: 1
serviceAccountName: prometheus
serviceMonitorSelectorNil
...
```
### 步骤 2:创建自定义metrics
在应用程序中导出自定义的metrics供Prometheus抓取。
```go
package main
import (
"net/http"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
var (
cpuUsage = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "cpu_usage",
Help: "Current CPU usage",
})
)
func main() {
prometheus.MustRegister(cpuUsage)
go func() {
for {
cpuUsage.Set(getCPUUsage())
}
}()
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8080", nil)
}
func getCPUUsage() float64 {
// 获取当前CPU使用率的逻辑
}
```
### 步骤 3:部署yli到K8S集群
在K8S集群中部署yli,yli将会收集容器内部的metrics并将其暴露给Prometheus。
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: yli
spec:
replicas: 1
selector:
matchLabels:
app: yli
template:
metadata:
labels:
app: yli
spec:
containers:
- name: yli
image: yli:latest
ports:
- containerPort: 8080
```
### 步骤 4:配置Prometheus抓取yli暴露的metrics
在Prometheus的配置文件中添加yli作为监控目标,从yli的端点收集metrics。
```yaml
- job_name: 'yli'
static_configs:
- targets: ['yli:8080']
```
### 步骤 5:查看监控指标
访问Prometheus的UI或者通过PromQL查询语言查看自定义的metrics以及其他监控指标。
通过以上步骤,你已经成功地实现了K8S容器监控yli。希望这篇文章能够帮助你更好地了解和使用容器监控技术,祝你学习进步!