Kubernetes-入口-被更一般的规则捕获
我正在尝试为在我的microk8s集群中运行的服务(Kibana)设置入口规则,但我遇到了一些问题 建立的第一条规则是Kubernetes-入口-被更一般的规则捕获,kubernetes,kubernetes-ingress,nginx-ingress,microk8s,Kubernetes,Kubernetes Ingress,Nginx Ingress,Microk8s,我正在尝试为在我的microk8s集群中运行的服务(Kibana)设置入口规则,但我遇到了一些问题 建立的第一条规则是 Name: web-ingress Namespace: default Address: 127.0.0.1 Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found
Name: web-ingress
Namespace: default
Address: 127.0.0.1
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS:
k8s-ingress-tls terminates web10
Rules:
Host Path Backends
---- ---- --------
*
/ web-service:8080 (10.1.72.26:8080,10.1.72.27:8080)
Annotations: nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: false
Events: <none>
名称:web入口
名称空间:默认值
地址:127.0.0.1
默认后端:默认http后端:80()
TLS:
k8s入口tls终止web10
规则:
主机路径后端
---- ---- --------
*
/web服务:8080(10.1.72.26:8080,10.1.72.27:8080)
注释:nginx.ingres.kubernetes.io/rewrite-target:/
nginx.ingres.kubernetes.io/ssl-redirect:false
活动:
我正在尝试将Kibana服务设置为在路径/Kibana上获得服务
Name: kibana
Namespace: default
Address: 127.0.0.1
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS:
k8s-ingress-tls terminates web10
Rules:
Host Path Backends
---- ---- --------
*
/kibana(/|$)(.*) kibana:5601 (10.1.72.39:5601)
Annotations: nginx.ingress.kubernetes.io/ssl-redirect: false
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CREATE 17m nginx-ingress-controller Ingress default/kibana
Normal UPDATE 17m nginx-ingress-controller Ingress default/kibana
名称:基巴纳
名称空间:默认值
地址:127.0.0.1
默认后端:默认http后端:80()
TLS:
k8s入口tls终止web10
规则:
主机路径后端
---- ---- --------
*
/基巴纳(/|$)(*)基巴纳:5601(10.1.72.39:5601)
注释:nginx.ingres.kubernetes.io/ssl-redirect:false
活动:
从消息中键入原因年龄
---- ------ ---- ---- -------
正常创建1700万nginx入口控制器入口默认/kibana
正常更新17m nginx入口控制器入口默认/kibana
我的问题是Kibana做的第一件事是返回一个302重定向到主机/login?next=%2F,该重定向由第一条入口规则解决,因为现在我丢失了/Kibana路径
我尝试添加nginx.ingres.kubernetes.io/rewrite-target:/kibana/$2
,但重定向看起来就像host/login?next=%2Fkibana%2F
,这根本不是我想要的
如果我删除第一条规则,我只会在Kibana重定向到主机/登录时得到404?next=%2F将以下注释添加到
Kibana
ingress,以便nginx ingress使用正则表达式解释/Kibana(/|$)(.*)
路径:
nginx.ingress.kubernetes.io/use-regex: "true"
其他细节:
要让kibana知道它在/kibana
路径上运行,请将以下env变量添加到kibana pod/部署中:
- name: SERVER_BASEPATH
value: /kibana
它使用正则表达式解释它,我需要重写路径吗?Kibana本身不在主机:port/Kibana上,它在主机:port上。我遇到的问题是,它被重定向到主机/login?next=%2F,并且我丢失了/kibana部分,因此它通过第一个入口规则得到解决。希望我解释得很好,我会把它添加到主帖子中。@lovrodoe,不需要重写,你只需要告诉kibana它在
/kibana
路径上运行,方法是在我的答案中添加我添加的环境变量(环境变量只针对kibana,其他应用可能需要不同的环境变量或设置).更改服务器基本路径时,Kibana出现所有问题后,必须进行重写。我使用的设置是nginx.ingres.kubernetes.io/rewrite-target://$2 break代码>在my.yml中,现在一切正常。谢谢你,卢克曼。