【发布时间】:2020-09-16 03:24:55
【问题描述】:
我有两个入口控制器(用于公共/内部流量),我希望所有端点都使用公共入口,但 /metrics 应该是内部的,都使用同一主机。
例如
example.com/ -> public ingress
example.com/metrics -> internal ingress
这是我尝试过的:
内部入口
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-metrics-ingress
annotations:
kubernetes.io/ingress.class: ingress-internal
spec:
rules:
- host: example.com
http:
paths:
- path: /metrics
backend:
serviceName: example-servicename
servicePort: 80
和公共入口
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: example.com
http:
paths:
- path:
backend:
serviceName: example-servicename
servicePort: 80
当我访问 example.com/metrics 时,内部入口当前被忽略(它使用公共入口)。
如果我将内部入口更改为使用与公共入口控制器相同的入口控制器并将服务端口更改为 81(作为示例),则会提供错误(这是预期的),这表明两个不同的入口是正在使用。但是,一旦我使用两个不同的入口控制器,就不会选择一个入口的规则。
如何配置我的入口以达到我想要的结果?
【问题讨论】:
标签: kubernetes kubernetes-ingress nginx-ingress