如何使用ingress控制器创建指向同一Kubernetes服务的多个子域



我们有一个Saas应用程序,可以为其创建多个订阅。每当创建新的订阅时,我们都需要创建一个新的别名路由,该路由具有到同一应用程序的订阅名称。

示例:

应用程序域:bookstore.oraorganization.com

订阅名称:白银计划

现在需要创建一个新的别名路由silver plan bookstore.oraorganization.com">

当前方法:我们正在为每个应用程序创建一个入口资源,如下面的yaml文件中所述

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: bookstore
annotations:
...
spec:
tls:
- hosts:
- bookstore.oraganization.com
secretName: 
rules:
- host: bookstore.oraganization.com
http:
paths:
- path: /
backend:
serviceName: bookstore-service
servicePort: 8080
- host: silver-plan-bookstore.oraganization.com  <--- this alias route is created using java client library at runtime when subscription is created
http:
paths:
- path: /
backend:
serviceName: bookstore-service
servicePort: 8080

每当为应用程序创建新的订阅时,我们都会使用Kubernetes java客户端在运行时创建别名路由。

问题:使用我们当前的方法,每当我们升级包含入口资源定义的应用程序helm图表时,使用java客户端库创建的所有别名路由都会被删除或丢弃。

我需要你的帮助来了解我目前的方法是否正确,或者什么是更好的,或者用其他方式来实现这一要求。

谢谢。

记录

*.organization.com

入口。yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: bookstore
annotations:
...
spec:
tls:
- hosts:
- "*.organization.com"
secretName: <secret>
rules:
- host: "*.organization.com"
http:
paths:
- path: /
backend:
serviceName: bookstore-service
servicePort: 8080

最新更新