首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为具有唯一域名的多个网站实现K8s集群

为具有唯一域名的多个网站实现K8s集群
EN

Stack Overflow用户
提问于 2019-03-19 14:25:39
回答 2查看 2.3K关注 0票数 4

新的K8s和面临的实现困境。我需要为多个NGINX网站部署一个K8s集群,每个网站都有自己的域。托管的网站数量可以定期增加/减少,在任何特定时间都会部署数百/数千个网站。为了保持问题的简单性,我排除了PHP部分。

场景1- vhost和SSL在入口的终止

  • 为每个新网站创建一个包含新服务和部署(NGINX pods)的新名称空间
  • 在NGINX website上设置虚拟主机,并根据主机名将其路由到负责网站的服务

优点:

  • 每个网站的Pod/容器级隔离

可能是个骗子?

  • 每个网站都需要一个新的服务和部署。这可能导致数百个或数千个服务/部署。

场景2-级的vhost和SSL终端

  • 创建一个单一的NGINX服务和一个部署(通过pods运行单个NGINX容器)
  • 每个荚都可以访问共享的configmap和tls秘密,其中包含每个虚拟主机的NGINX配置和tls证书。
  • 入口路线所有的交通到NGINX服务
  • 运行NGINX的pod为所需的虚拟主机提供文档根目录中的网站内容。

优点:

  • 单一服务和部署
  • 状态小豆荚

缺点:

  • 每个荚中的NGINX实例都需要重新加载一个新的vhost配置/ssl证书,从而导致管理上的恶梦。

以上哪一种方案更适合?对于给定的问题,还有其他可能的方案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-19 14:51:32

如果您想避免拥有数百个服务,您可以设置一个nginx入口控制器 (集群中有一个入口类),然后使用单个入口控制器创建多个英格尔斯。(如果您愿意的话,它也可以是一个单独的入口,具有基于主机名的路由)

该控制器基本上运行在一个具有多个荚的部署中,并且可以向上和向下扩展(例如使用HPA或/和簇自动分频器或/和VPA)。

nginx控制器负责在每次更改nginx时(没有停机时间)重新加载nginx。您还可以为每个Kubernetes Ingress设置一个SSL终止,因此,如果您有多个也可以处理的域。

希望能帮上忙!

票数 5
EN

Stack Overflow用户

发布于 2019-03-19 15:33:29

使用nginx入口控制器执行场景1。

我们使用它将外部用户路由到运行在k8s集群中的多个应用程序。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55243275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档