作者:我是王美慧 | 来源:互联网 | 2023-01-29 12:28
我想通过kubectl代理服务器访问我的Grafana Kubernetes服务,但由于某种原因,即使我可以使其适用于其他服务,它也无法工作.鉴于以下服务定义,为什么它不能在http:// localhost:8001/api/v1/proxy/namespaces/monitoring/services/grafana上找到?
grafana-service.yaml
apiVersion: v1
kind: Service
metadata:
namespace: monitoring
name: grafana
labels:
app: grafana
spec:
type: NodePort
ports:
- name: web
port: 3000
protocol: TCP
nodePort: 30902
selector:
app: grafana
grafana-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
namespace: monitoring
name: grafana
spec:
replicas: 1
template:
metadata:
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:4.1.1
env:
- name: GF_AUTH_BASIC_ENABLED
value: "true"
- name: GF_AUTH_ANONYMOUS_ENABLED
value: "true"
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
name: grafana-credentials
key: user
- name: GF_SECURITY_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: grafana-credentials
key: password
volumeMounts:
- name: grafana-storage
mountPath: /var/grafana-storage
ports:
- name: web
containerPort: 3000
resources:
requests:
memory: 100Mi
cpu: 100m
limits:
memory: 200Mi
cpu: 200m
- name: grafana-watcher
image: quay.io/coreos/grafana-watcher:v0.0.5
args:
- '--watch-dir=/var/grafana-dashboards'
- '--grafana-url=http://localhost:3000'
env:
- name: GRAFANA_USER
valueFrom:
secretKeyRef:
name: grafana-credentials
key: user
- name: GRAFANA_PASSWORD
valueFrom:
secretKeyRef:
name: grafana-credentials
key: password
resources:
requests:
memory: "16Mi"
cpu: "50m"
limits:
memory: "32Mi"
cpu: "100m"
volumeMounts:
- name: grafana-dashboards
mountPath: /var/grafana-dashboards
volumes:
- name: grafana-storage
emptyDir: {}
- name: grafana-dashboards
configMap:
name: grafana-dashboards
我在访问上述URL时看到的错误是"没有端点可用于服务"grafana"",错误代码503.
1> 小智..:
正如迈克尔所说,很可能你的标签或命名空间不匹配.但是除此之外,请记住,即使您修复了端点,您所访问的URL(http:// localhost:8001/api/v1/proxy/namespaces/monitoring/services/grafana)也可能无法正常工作.
根据您的root_url和/或static_root_path grafana配置设置,当您尝试登录时,您可能会尝试将POST发送到http:// localhost:8001/login并获得404.
尝试使用kubectl port-forward代替:
kubectl -n monitoring port-forward [grafana-pod-name] 3000
然后通过http:// localhost:3000 /访问grafana
https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/
2> aknuds1..:
问题是Grafana的端口名为web,因此需要将其附加:web
到kubectl代理URL:http:// localhost:8001 / api / v1 / proxy / namespaces / monitoring / services / grafana:web。
另一种选择是,不命名Grafana端口,因为这样您就不必:web
在服务的kubectl代理URL后面附加:http:// localhost:8001 / api / v1 / proxy / namespaces / monitoring / services / grafana:web。最后我选择了这个选项,因为它更容易。
我不知道为什么,但是我无法在AKS上使用此模式。相反,我必须遵循此模式(末尾使用代理):http:// localhost:8001 / api / v1 / namespaces /
/ services / : / proxy /