【发布时间】:2015-12-25 04:40:29
【问题描述】:
目前我有一个应用程序 (myapp),它部署为在“原始”(Ubuntu) VM 上运行的 Java Web 应用程序。在生产环境中,在任何给定时间基本上都有 5 到 10 个虚拟机在运行,所有虚拟机都在 nginx 负载均衡器后面进行负载均衡。每个 VM 都由 Chef 管理,Chef 注入正确的环境变量并为应用程序提供对生产有意义的运行时参数。再说一遍:通过 nginx 进行负载平衡,通过 Chef 进行配置。
我现在有兴趣将我未来的工作负载容器化,并将这个应用程序移植到 Docker/Kubernetes。 我正在尝试了解 Kubernetes 提供的哪些功能可以取代我的应用对 nginx 和 Chef 的依赖。
所以我的担忧:
- Kube-Proxy(或任何其他 Kubernetes 工具)是否提供子域或其他负载平衡 URL,可以对任意数量的 pod 副本进行负载平衡。换句话说,如果我将新容器化的应用程序/映像“推送”到 Kubernetes API,Kubernetes 是否有办法使映像可用,例如,10 个 pod 副本都在
myapp.example.com后面进行负载平衡?如果不是,可以在 Kubernetes 和网络软件 (DNS/DHCP) 之间进行哪些集成? - Kubernetes(比如说,通过
etc?)是否提供任何类型的键值基配置?最好向 Kubernetes API 发送一个命令,并给它贴上myapp:nonprod或myapp:prod之类的标签,然后让 Kubernetes 将正确的 KV 对“注入”到正在运行的容器中。例如,也许在“nonprod”环境中,应用程序连接到名为mydb-nonprod.example.com的 MySQL 数据库,但在 prod 中它连接到 RDS 集群。什么的。 - Kubernetes 是否提供类似服务注册表的功能来替代 Consul/ZooKeeper?
【问题讨论】:
标签: load-balancing kubernetes configuration-management