我在 kubernetes 集群上运行了 kibana,想通过子路径公开 kibana
/kibana
。这是我的 yaml 配置:
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: kb-qs
spec:
version: 8.6.2
count: 1
elasticsearchRef:
name: es-qs
config:
server:
basePath: "/kibana"
rewriteBasePath: true
publicBaseUrl: "https://localhost:5601/kibana"
http:
tls:
selfSignedCertificate:
disabled: true
podTemplate:
spec:
containers:
- name: kibana
readinessProbe:
initialDelaySeconds: 210
periodSeconds: 30
httpGet:
scheme: HTTP
path: "/kibana/login"
port: 5601
为了公开 kibana,我还启用了 nginx-ingress-controller 并创建了这个入口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-kb
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: ""
http:
paths:
- path: /kibana(/|$)(.*)
pathType: Prefix
backend:
service:
name: kb-qs-kb-http
port:
number: 5601
但是,我尝试通过
http://localhost/kibana
访问入口,它说 404 未找到。我在我的 kibana 配置中指定了子路径、就绪探测器以及我的入口。 kb-qs-kb-http 服务侦听端口 5601。那我错过了什么?
我认为你应该添加这个注释然后你可以使用
regex
.
nginx.ingress.kubernetes.io/use-regex: "true"