我正在开发一个将在Kubernetes运行的SaaS应用程序。我们使用了一个将所有组件部署到集群中的Helm图表(为了简单起见,我们假设它是一个前端服务、一个后端和一个数据库)。应用程序架构是多租户的(我们有每个服务的一个实例,由所有租户共享),我们希望保持这种方式。我目前正在苦苦思索并想征求建议/最佳实践的是,如何为租户自动提供自定义子域?
注:由于这是一个更多的理论问题,我会给你一些Kubernetes工程师的观点,我把你的问题分块,以方便理解。
问题1:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: <ingress-name>
spec:
rules:
- host: client1.exampleapp.com
http:
paths:
- path: /client1
backend:
serviceName: <main-service>
servicePort: <main-service-port>
- host: client2.exampleapp.com
http:
paths:
- path: /client2
backend:
serviceName: <main-service>
servicePort: <main-service-port>
kubectl patch ingress demo-ingress --type "json" -p '[{"op":"add","path":"/spec/rules/-","value":{"host":"client3.exampleapp.com","http":{"paths":[{"path":"/client3","backend":{"serviceName":"main-service","servicePort":80}}]}}}]'
PoC:
$ kubectl get ingress
NAME HOSTS ADDRESS PORTS AGE
demo-ingress client1.exampleapp.com,client2.exampleapp.com 192.168.39.39 80 15m
$ kubectl patch ingress demo-ingress --type "json" -p '[{"op":"add","path":"/spec/rules/-","value":{"host":"client3.exampleapp.com","http":{"paths":[{"path":"/client3","backend":{"serviceName":"main-service","servicePort":80}}]}}}]'
ingress.extensions/demo-ingress patched
$ kubectl describe ingress demo-ingress
Rules:
Host Path Backends
---- ---- --------
client1.exampleapp.com
/client1 main-service:80 (<none>)
client2.exampleapp.com
/client2 main-service:80 (<none>)
client3.exampleapp.com
/client3 main-service:80 (<none>)
此规则将从子域传入的流量重定向到主应用程序内的子路径。
以上是我的2美分给你的问题,希望对你有所帮助!
以下是每个部署的潜在工作流: 创建feature-api-deployment.yml 创建feature-api-service.yml 使用新的子域规则更新ingress.yml:指定 但是枚举和维护所有的子域->服务映射将会因为分解部署而变得混乱,并且会创建大量的GCE后端(默认配额是5...)所以不太理想。
我正在尝试设置K8s部署,ingress的控制器可以将服务定义为子域。i、 e.
本文向大家介绍kubernetes作用领域总结,包括了kubernetes作用领域总结的使用技巧和注意事项,需要的朋友参考一下 kubernetes在容器编排大战中由于应用的可移植性以及支持混合云/多云部署方式上的灵活性。加上开放可扩展的理念,使得周边社区非常活跃。从既有调研结果看,kubernetes已成为容器编排领域的标准。但是它并不成熟,很多方面都大有可为,下面就是列举了一些方面: 1.集群
问题内容: 我正在一个具有多个子域的站点上,其中一些应该具有自己的会话。 我想我已经解决了,但是注意到了一些我不理解的关于cookie处理的信息。我在文档中看不到有任何解释它的内容,因此我想我可以看看这里是否有人对此问题有所了解。 如果我只是这样做: 我最终得到了这样的会话cookie: subdomain.example.net 但是,如果我尝试自己设置Cookie域,无论是 或喜欢 我最终获得
主要内容:示例子域是域名的扩展名,可以转发到URL或指向主机帐户或不同服务器中的IP地址和目录。 子域功能与主域名分开。 我们可以使用子域创建网站的区域。 示例 可以在网站上创建一个名为“移动端”的博客子域,例如:除了已经存在的 www.yiibai.com/m 之外,还可以通过URL - http://m.yiibai.com 访问该移动端网站。 理论上,我们可以为每个域名添加无限的子域名。 也可以添加多个子