kubernetes - 无法使用来自浏览器的入口访问我在 k8s 集群上的 grafana 仪表板
问题描述
我已经安装Prometheus
并Grafana
在我的Kubernetes
集群上使用helm
:
$helm install prometheus prometheus-community/kube-prometheus-stack
所有pods
,deployments
和services
都启动并运行。当我像这样使用端口转发时:
kubectl port-forward deployment/prometheus-grafana 3000
我可以访问我正在grafana dashboard
使用的浏览器,但是当我想使用ingress
而不是port-forward
响应时:
而且我无法访问 Grafana 仪表板。
我的ingress
yaml 文件:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grafana-ingress
namespace: default
spec:
ingressClassName: kong
rules:
- http:
paths:
- path: /grafana/login
pathType: Prefix
backend:
service:
name: prometheus-grafana
port:
number: 80
服务prometheus-grafana
yaml 文件是:
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Service
metadata:
annotations:
meta.helm.sh/release-name: prometheus
meta.helm.sh/release-namespace: default
creationTimestamp: "2021-09-15T11:07:30Z"
labels:
app.kubernetes.io/instance: prometheus
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: grafana
app.kubernetes.io/version: 8.1.2
helm.sh/chart: grafana-6.16.4
name: prometheus-grafana
namespace: default
resourceVersion: "801373"
uid: e1f57de9-94d0-460a-a427-4a97fd770e12
spec:
clusterIP: 10.100.90.147
clusterIPs:
- 10.100.90.147
ports:
- name: service
port: 80
protocol: TCP
targetPort: 3000
selector:
app.kubernetes.io/instance: prometheus
app.kubernetes.io/name: grafana
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
解决方案
我已经发布了社区 wiki 答案以获得更好的可见性。问题已解决,与入口 yaml 文件有关。
解决方案:
我更改了我的入口文件:添加
host: grafana.example.com
并更改path
为/
. 一切顺利。
解决方案的建议:
我的意思是,入口只定义了一个路径,
/grafana/login
类型为Prefix
。Grafana 肯定会有其他路径,而不是/grafana/login
我尝试的第一件事就是只使用一条路径,/grafana
. 使用端口转发时,在哪个路径可以打开 grafana 仪表盘?因为 Grafana 可能会期望请求到达相同的路径/路径。
解释:
Grafana 是一个 Web 应用程序,希望直接在服务器的根路径下提供服务。您需要将其
/
作为路径公开,使用重写目标规则或在主机的子域下提供它。尝试使用 path 是否/
一切都按预期工作
推荐阅读
- javascript - POST 请求适用于 curl 和 Postman,但使用 javascript fetch 失败
- python-3.x - Pdf生成负字体大小问题
- swiftui - 在没有 NavigationView Swift UI 的情况下正确使用 NavigationLink
- azure-devops - 如果已通过 terraform 存在,请避免创建新的 azure key vault 机密版本
- ios - Xamarin iOS 按钮多行文本更改图像对齐方式
- python - 在另一台 PC 上运行 Selenium 项目 | Python
- python - Python Discord Bot 嵌入用户信息
- sql-server - Kedro 找不到 SQL Server 表
- java - 从 Angular 中的 MultiValueMap 获取值
- angular - 是否可以使用 ag-grid-community 从 ag-grid 复制行数据?