我正在kubernetes
上试验aws
群集。
在一天结束时,我想公开2个网址:
production.somesite.com
staging.somesite.com
当曝光 1 网址时,事情(至少在云端环境中)似乎很容易。
您使服务LoadBalancer
类型 - > aws
规定ELB - >您为ELB的A
名称指定了whatever.somesite.com
类型别名记录(例如dns
),并且您可以通过您喜欢的主机名公开您的服务。
我假设一个简单的(我认为不是最佳实践)方式来揭示 2 ELB。
Ingress
是(好的)替代品吗?
如果是这样,我应创建的Route53
记录是什么?
对于重要的事情(如果这可能是Ingress
的交易破坏者):
production.somesite.com
将公开可用staging.somesite.com
将有限制性访问答案 0 :(得分:2)
Ingress肯定是一种可能的解决方案。
您需要在群集中部署Ingress controller
(例如https://github.com/kubernetes/ingress-nginx),而不是像之前那样使用Service
类型LoadBalancer
公开它。
在route53
中,您需要将您希望由入口控制器提供的任何域名指向ELB的名称,就像您之前一样。
您需要做的最后一件事是为您希望入口控制器知道的每个域创建一个Ingress
资源(更多相关内容:https://kubernetes.io/docs/concepts/services-networking/ingress/)。
话虽这么说,如果您计划在群集中只有2个公共URL,我会使用2个ELB。入口控制器是在集群中维护/监控的另一个组件,因此在评估权衡时要考虑到这一点。