平台团队预计其环境中的 Kubernetes 集群数量将增加。
这一点从我们最新的 Kubernetes 状态调查中报告的集群实施的超级增长以及我们在 VMware Explore 2022 中直接听到的客户反馈中可以明显地看出。在这些对话中,许多人解释说,尽管他们尚在容器化旅程的早期阶段,他们预计他们的环境在未来一两年内将成为一个大规模的多集群的群体。
因此,如果您也处于同样的位置,您是否考虑过采用 Kubernetes 管理工具的合适时间?
如果您是该场景下的系统管理员或平台工程师,您的日常工作可能是这样的:
- 您使用工单从内部团队触发基础设施请求,并手动或通过脚本添加各种工具。
- 您有一些大型集群,并使用名称空间(namespace)来隔离开发、测试或生产的工作负载,尽管它没有提供您的应用程序所预期的安全隔离或资源控制。
- 您手动管理多个云中的集群,因此需要访问多个屏幕和集群控制台才能分配一个角色绑定(role binding)。如果您需要更新该访问权限,则需要为每个集群重复此过程。
- 您没有一致的流程来备份您的集群。每个云都不同,一切都很手动。您尚未在所有环境中测试从备份恢复。
- 您没有一个良好的策略来自动配置 Kubernetes 集群,您的过程很费力且容易出错。
为了创建一致性并改善其中的一些任务,您的组织可能有一个平台工程团队,开始将几个开源工具组合在一起。这最终或能铺出一条开发团队所期望的、通往生产的一致的道路,但关键在于定义这是否是您的团队和组织值得承担的任务。
1.DIY (do-it-yourself)的优点和缺点
我们看到很多公司开始走DIY路线来构建平台并利用开源软件,因为有很多好处:
成本 – 使用免费的开源软件是一种经济实惠的解决方案,尤其适用于小型企业或无法承担昂贵商业软件的低预算组织。
定制化 – 平台可以根据您的具体需求和喜好进行定制,如果您需要具有特定流程或工作流程的高度定制解决方案,则非常有用。
控制 – 自己做事时,您可以完全控制平台,如果您有特定要求,而现成解决方案无法满足,这是至关重要的。
然而,还有相关的缺点会影响组织走向市场的时间和挫败其成功:
压力 – 构建DIY平台是耗时的,需要大量的努力,这可能意味着在集成不同工具时自己处理错误和试错。
技能 – 对于复杂的软件,您需要一定水平的技术知识才能有效地使用它。如果您内部没有这种专业知识,雇用会很昂贵。此外,如果平台的内部工作机制没有很好地记录,您可能会变得依赖于一个人或系统。
支持 – 开源软件通常没有商业软件那样的支持水平。这可能使得及时获得所需的帮助更加困难,甚至有时是不可能的。
团队必须愿意付出努力来定义需要哪些工具和开源项目,以减轻开发团队的负担。这通常是一个非常复杂和漫长的过程,因为每个平台组件的构建都有几个选择。此外,随着云原生生态系统的不断发展,保持对这些项目的最新了解是一项巨大的任务,更不用说个人对某个工具或平台的偏好了。
VMware前高级工程师Mauricio Salatino在一篇博客中提到了基于Kubernetes构建平台的挑战,从内部开发环境(IDE)开始,直到转向生产的路径,其中还包括结合一定抽象的自助式的基础设施操作方式。本博客将仅关注到生产路径,假设组织正在增加其Kubernetes集群数量,面临多云的复杂性,并努力确保安全性嵌入到其平台中。
2.通往生产的路径:我怎样才能达到目的?
正如我们之前提到的,Kubernetes管理中有许多组成部分,许多工具和决策必须共同构建一个全面的平台,以支持开发人员以简化、一致和安全的方式进入生产环境。这些组成部分必须包括以下内容:
身份和访问管理
谁有权访问什么,以及他们查看或创建资源的权限是什么?您能否将您的环境连接到集中的身份管理解决方案?您了解 Pinniped 吗?
管理环境和云提供商集成
业务将在哪里运行?您需要在不同团队和应用程序之间进行多大程度的隔离?您想为各团队启用按需请求环境吗?您将如何管理集群生命周期的运维?
策略管理
您将如何防止“吵闹的邻居”问题?您将如何控制可能部署在您的集群上的容器镜像?您知道 Open Policy Agent(OPA)Gatekeeper 吗?您是否知道Pod Security Policies(PSP)将在Kubernetes v1.25中被删除?
持续部署
当应用程序准备就绪时,您将如何部署新版本?您想实施不同的发布策略(例如蓝/绿、功能标志、金丝雀发布、A/B测试等)吗?您想实施 GitOps 吗?您是否了解 Argo CD 或 Flux CD?
基础设施即代码
您将如何促进在不同环境中的集群的一致性供应和管理?如何更轻松地跟踪更改并在需要时回滚?您了解 Terraform 吗?
安全性
您是否需要在基础架构层启用加密和传输层安全性(TLS)?这种需求适用于所有环境吗?您允许在您的环境中运行特权容器吗?
备份
您如何防止故障或人为错误?您如何确保数据受到保护并可恢复?您能轻松恢复或将工作负载移动到不同的集群吗?您了解 Velero 吗?
当您的组织了解这些要求清单以及团队的需求时,您可以在DIY方法和与供应商合作提供平台之间做出选择,以解决这些挑战中的一些问题。
3.投资Kubernetes管理工具的正确时机
在决定是否要投资于 Kubernetes 管理工具时,有一些关键因素需要考虑:
规模 – 如果您正在运行一个生产级别的 Kubernetes 服务,管理工具可以帮助您进行部署、扩展和监控。
复杂性 – 如果您的环境非常复杂,有许多不同的组件和微服务,管理工具可以帮助您进行集群配置、管理、升级和回滚。
团队规模 – 如果您有一个庞大的工程师团队正在处理 Kubernetes 集群,管理工具可以帮助您进行协作、访问控制和审计。相反,如果您的团队很小,需要高效工作,能够创建一次并多次应用非常有价值。
最终,投资于这样一个工具的合适时间将取决于您的具体需求。但有一件事是确定的,那就是VMware Tanzu团队和Tanzu Mission Control服务可以帮助您升级日常工作:
- 您可以向开发团队提供预构建的集群、命名空间或工作区,并提供所需的应用程序或工具的所需版本。
- 您可以轻松地在本地或云端部署中启动新的集群,甚至可以在单个部署环境中启动多个集群,并具有支持应用程序所需的安全隔离和资源控制的灵活性。
- 您将多个集群连接到您的管理中心,并可以轻松应用身份验证和访问管理。您还可以为一组集群应用安全性、网络和配额策略,这些集群将继承相同的配置。
- 您可以自动化备份和恢复流程,并可以在任何集群之间移动应用程序,并在任何云端或本地数据中心运行。
- 您可以在单个可重用的YAML文件中管理集群配置,并将其应用于集群组,以便所有集群继承相同的配置。
通过这样的升级,您将有更多时间专注于为最终客户提供真正的价值。在经济形势不好的时候,您的时间更加宝贵,必须专注于核心业务。
我们的客户越来越清楚地意识到这一点,他们表示他们现在愿意为关键的 Kubernetes 工具提供的服务和支持付费,例如数据安全、集群生命周期管理、平台监控以及平台自动化,以获得一种可以为他们的运维引入一致性和敏捷性的平台体验。
内容来源|公众号:VMware 中国研发中心
本文作者:Carol Pereira,VMware Tanzu 产品线营销经理。