写点什么

微软宣布 Microsoft Azure 支持 Kubernetes,并发布可视化工具 Kubernetes Visualizer

2014 年 9 月 02 日

最近一段时间,微软在容器技术领域动作频频。微软开放技术公司先是于 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 集群上运行它。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 9 月 02 日 00:501892
用户头像

发布了 256 篇内容, 共 67.7 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

Python中的@staticmethod和@classmethod的区别

BigYoung

Python classmethod staticmethod

kubernetes集群安装(二进制)

小小文

Kubernetes 容器 容器技术

Linux 进程必知必会

cxuan

Linux 操作系统

关于计划的思考

zhongzhq

浅析 VO、DTO、DO、PO 的概念、区别和用处!

Java小咖秀

学习 设计模式 模型 经验分享

工厂方法模式

Leetao

Python 设计模式 工厂方法模式

推荐一款Python开源库,技术人必备的造数据神器!

狂师

Python 开源 自动化 开发工具 开发数据

带你解析MySQL binlog

Simon

MySQL Binlog

mac vmware centos7 设置静态IP

愤毛阿青

network vmware Centos 7

漫画 | 架构设计中的那些事

码农神说

架构设计 架构师 漫画编程

typora设置图片自动上传,实现快速发文章

诸葛小猿

Typora PicGo gitee 上传图片

​区块链技术的重要性

CECBC区块链专委会

Tomcat8.5源码构建

知春秋

tomcat tomcat构建 tomcat源码解读 tomcat剖析

Scala中如何优雅地实现break操作

吴慧民

scala

猿灯塔:spring Boot Starter开发及源码刨析(二)

猿灯塔

Java 猿灯塔 源码刨析

开发者必备——IDEA配置清单

Noneplus

配置 IDEA

Redis进阶篇三——主从复制

多选参数

redis redis高可用 redis6.0.0 Redis项目

Node.js与二进制数据流

自然醒

Java node.js 前端 二进制

一文看懂 OAuth2

pingan8787

Java 前端 Web oauth2.0

重学 Java 设计模式:实战访问者模式「模拟家长与校长,对学生和老师的不同视角信息的访问场景」

小傅哥

设计模式 小傅哥 重构 代码优化 访问者模式

Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车

newbe36524

Docker Reactive ASP.NET Core

阿里四面你都知道吗?

java金融

Java 程序员 互联网 阿里 简历

聊聊Spring的IOC以及JVM的类加载

小隐乐乐

不是完成你学习的 KPI ,而是要形成指导你行动的 OKR

非著名程序员

学习 程序员 提升认知 知识管理 程序员成长

Rust是如何保障内存安全的

博文视点Broadview

读书笔记 rust

一些思考

张健

架构师训练营第六周总结

Melo

极客大学架构师训练营

数据库分片

Arthur

JVM中栈的frames详解

程序那些事

JVM 堆栈 性能调优 JIT GC

字节跳动面试经验分享,已拿 Offer!

伍陆柒

Java 面试 大厂

Python类中的__new__和__init__的区别

BigYoung

Python __init__ __new__

海量并发场景下的缓存架构设计

海量并发场景下的缓存架构设计

微软宣布Microsoft Azure支持Kubernetes,并发布可视化工具Kubernetes Visualizer-InfoQ