单个 K8s 集群和 Nginx 控制器上的多个环境
Multiple environment on single K8s cluster and Nginx controller
我们希望拥有 1 个 k8s 集群,并使每个开发人员能够通过 URI“/developerName”分隔开发人员的环境来部署他们的环境,以及一个 NS,其中应用程序的每个部署都将部署在不同的 NS 上。
该应用程序是基于 tomcat 的遗留 Web 应用程序。
我正在寻找一种好的方法,我可以根据 URL 将每个开发人员的流量路由到不同的部署。
有 1 个限制,应用程序只需要 URL 中的应用程序名称。
即 example.com/username/appname 无法正常工作,因为该应用只需要 example.com/appname
我已成功部署 Nginx 入口控制器,并在我未在路径中使用“/developername”时检查它是否正常工作
您可以使用入口资源。使用不同的主机名配置每个环境:
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
上设置通配符域。因此,您不必每次都添加子域并构建环境。如果不需要 https
,请跳过 tls
部分。
我们希望拥有 1 个 k8s 集群,并使每个开发人员能够通过 URI“/developerName”分隔开发人员的环境来部署他们的环境,以及一个 NS,其中应用程序的每个部署都将部署在不同的 NS 上。
该应用程序是基于 tomcat 的遗留 Web 应用程序。
我正在寻找一种好的方法,我可以根据 URL 将每个开发人员的流量路由到不同的部署。
有 1 个限制,应用程序只需要 URL 中的应用程序名称。 即 example.com/username/appname 无法正常工作,因为该应用只需要 example.com/appname
我已成功部署 Nginx 入口控制器,并在我未在路径中使用“/developername”时检查它是否正常工作
您可以使用入口资源。使用不同的主机名配置每个环境:
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
上设置通配符域。因此,您不必每次都添加子域并构建环境。如果不需要 https
,请跳过 tls
部分。