问题描述

下载安装grafana套件的命令如下:

1
2
3
4
5
6
KUBE_PROMETHEUS_VERSION=版本号
wget --content-disposition https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v$KUBE_PROMETHEUS_VERSION.tar.gz
tar -zxvf kube-prometheus-$KUBE_PROMETHEUS_VERSION.tar.gz
cd kube-prometheus-$KUBE_PROMETHEUS_VERSION/
ll
pwd

如果直接执行kubectl apply -f manifests/,会发现prometheus无法访问:

alertmanager修改

此时你需要修改manifests/alertmanager-networkPolicy.yaml文件,将alertmanager的网络策略注释掉,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/component: alert-router
app.kubernetes.io/instance: main
app.kubernetes.io/name: alertmanager
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 0.25.0
name: alertmanager-main
namespace: monitoring
spec:
egress:
- {}
ingress:
- from: []
# - podSelector:
# matchLabels:
# app.kubernetes.io/name: prometheus
ports:
- port: 9093
protocol: TCP
- port: 8080
protocol: TCP
- from:
- podSelector:
matchLabels:
app.kubernetes.io/name: alertmanager
ports:
- port: 9094
protocol: TCP
- port: 9094
protocol: UDP
podSelector:
matchLabels:
app.kubernetes.io/component: alert-router
app.kubernetes.io/instance: main
app.kubernetes.io/name: alertmanager
app.kubernetes.io/part-of: kube-prometheus
policyTypes:
- Egress
- Ingress

prometheus修改

修改manifests/prometheus-networkPolicy.yaml文件,将prometheus的网络策略注释掉,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/component: prometheus
app.kubernetes.io/instance: k8s
app.kubernetes.io/name: prometheus
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 2.43.0
name: prometheus-k8s
namespace: monitoring
spec:
egress:
- {}
# ingress:
# - from:
# - podSelector:
# matchLabels:
# app.kubernetes.io/name: prometheus
ingress:
- from: []
ports:
- port: 9090
protocol: TCP
- port: 8080
protocol: TCP
- from:
- podSelector:
matchLabels:
app.kubernetes.io/name: prometheus-adapter
ports:
- port: 9090
protocol: TCP
- from:
- podSelector:
matchLabels:
app.kubernetes.io/name: grafana
ports:
- port: 9090
protocol: TCP
podSelector:
matchLabels:
app.kubernetes.io/component: prometheus
app.kubernetes.io/instance: k8s
app.kubernetes.io/name: prometheus
app.kubernetes.io/part-of: kube-prometheus
policyTypes:
- Egress
- Ingress

grafana修改

修改manifests/grafana-networkPolicy.yaml文件,将grafana的网络策略注释掉,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/component: grafana
app.kubernetes.io/name: grafana
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 9.4.7
name: grafana
namespace: monitoring
spec:
egress:
- {}
ingress:
# - from:
# - podSelector:
# matchLabels:
# app.kubernetes.io/name: prometheus
- from: []
ports:
- port: 3000
protocol: TCP
podSelector:
matchLabels:
app.kubernetes.io/component: grafana
app.kubernetes.io/name: grafana
app.kubernetes.io/part-of: kube-prometheus
policyTypes:
- Egress
- Ingress

重新部署

重新部署kube-prometheus套件:

1
kubectl apply -f manifests/

此时你会发现prometheus可以正常访问了。