行业新趋势 - Kubernetes 已经成为部署分布式程序的标准做法
在 Kubernetes 之前,软件行业没有统一标准可以在分布式系统中编排应用的节点。基本上,大公司诸如 Google, M$, Amazon 等都已经在使用 Kubernetes 部署应用了。本文讨论了为什么会是 K8S, 以及程序员该如何应对。
- 像 Docker 成为打包的标准,Kubernetes 成为了分布式平台部署的标准。Kubernetes 基于容器的概念继续封装,解决诸如以下这样的问题:容器间怎么通信?容器怎么扩展?容器怎么分派流量?同时期有 Mesos,Swarm,甚至有人只用 Puppet / Chef 这些工具来编排容器。在 2016 年底,Kubernetes 差不多成为这个领域的赢家,差不多主流公司都相继吃进 Kubernetes 这套技术。
- 容器编排的需求:部署调度,资源管理(内存,CPU,GPU,硬盘,IP,端口),服务管理(打标签,依赖管理,负载均衡,健康检查)。这套需求也是大家在用 Docker 的过程中慢慢摸索整理出来的。
- Kubernetes 让多云平台同时部署变得简单,你的应用可以不用钉死在一个平台里面。有的公司甚至多云平台上部署不同的组件。
- Helm 是一款分布式的系统包管理工具,可以用它安装多节点的应用。就假设你写了一个 Zendesk 的企业版,如果你让客户很容易就在他们的云上安装,那能让客户省很多钱。
- Kubernetes 让应用在分布式系统上分发部署变得容易,但一个分布式应用依然是复杂的。好在多年的研究,基本写法也慢慢成熟,像竞争问题,要么加锁,要么选举可以解决。相信 Kubernetes 会是值得大家好好学习的一个工具。