我想使用相同的主机名,比方说example.com,在不同的名称空间(即monitoring和myapp )中运行多个In宿资源。我在使用Kubernetes nginx入口控制器。
haproxy-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: haproxy-ingress
namespace: myapp
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
tls:
- hosts:
# fill in host here
- example.com
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: haproxy
port:
number: 80grafana-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grafana-ingress
namespace: monitoring
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
tls:
- hosts:
- example.com
rules:
- host: example.com
http:
paths:
# only match /grafana and paths under /grafana/
- path: /grafana(/|$)(.*)
pathType: Prefix
backend:
service:
name: grafana
port:
number: 3000当我执行curl example.com时,它将我重定向到运行在命名空间one中的部署(如预期的那样),但当我执行curl example.com/grafana时,它仍然将我重定向到命名空间1部署。
请帮帮忙。
发布于 2021-03-26 15:21:38
是的是可能的。
在你的案子中可能有两个问题。
一个是你不需要格莱格路进入地堑。简单的/grafana路径在路径类型Prefix中很好,就像路径类型Prefix一样,任何/grafana/...都将被重定向关联服务。因此,清单文件将是:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grafana-ingress
namespace: monitoring
spec:
tls:
- hosts:
- example.com
rules:
- host: example.com
http:
paths:
- path: /grafana
pathType: Prefix
backend:
service:
name: grafana
port:
number: 3000第二个问题可能是相关的服务或部署可能不是在同一个名称空间monitoring下。请确保grafana所需的部署/服务/机密或其他资源保持在相同的名称空间monitoring下。
https://stackoverflow.com/questions/66818476
复制相似问题