我们希望拥有1个k8s集群,并通过将开发人员的环境与URI“ / developerName”分开来使每个开发人员能够部署其环境,以及一个NS,其中应用程序的每次部署都将部署在不同的NS上。
该应用程序是基于旧版tomcat的网络应用程序。
我正在寻找一种好的方法,可以根据URL将每个开发人员的流量路由到不同的部署。
有1个限制,其中应用程序仅期望URL中的应用程序名称。 即example.com/username/appname无法正常运行,因为该应用仅要求example.com/appname
我已经成功部署了Nginx入口控制器,并在不使用路径中的“ / developername”时检查了它是否正常工作
答案 0 :(得分:2)
您可以使用入口资源。为每个环境配置不同的主机名:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
namespace: developer1
spec:
rules:
- host: developer1.mytestdomain.com
http:
paths:
- backend:
serviceName: my-tomcat-service
servicePort: 8080
path: /
tls:
- hosts:
- developer1.mytestdomain.com
secretName: mysslsecret
然后在*.mytestdomai.com
上设置一个通配符域。因此,您不必在每次构建环境时都添加一个子域。如果不需要tls
,则跳过https
部分。