目前我有一个应用程序(myapp
),它可以作为在“原始”(Ubuntu)VM上运行的Java Web应用程序进行部署。在生产中,在任何给定时间内基本上有5-10个虚拟机运行,所有负载均衡在nginx负载平衡器之后。每个虚拟机由Chef管理,它会注入正确的env变量,并为应用程序提供对生产有意义的运行时参数。再来一次:通过nginx进行负载均衡,并通过Chef进行配置。Kubernetes API用于供应豆荚即服务?
我现在对将来的工作负载进行容器化,并将此应用移植到Docker/Kubernetes中感兴趣。 我正在尝试查看Kubernetes提供的哪些功能可以取代我的应用对nginx和Chef的依赖。
所以我的关注:
- 是否库贝代理(或任何其他Kubernetes工具)提供子域或以其他方式-loadbalanced的网址,可以负载平衡到任意数量的荚副本。换句话说,如果我将新集装箱化的应用程序/映像“推送”到Kubernetes API,那么Kubernetes是否可以使图像可用,例如10个副本副本均在
myapp.example.com
之后均衡负载均衡?如果不是Kubernetes和网络软件(DNS/DHCP)之间的集成是什么? - Kubernetes(比如说,通过
etc
?)提供任何类型的键值basec配置吗?将命令发送到Kubernetes API并给它标签,如myapp:nonprod
或myapp:prod
,并让Kubernetes将正确的KV对“注入”到正在运行的容器中将会很好。例如,在“nonprod”环境中,应用程序可以连接到一个名为mydb-nonprod.example.com
的MySQL数据库,但它可以连接到RDS集群。或者其他的东西。 - Kubernetes是否提供可替代Consul/ZooKeeper功能的服务注册表?
感谢@brendan(+1)我欣赏坚实的反馈。如果你不介意的话,快速跟进一下:关于KV对,你提到“*创建时**你可以......”,这是否意味着一旦创建了一个pod /服务,它的KV对是不可变的?这将成为一个问题,因为应用程序的演变,需要新的环境特定的配置......想法?再次感谢! – smeeb
另外一般来说,服务似乎不需要像[注册机构](https://github.com/gliderlabs/registrator)这样的工具。你能想到为什么有人需要注册器在内部(或以某种方式)运行Kubernetes集群的任何原因吗? – smeeb