Kubernetes的足迹正在各个行业迅速扩展。许多企业已经在多个区域运行多个Kubernetes集群,以满足在全球各地运营的需求,并为全球客户减少应用程序延迟。企业可能已经在内部部署数据中心和许多公有云中拥有大量Kubernetes集群,并使用多个云提供商提供的云计算来避免锁定。
不幸的是,操作分布式、多集群、多云环境并不是一项简单的任务。Kubernetes是一项相对较新的技术。企业目前难以找到具有Kubernetes技能的员工,也很难找到用于多云Kubernetes管理的最佳工具。
如果企业的团队在多集群Kubernetes方面遇到困难,这样的事例并不少见。本文介绍了企业现在可以采取的三个步骤,以减少花在Kubernetes多集群管理上的时间和精力:
步骤1:对Kubernetes访问采用零信任。Kubernetes零信任可以提高企业的多集群、多云Kubernetes环境的安全性。
步骤2:启用持续部署。GitOps可帮助企业确保跨多个Kubernetes集群的集群和应用程序的一致部署。
步骤3:简化多集群生命周期管理。Kubernetes变化很快。正确的多集群管理工具将帮助企业跟上部署和升级的步伐。
步骤1:对Kubernetes访问采用零信任
鉴于多云Kubernetes管理的复杂性,发生许多严重的安全错误也就不足为奇了。预计2022年网络犯罪和数据泄露事件将增加,企业必须尽一切可能确保Kubernetes集群和应用程序的安全性。
确保多集群Kubernetes管理访问安全的最佳方法是采用零信任方法。零信任是一种安全模型,它假设在网络中和网络之间运行的所有参与者、系统和服务都不可信。
Kubernetes包含所有的要素来实现零信任以控制对企业中每个Kubernetes集群的访问。这些要素分为四个关键领域:身份验证、授权、许可控制、日志记录和审计,如下图所示。
步骤2:启用多集群持续部署
频繁的应用程序和基础架构更新是多云、多集群Kubernetes环境中的常态。在许多情况下,企业的团队需要同时部署到多个Kubernetes集群。对于数十个集群和数百个应用程序实例,几乎不可能避免漂移:集群之间的配置不一致和配置错误会导致长时间的故障排除、停机或更糟的情况。
为了解决这些挑战,许多企业正在转向GitOps,将Git工具的熟悉功能引入基础设施管理和持续部署(CD)。GitOps使用Git作为基础设施和应用程序的单一事实来源。因为GitOps是声明性的,所以它提供了更好的标准化、增强的安全性和更高的生产力。
Git存储库存储用于定义、创建和更新应用程序和基础设施的所有必要信息。当对存储库进行更改时,代码会被推送到企业的集群(或从集群回滚),从而快速可靠地自动化部署。
虽然可以使用标准Git工具实施GitOps方法和GitOps工作流程,但需要一些额外的工具才能获得全部好处,尤其是确保保持所需状态的能力。
步骤3:简化多集群生命周期管理
在许多企业中,Kubernetes环境随着时间的推移而有机地增长,具有多个Kubernetes发行版和云服务,例如Amazon EKS和Azure AKS,以提供跨多个区域的必要覆盖。Kubernetes的所有这些“风格”可能在核心上是相同的,但流行的云计算环境以及Red Hat Open Shift、Rancher和VMware Tanzu等发行版具有不同的管理工具。这意味着在每个环境中部署和更新集群可能会有很大的不同。
除非企业已经在单一风格的Kubernetes上实现了标准化,否则最好的解决方案是找到一种可以为企业执行生命周期管理的工具。不幸的是,这仍然是一个挑战,因为几乎没有可用的工具同时涵盖流行的Kubernetes发行版和云Kubernetes服务。许多供应商工具(例如用于多集群工作负载的Rancher)仅适用于他们自己的发行版或有其他限制。
原文标题:3 Steps To Streamline Kubernetes Multi-Cluster Management,作者:Kyle Hunter