本文已超过一年。较旧的文章可能包含过时内容。请检查页面信息自发布以来是否已变得不正确。

将 Kubernetes 支持引入 Azure Container Service

Kubernetes 项目启动近三年后,看到有超过一千人来到我的家乡西雅图参加 KubeCon,小团队和激进想法经过庞大且不断壮大的社区三年努力工作所取得的成就,令人惊叹且感到谦逊。2014 年 7 月,在 Kubernetes 公布后不到一个月,微软宣布其对 Azure 的初步支持。Kubernetes 1.4 的发布带来了对原生微软网络、负载均衡器磁盘集成的支持。 

今天,微软宣布了 Kubernetes 在 Azure 上的下一步进展:在 Azure Container Service (ACS) 中引入 Kubernetes 作为受支持的编排器。加入 ACS 团队并帮助构建这一新功能对我来说非常兴奋。将 Kubernetes 集成到 ACS 意味着只需在 Azure portal 中单击几下,或在新基于 Python 的 Azure 命令行工具中运行一个命令,您就能创建一个功能齐全的 Kubernetes 集群,该集群与您的其他 Azure 资源集成。

Kubernetes 现已在 Azure Container Service 中公开预览。社区参与一直是 Kubernetes 体验的重要组成部分。在接下来的几个月里,我希望您能加入我们,并在我们将其推广到正式发布 (general availability) 的过程中提供反馈。

本着社区精神,我们也很高兴宣布一个全新的开源项目:ACS Engine。ACS Engine 的目标是提供一个开放的、社区驱动的平台,用于开发和分享在 Azure 上编排容器的最佳实践。我们在 Azure 中运行容器的所有知识都已记录在该仓库中,我们期待着在与社区一起前进的同时改进和扩展它。未来,ACS Engine 中的模板将成为通过 ACS API 部署集群的基础,因此社区驱动的改进、功能等将有自然的方式进入 Azure Container Service。我们很高兴邀请您加入我们一起改进 ACS。在创建 ACS Engine 之前,具有 ACS API 不支持的独特需求的客户需要维护我们模板的变体。这些差异一开始很小,但随着主线模板的改进和用户对他们自己的模板进行迭代,差异逐渐变大。这些差异和漂移确实影响了用户协作的能力,因为他们的模板各不相同。如果没有共享和协作的能力,就难以形成社区,因为每个用户都被隔离在自己的变体中。

为了解决这个问题,ACS Engine 的核心是一个用 Go 构建的模板处理器,它使您能够动态地将不同的配置片段组合在一起,形成一个最终模板,用于构建您的集群。因此,每个用户都可以混合匹配这些片段来构建适合他们需求的最终容器集群。同时,每个片段都可以由社区协作构建和维护。我们一直在与一些客户对这种方法进行 Beta 测试,到目前为止收到的反馈非常积极。

除了帮助您在 Azure 上运行容器的服务之外,我认为改进开发和部署容器化应用到 Kubernetes 的体验也至关重要。为此,我最近做了一些工作,为非常优秀的开源工具 Visual Studio Code 构建一个 Kubernetes 扩展。这个 Kubernetes 扩展使您能够快速地将正在编辑的 JSON 或 YAML 文件部署到 Kubernetes 集群。此外,它还使您能够将现有的 Kubernetes 对象导入到 Code 中以便轻松编辑。最后,它实现了正在运行的容器与您正在开发的源代码之间的同步,以便轻松调试在生产环境中遇到的问题。

但实际上,一个演示胜过千言万语,所以请看看这个视频

当然,就像 Kubernetes 中的其他一切一样,它也是开源的,我期待着与社区一起进一步完善它。再次感谢大家,我期待今天在 OpenShift Gathering 以及明天和后天在 KubeCon 期间的微软 Azure 展位见到各位。欢迎来到西雅图!