前言
Kubernetes 在成长,使用它的团队也在成长。早期采用者现在已经进入了自己的领域,能够基于经验和云原生生态系统的增长,以新的方式扩展 Kubernetes 的核心功能。“我们将继续扩大 Kubernetes 的使用范围,以满足业务的混合云、多云需求。” Liberty Mutual 的架构师 Eric Drobisewski 说,“展望未来,Kubernetes 提供的声明性 API 和强大的协调循环对于统一和提供更一致的方法来跨公共和私有云环境定义、管理和保护数字功能至关重要。”《财富》100强公司加速使用 Kubernetes 作为其更广泛的混合云/多云基础设施的平台,这反映了推动 Kubernetes 在各行业采用率飙升的大趋势。
另一个大趋势是:许多公司仍在起步。而在他们的云之旅的任何阶段,大多数 IT 领导者都希望在生产中运行更多的容器化应用程序 —— Kubernetes 是这样做的常见选择。“Gartner 预测,到 2022 年,超过 75% 的全球组织将在生产中运行容器化应用程序,而 2020 年这一比例还不到 30%。”红帽产品战略高级总监 Brian Gracely 说。这与红帽《2021 企业开源状态》报告一致,其中 72% 的 IT 领导者表示他们预期在组织中越来越多地使用容器。他们还几乎普遍(85%)认为 Kubernetes 是云原生应用程序策略的关键。这对 Kubernetes 的功能、用例、技能和其他领域产生了级联效应。“和任何新技术一样,存在技术成熟和用户学习曲线,”Gracely 说。考虑到这一点,有五个关键的Kubernetes 趋势需要关注。
一、Kubernetes 成为一切的平台?
Kubernetes 与容器齐头并进。这一点 2022 年也不会改变。2022 年及以后将继续发展的是团队使用基于 Kubernetes 的平台管理的应用程序类型。Gracely 说:“在早期,用户通常在内部构建自己的 Kubernetes 平台,并部署一组更简化的应用程序。但随着 Kubernetes 的稳定,使用模式已经明显成熟。” 例如,在 Kubernetes 上运行的大多数早期应用程序都是无状态的 —— 但曾经的认为 Kubernetes 对有状态不友好的观点在今天已经站不住脚了。“各种各样的应用程序在容器中运行,但我们开始看到更多的组织将其任务关键型、有状态的应用程序带到 Kubernetes。数据库、事件驱动消息传递和任务关键型应用程序都有望迁移到 Kubernetes,以利用它为所有应用程序带来的可扩展性、安全性和可移植性。”
Kubernetes 已经准备好不“仅仅”成为一个容器编排工具,但 Kubernetes 控制平面正在成为多云和混合云操作的主干。Drobisewski 说:“Kubernetes 提供的声明式 API、控制循环和健壮的基于角色的访问控制(RBAC)模型已经进入了准备就绪阶段,它可以扩展到容器编排之外,以满足许多组织的混合、多云需求。这一演变将通过扩展 Kubernetes API 机制以控制平面为中心,允许定义、管理、生命周期和安全性与 Kubernetes 运行时无关的任何资源或基础设施。” Drobisewski 还希望更多经验丰富的团队以新的方式延长 Kubernetes 的成熟度,包括 Kubernetes Operator。
Drobisewski 说:“组织将开始 DevOps 旅程的下一步,并利用 Kubernetes operator 框架。我们将看到在 Kubernetes 之上构建的许多自助服务功能的扩展超越了资源调配和生命周期管理的基本自动化,成为其服务的全自动试点模式,实现了深入的数据驱动洞察,推动事件的自动修复和自愈能力,从而允许服务可根据工作负载的需要进行动态调整。” 用户都有一个共同的愿景:可以利用容器和 Kubernete 为无状态应用程序提供好处,并为有状态工作负载实现所有这些好处。鉴于有状态应用程序在大多数业务解决方案中的核心作用,这些可靠性、可扩展性、自动化和更敏捷的开发方面的改进意义重大。对笔者来说,这曾经是,现在仍然是,一个巨大的机会。
有状态的 Kubernetes
Kubernetes 和容器基于无状态工作负载的思想,因此运行任何有状态的东西都会打破一个基本的基本假设。在谷歌,持久性存储是一个已解决的问题。他们不担心在云原生环境中运行存储。但谷歌大多不使用传统的 SQL 存储 —— 他们大多使用自己的分布式数据库和键值存储。相比之下,大多数运行有状态应用程序的公司将使用标准的关系数据库。要考虑一个新的平台,如面向有状态应用程序的 Kubernetes,这些用户需要大规模运行流行的数据库,如 PostgreSQL 或 MySQL,并保证高可用性。很明显,持久性存储仍然是一个问题。当用户使用关系数据库支持在 Kubernetes 上运行的有状态应用程序时,很大一部分仍然依赖于托管数据库服务,如 Amazon 的 RDS,或者完全在 Kubernetes 之外运行数据库。
即使是CSI 驱动程序的生产版本,用户也可能对在 Kubernetes 中部署关键应用程序犹豫不决。这些解决方案未能获得真正的 Kubernetes 原生有状态开发的许多好处和潜力。用户并没有有效地设计一种安全的方式让数据生活在短暂的节点和容器中,而是将存储从 Kubernetes 之外拉回来。这分离并重复了确保计算和数据恢复能力的任务,给数据库和应用程序性能设置了主要上限。也许最重要的是,它限制了 Kubernetes(特别是调度器)围绕工作负载效率和高可用性有效提供核心计算功能的能力。连接外部存储的节点变成了“宠物”而不是“牛”。
FinOps
特别是对于托管数据库,采取安全、简便的方式交付有状态的应用程序会带来更大的影响。成本显然是最明显的。FinOps 的崛起不出意外,云成本管理的重要性比很多人预期的要大。FinOps 最基本的功能是管理和降低云成本,这使得 RDS 等托管数据库服务成为一个明显的目标。尽管 FinOps 正在超越这一点,但领先的 FinOps 实践者正在越来越多地探索如何更有效地利用云原生环境来优化总体 IT 成本,存储成为关键要素之一。组织需要保持对其存储的完全控制。在 Kubernetes 中安装一个新的数据库现在很简单,但是 Day 2 的运维还不清楚。对正在运行的数据库和存储维护、升级、回滚等都可能非常复杂。看似直截了当的架构决策会极大地影响成本、弹性和可扩展性。在许多情况下,云存储服务和托管数据库服务是一个合适的解决方案,但需要考虑对存储控制和预先锁定的权衡和影响。
展望应用程序的可移植性
随着交叉云和云可移植性的成熟,应用程序可移植性对于任何组织与云提供商都至关重要,对 FinOps 也至关重要。存储锁定,尤其是托管数据库服务,严重影响组织在云之间移动应用程序的能力。虽然最终用户都渴望运行多云以实现弹性并使用特定于云的服务,但多云存储仍然是一个挑战。你可以交付多云有状态应用程序,可以提供在 Kubernetes 中安全驻留和运行的存储。业界迫切需要改进更好的工具,尤其是最佳实践 —— 解决方案是 Kubernetes 原生数据层,让你能够控制存储。
二、Kubernetes 和 AI/ML 成为明星组合
Kubernetes 的成熟度和处理日益复杂用例的能力可能在 AI 和机器学习中最为明显。Kubernetes 正在成为为生产中的人工智能和机器学习(AI/ML)工作负载提供服务的首选。这是一对强大的组合,将在未来几年产生巨大的业务影响。“在 Kubernetes 上运行的所有应用程序中,有一个突出的领域是 AI/ML。随着数据科学在几乎每一家公司中都扮演着关键角色,改进和增强多种应用程序的能力也在增长。从改善客户互动到利用数据做出更好的决策,再到为自动驾驶车辆建模,AI/ML 几乎影响着现代商业的方方面面。” 正如容器化,AI/ML 的巨大潜力也需要一个坚实的 IT 基础来实现,需要一种有效的方式来管理生产中的一切。“ Kubernetes 为 AI/ML 带来了完美的平台功能 —— 可伸缩性、对 GPU 的访问、工作负载可移植性等。我们已经开始看到组织在 Kubernetes 上使用 AI/ML 做了大量工作,我们预计下一代应用程序将彻底改变行业。”
三、唯一比 Kubernetes 更热的东西是 Kubernetes 人才
在可预见的未来,对 Kubernetes 技能 —— 以及一般的云原生功能 —— 的需求将会白热化。“在 Kubernetes 和云原生采用上没有放缓的迹象。” Linux 基金会培训和认证 SVP 和 GM Clyde Seepersad 说,“我希望看到更多的组织继续向云移动,并增加对微服务、无服务器和其他云原生技术的使用。最重要的是,我希望更多的组织将认识到 Kubernetes、Linux 和DevOps 之间的重要相互作用。” 是的,我们将在未来一年听到更多关于缺乏可用的、负担得起的 Kubernetes 人才的消息。各种组织将进行更协调一致的创造性努力,以建立 Kubernetes 能力和相关技能。
四、商业和托管服务将蓬勃发展
商业Kubernetes 平台,如红帽的 OpenShift,建立在开源项目之上,已经成为企业 Kubernetes 采用和使用的支柱。Gracely 说,随着越来越多的早期采用者的成功故事被讲述,其他组织自然会寻求类似的业务成果。但随后他们又遇到了第三个问题 —— 并不是每个公司都有建立运行自己平台所需内部能力的愿望或资金。“他们通常不想投资于管理和维护 Kubernetes 的运维技能。这就是托管 Kubernetes 云服务的使用迅速扩展的地方,例如 OpenShift Delicated、Red Hat OpenShift(ROSA)on AWS 和 Microsoft Azure Red Hat OpenShift(ARO)。” 在公共云中运行的托管 Kubernetes 服务的增长,以及在任何云中运行的商业平台,包括自己的数据中心,意味着每个人都有一个选择,包括不希望或不需要建立一个强大的内部团队来管理一切的组织。
Kubecost 联合创始人 Rob Faraj,预计会出现一种独立但相关的趋势,这种趋势既会影响云原生人才,也会影响商业和托管服务的增长:供应商和内部平台团队将优先考虑使开发人员能够更轻松地使用 Kubernetes 的功能,而无需解决更复杂的问题。Faraj 说:“组织需要尽一切可能去竞争以吸引开发者,而公司能够提供的关于 Kubernetes 的开发者体验管理可以 —— 并且将越来越多地 —— 成为一个关键的差异化因素。我认为,到 2022 年,我们将看到对简化基础设施扩展和围绕 Kubernetes 管理创建更利于开发的流程的巨大需求。”
五、Kubernetes 社区将继续优先重视安全
Kubernetes 内置了重要的安全功能,只要你正确调整设置。其蓬勃发展的生态系统也高度重视平台的安全性 —— OperatorHub.io 上有 29 种不同的安全应用程序,可见一斑。2022 年,企业将使用可用的工具和服务来强化其云和云原生安全战略。红帽的云和 DevSecOps 策略总监 Kirsten Newcomer 预测,我们将看到组织在部署时对应用程序进行筛选的方式发生变化。“这已经开始,Kube 本身向更简单的方法转变,称为树外控制。我们将继续看到使用 OPA Gatekeeper、Kyverno 和 Argo CD 等工具进行基于策略的部署管理的增长。此外,需要关注以前从未见过的新策略引擎。” 总的来说,预计整个社区都会继续投资 Kubernetes 安全性,特别是在简化(而不是降低)团队安全性以及通过将其嵌入到他们用来管理集群的工具中来减少预算。“Kubernetes 发行版将开始直接添加更多安全功能。这将有助于增强发行版的整体安全性,并有助于降低保护 Kubernetes 部署的成本。”