翻译自 Managing Kubernetes Complexity in Multicloud Environments 。
企业在决定采用 Kubernetes 运维平台来管理基础设施时,应仔细考虑所有影响这一决定的因素。
Kubernetes 已成为构建和部署云原生应用程序的主流容器编排平台选择。随着企业采用Kubernetes,他们必须做出的关键决定之一是采用多云战略。理解推动亚马逊网络服务(AWS)、Azure、GCP、甲骨文、阿里巴巴等公有云提供商对解决方案需求的因素,并验证这些因素当前或将来是否相关至关重要。影响多云策略的一些因素包括:
- 特定应用程序的专业云技术需求/要求
- 多个业务部门采用不同的云
- GDPR 和其他地区注意事项
- 灾难恢复
- 采用不同云的其他企业的并购
- 对云托管服务的依赖
某些应用程序需要仅在特定云平台上可用的专用云服务。例如, Google Big Table 是一个仅在 Google Cloud 上可用的 NoSQL 数据库。同样, Azure 具有专门的机器学习和 AI 服务,例如 Azure 认知服务。
在这种情况下,企业需要跨多个云部署其应用程序,以访问其应用程序所需的专用服务。此方法还可以通过为每个应用程序选择最具成本效益的云服务来帮助组织优化成本。
在大型组织中,不同的业务部门可能对其云服务有独特的要求,从而导致采用单独的云服务。例如,一个业务部门可能更喜欢 Google Cloud 的机器学习功能,而另一个业务部门可能更喜欢 AWS 更广泛的服务。因此,云环境变得支离破碎,跨多个云部署应用程序变得复杂。
区域法规也会推动对多云方法的需求。例如,企业可能需要在特定区域存储和处理数据,以遵守数据保存法规。例如,阿里云是中国领先的云提供商,也是该地区的首选云。
跨不同区域的多个云部署应用程序可以帮助企业满足其数据保存和合规性要求。
以正确的方式实施灾难恢复对企业至关重要,因为停机会导致重大的收入损失和声誉损害。多云方法可以通过跨多个云部署应用程序来帮助企业确保业务连续性。在这种情况下,主应用程序可以在一个云中运行,而辅助应用程序可以在另一个云中运行以进行灾难恢复。
这种方法还可以通过选择最具成本效益的云服务进行灾难恢复来帮助企业优化成本。
当组织合并时,他们可能具有必须集成的不同云环境。同样,当组织收购其他公司时,他们可能需要将被收购公司的云环境与其现有的云环境集成,因此需要多云方法。
由于依赖于特定云提供商仅提供的特定服务,企业可能需要在特定云中部署应用程序。例如,组织可能需要托管 Oracle 用于其数据库或 SAP HANA 用于其 ERP 系统。在这种情况下,必须在同一云中部署应用程序才能更接近数据库。平台和站点可靠性工程 (SRE) 团队现在必须掌握在新的公共云上管理 Kubernetes 基础架构的技能。平台团队必须彻底了解其所有应用程序团队要求,以查看其任何应用程序是否属于此类别。
如果多云部署是现在或未来的关键要求,企业可能希望投资真正的 Kubernetes 运营平台。真正的 Kubernetes 运营平台可帮助企业开发跨云的标准化自动化,同时利用公共云 Kubernetes 发行版,如 AWS EKS、Azure AKS、Google GKE 等。另一方面,在没有 Kubernetes 运营平台的情况下,在多个云上部署和管理 Kubernetes 基础设施需要大量的手动工作,并可能导致大量的运营成本、运营不一致、项目延迟等。
- Kubernetes 运营平台可以标准化跨多个云部署和管理 Kubernetes 集群的流程。企业可以使用统一的界面跨多个云自动部署和管理 Kubernetes 集群。这种自动化有助于提高一致性并降低人为错误的风险。它还减少了对专业技能的需求。
- 企业还需要跨云保持统一的安全态势。在多云环境中,每个云提供商都有自己的安全策略,这使得企业很难跨云实施标准安全策略。Kubernetes 运营平台可以跨云提供一致的安全策略,统一实施治理和合规性。
- 跨云的一致策略管理和网络安全策略对于采用多云 Kubernetes 部署至关重要。Kubernetes 运营平台应提供标准化的工作流,以便为跨云的 Kubernetes 集群应用网络安全和 Open Policy Agent(OPA) 策略。策略(包括网络策略、入口和出口规则)可以在一个集中的位置定义,并部署到所有 Kubernetes 集群,从而确保一致性并降低操作复杂性。
- 真正的 Kubernetes 运营平台应该跨云提供统一的双模多租户(集群和命名空间)。该平台应允许多个团队和应用程序共享相同的 Kubernetes 集群,而不会相互影响,从而提供更好的资源利用率和成本效率。同样,对于需要专用集群的团队、应用程序或环境,Kubernetes 平台应提供集群即服务,各个团队可以按照平台和 SRE 团队设置的安全性、治理和合规性,以自助方式创建集群。
- 跨所有云的 Kubernetes 访问控制、基于角色的访问控制 (RBAC) 和单点登录 (SSO) 对于 Kubernetes 运营平台至关重要。但是,在跨多个云部署 Kubernetes 时,访问管理变得越来越复杂。统一的访问管理解决方案可以简化流程并降低安全风险。
- 最后,单一管理平台为跨多个云的整个基础架构提供可见性对于 Kubernetes 运营平台至关重要。单个管理平面可以提供跨多个云的 Kubernetes 集群的集中可见性,使企业能够更有效地监控、管理和排除其 Kubernetes 集群故障。
对于采用 Kubernetes 运营平台来管理其 Kubernetes 基础设施的企业来说,多云战略可能是一个重要的考虑因素。企业应仔细查看影响多云部署的所有因素,并确定其组织是否需要多云。真正的多云 Kubernetes 运营平台应提供标准化的自动化、一致的安全策略、统一的 Kubernetes 双模多租户、访问管理和单个管理面板,为跨多个云的整个基础设施提供可见性。