Kubernetes 是否已经跨过鸿沟?

  • Manuel Pais
  • 张卫滨

2018 年 3 月 20 日

话题:DevOps语言 & 开发Kubernetes

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Ian CrosbyContainer Solutions的高级工程师,在本年的QCon 伦敦会议上,他尝试回答了Kubernetes 是否已经跨越了鸿沟,从早期采用者阶段(early adopters)步入了早期大众(early majority)阶段。

基于现实中实际参与的来自多个组织的样例,他认为 Kubernetes 确实已经接近主流采用阶段了,因为企业级领域所面临的遗留挑战(即高度安全的环境、支持 Windows、对有状态负载更好的支持以及与遗留软件和混合云的集成)正在被社区所解决。正如 Crosby 所说,“问题不在于 Kubernetes 是否能够跨过鸿沟,而在于何时跨过鸿沟”。

理想的使用场景就像Fashiontrade,这是一个 100% 基于云且微服务驱动的系统,在这里 Kubernetes 提供了多项收益,包括以较低的成本减少运维的工作负荷(通过原生提供容错、自动扩展和服务发现功能来实现),Crosby 随着时间的推移意识到,这样的场景只是例外并不是常态。

在其他的场景中,我们最初可能会觉得某个系统非常适合 Kubernetes,但是特定的问题会因为平台当前的成熟度而浮现,这会给技术的采用带来风险。Crosby 引用了student.com的例子,这是一个完全基于云的系统,为了支持其目标市场,该系统运行在两个不同的 AWS region 上,即新加坡和北京。起初,这看上去似乎就是在每个 region 运行一个集群,然后将这两个集群使用联邦(federation)的方式联合起来就可以了。但是,在中国无法访问来自 Google 的传入流量,所以在 AWS 北京 region 中安装 Kubernetes 就是一个挑战了,因为有些组件甚至无法下载。

要修正这个安装问题需要搭建镜像,以便于下载组件,并在北京 region 中通过 Terraform 和 Ansible 脚本来自定义 Kubernetes 部署。另外,社区围绕 Kubernetes 最流行安装工具之一kops添加了一个readme 文件,介绍如何在 AWS China 进行安装,这也凸显了在企业中采用开源软件具有一定的先瞻性是很重要的。

跨多个亚洲云 region 部署和运行 Kubernetes(来自:Ian Crosby)

第三个也是最具有挑战性的现实样例是 Ericsson 迁移至 Kubernetes 原生模型,它们要交付一个直接由客户端自己运行的应用。借助Helm charts(这是一个开源的包管理解决方案,能够通过一个简单的命令行安装和更新 Kubernetes 原生应用)的帮助,Ericsson 能够打包他们的软件,并让客户端使用一个命令行毫无痛苦地进行升级。再加上 Kubernetes 原生的滚动部署能够让客户端实现零停机和透明升级。这大幅减少了客户端运行旧版本软件的数量(并且减少了对旧版本的支持),这也给他们带来了从 Kubernetes 的运维特性中受益的机会。

按照 Crosby 的说法,这是一个交付企业级软件的新模式,借助该模式能够为客户端提供所有权并且能够快速升级,这是 Kubernetes 带来潜在改变的实际例证。

如果是完全从头采用 Kubernetes 的话,作为开始,Crosby 推荐首先从 CI/CD 管道中使用容器,然后在开发和测试环境中,将 Kubernetes 集群作为底层的基础设施,并将 Kubernetes 用到一个非关键性的生产级产品中,在这个过程中增加对它的熟悉程度。每个人都准备就绪之后,特定的挑战也都已经得以解决,再将其推进到更重要的系统中,在生产环境中使用也就水到渠成了。

相关演讲视频将会在未来几个月中,发布到 InfoQ 网站上。

查看英文原文:Has Kubernetes Crossed the Chasm? Ian Crosby Shares His Thoughts at QCon

DevOps语言 & 开发Kubernetes