【发布时间】:2019-04-13 02:52:14
【问题描述】:
我想在 AWS EKS 上为从外部系统访问的多个微服务设置一个入口控制器。
通过svc1.acme.com、svc2.acme.com、...等虚拟主机名访问微服务
我用 helm chart 设置了 nginx 入口控制器:https://github.com/helm/charts/tree/master/stable/nginx-ingress
我的想法是保留一个弹性 IP 地址并通过设置变量 externalIP 将 nginx-controller 绑定到该 IP。
这样我应该可以使用稳定的通配符 DNS 条目 *.acme.com --> 54.72.43.19 访问服务
可以看到入口控制器服务获取到了externalIP,但是IP不可访问。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-ingress-controller LoadBalancer 10.100.45.119 54.72.43.19 80:32104/TCP,443:31771/TCP 1m
知道为什么吗?
更新:
我用这个命令安装了入口控制器:
helm install --name ingress -f values.yaml stable/nginx-ingress
这里是值的要点,唯一改变默认值的是
externalIPs: ["54.72.43.19"]
https://gist.github.com/christianwoehrle/3b136023b1e0085b028a67ca6a0959b7
【问题讨论】:
-
您还采取了哪些其他步骤来配置该入口控制器?
-
我可能完全走错了路。我读过 aws elb 不能有静态 IP 地址。也许我必须忍受动态 IP 地址并用 dns 解决这个问题。
标签: amazon-web-services kubernetes amazon-eks nginx-ingress