问题导读: 1.什么是Kubernetes? 2.Kubernetes有什么特性? 3.能否快速创建容器,你认为包含哪些因素? 最近一段时间,微软在容器技术领域动作频频。微软开放技术公司先是于6月9日在DockerCon上 宣布支持在Microsoft Azure虚拟机上部署Docker,又在7月10日 宣布与Google和Docker开展合作,将 Kubernetes和 libswarm引入Azure。8月28日,它兑现承诺, 宣布开发者已经可以在Azure上使用Kubernetes管理Docker容器。 Kubernetes是一个开源的、用Go语言开发的容器集群管理工具,其理念和架构体现了谷歌多年来设计和构建大规模集群管理系统的经验。它主要包含如下特性: - 创建容器,然后发布到Azure存储
- 使用Azure存储或者DockerHub上的容器镜像部署Azure集群
- 配置Azure集群
- 在现有集群上更新Kubernetes应用程序
- 取消Azure集群部署
这些特性实现了复杂应用程序集群的部署和管理,但要做到这一点,还需要理解Kubernetes中引入的一些概念: - 容器:一个可移植的轻量级运行时环境。
- Master:管理一个或多个Minion,提供应用程序的整体视图。
- Minion:一台虚拟机,用于运行Docker容器及终端用户工作负载。一个Minion运行一个或多个Pod。
- Pod:运行在单个Minion上的一个单独的应用程序或一个应用程序的一部分。
- 标签:Pod用标签进行组织。每个Pod具备一个key/value键值映射的标签。
- 复制控制器:管理失败和扩展,确保数据中心在任何时间都可以提供一定数量的Pod部署。
在宣布Azure支持Kubernetes的当天,微软开放科技还在 GitHub上发布了Kubernetes Visualizer的源代码。这是一个用Node.js编写的Web应用程序,用于监控Kubernetes在Azure上管理Docker时的行为,将上述概念直观地展示出来,如下图所示:
在Kubernetes Visualizer中,用户输入名称和副本数量后,点击“创建”按钮就可以更新JSON“Pod模板”。该模板定义了与容器相关联的Pod,每个容器中应该运行的镜像,以及为外界提供服务所需要的端口映射。由于Visualizer的目的是帮助理解Kubernetes,所以用户可以点击“Pod源代码”和“RC源代码”对自动生成的Pod模板进行编辑。另外,Visualizer会根据Pod标签中的名称为其设定颜色,每个名称不同的Pod都会有一个不同的颜色。 在摆弄Kubernetes和Docker的过程中,Azure团队发现,Docker会缓存Pod创建过程,从而加速容器重复创建。此外,他们还对集群进行了压力测试,发现Kubernetes一次可以很好地处理副本数量为30到50的创建请求,而且副本数量可以增加到200。 要了解更多信息,可以观看该工具的 演示视频,或者从 GitHub上下载源代码并在自己的Azure集群上运行它。
感谢郭蕾对本文的审校。
|