我有一个EKS集群,它具有
ingress-nginx
控制器已部署。
我使用nginx代理外部服务,但希望部署一个Ingress对象来处理跨多个主机的路由。然而,上游vhost似乎只能使用一个完全限定的主机名。
apiVersion: v1
kind: Service
metadata:
name: httpbin-foobar
namespace: default
labels:
app.kubernetes.io/name: httpbin-svc
app.kubernetes.io/part-of: ingress-nginx
spec:
externalName: httpbin.upstream.example.com
type: ExternalName
---
apiVersion: v1
kind: Service
metadata:
name: httpbin2-foobar
namespace: default
labels:
app.kubernetes.io/name: httpbin2-svc
app.kubernetes.io/part-of: ingress-nginx
spec:
externalName: httpbin2.upstream.example.com
type: ExternalName
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress-tls
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: '/'
nginx.ingress.kubernetes.io/upstream-vhost: 'httpbin.upstream.example.com'
nginx.ingress.kubernetes.io/backend-protocol: https
nginx.ingress.kubernetes.io/ssl-redirect: 'true'
nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
spec:
ingressClassName: nginx
tls:
- hosts:
- '*.downstream.example.com'
secretName: downstream-cert
rules:
- host: 'httpbin.downstream.example.com'
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: httpbin-foobar
port:
number: 443
- host: 'httpbin2.downstream.example.com'
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: httpbin2-foobar
port:
number: 443
上面的示例适用于这两条路线,但它们都被路由到
httpbin.upstream.example.com
由于静电
upstream-vhost
我希望有办法让它匹配
*.downstream.example.com
,然后我可以在Ingress中自由添加新的主机规则,并将它们路由到正确的位置。
如果不可能,那没关系,因为我只需要创建一个新的
Ingress
每个路线,但理想情况下,我可以把它们都挤成一个Ingress。