ws上的kubernetes:暴露多个域名(ingress vs ELB)

时间:2018-01-10 12:40:20

标签: amazon-web-services networking kubernetes amazon-route53

我正在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将有限制性访问

1 个答案:

答案 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。入口控制器是在集群中维护/监控的另一个组件,因此在评估权衡时要考虑到这一点。