译者 | 李睿
审校 | 孙淑娟
治理可带来一致性和可重复性,以确保质量永远不会降低。制定Kubernetes治理模型有助于保持整个组织的正常运行。此外,Kubernetes治理模型中提出的策略并不局限于资源和部署的安全基线。
然而,真正的问题是:在企业的云原生旅程中,在哪里以及为什么需要Kubernetes的治理和策略?
Kubernetes提供了基于角色的访问控制(RBAC)特性,这有助于以非常细粒度的方式定义访问,从而区分操作人员或管理人员所拥有的访问级别。
基于角色的访问控制(RBAC)的局限性在于,它不允许用户对资源使用设置限制。而在定义策略边界时,对资源设置这些限制至关重要。
本文将介绍Kubernetes治理及其意义。
一、什么是Kubernetes治理?
人们都理解“治理”,即跨所有组、部门或整个组织执行某些规则和策略的能力。同样,在讨论Kubernetes治理时,指的是在所有Kubernetes集群中遵循的特定标准,以及在这些集群上运行的应用程序。
更容易理解的是,人们需要标准流程来保持事情的可预测性和安全性。当用户拥有较少的集群,并且一个人处理所有的集群时,合并标准化看起来可能有点过分。但是,随着时间的推移,这可能在维护集群方面付出巨大努力。
在这里了解治理的维度是什么,以及如何防止有太多重叠的政策。
二、治理的维度
Kubernetes治理有三个维度。
Kubernetes治理的维度
它需要在组织单位和技术单位方面加以实施。组织单位由用户、组、团队和部门组成。
技术单元包括云计算提供商、数据中心、区域、集群组、标签选择器、名称空间等。还可以根据从静态列表到动态规则的功能来定义范围。
谈到策略目标,在安全策略、映像管理、网络策略管理和配置约束和策略方面有很多需要探讨的地方。以下详细了解一下。
三、治理目标是什么?
可以将Kubernetes治理目标分为以下几类:
(1)安全策略
(2)容器图像管理
(3)网络策略管理
(4)访问管理
(5)配置约束和策略
1.安全策略
当人们谈论安全政策时,企业的运维团队需要控制不同的领域。
框架安全设置可以确保:
(1)谁有权访问集群或应用程序?
(2)针对不同部门定制访问权限。
(3)指定应用程序使用操作系统功能的程度。
例如,对于数据科学部门创建的所有集群,这一切应该如何工作,用户只能访问特定的默认名称空间。
2.容器图像管理
另一个治理领域是图像管理。在这种情况下,企业可以制定一套规则来说明:
(1)要在哪些集群中使用的容器映像类型。
(2)在生产环境中使用容器映像的标准是什么?
(3)容器登记册选择的监管标准以及如何防止其受到损害。
3.网络策略管理
用户需要专注于定义哪些pod或容器可以相互通信。简单地说,需要通过治理来确保pod的安全约束。在某些情况下,安全框架确实可以解决这个问题。
拥有一个涵盖安全以及其他领域(如集群拓扑和一般集群配置约束)的公共治理框架总是好的。
4.访问实施和管理
引入基于角色的访问控制策略(RBAC)的流行概念。
通过这种方式,管理员可以限制对Kubernetes集群的访问。有各种Kubernetes对象在定义基于角色的访问控制策略(RBAC)时起作用,例如角色、群集角色、角色绑定和群集角色绑定。有了它们,可以详细定义访问限制。
5.配置约束与策略
这是关于定义资源可配置权限以及资源访问和限制。这是如何工作的——假设有不同的软件团队。通过配置约束与策略,允许团队A在Azure和AWS上创建集群,并定义了团队A可以利用资源的上限。需要注意的是,团队A不能更改这些配置细节。
与部署的应用程序相关的治理规则与上面讨论的安全规则非常相似。其中包括网络策略和定义pod如何交互(称为应用程序级约束)。还可以对所有应用程序的资源使用、请求和限制进行约束。
四、Kubernetes多集群管理和治理的重要性
实现多集群管理和治理的主要优点包括:
(1)减少管理复杂性——当工程团队遵守一系列规则时,就更容易防止任何形式的浪费/过度使用。
(2)增强的集群可见性——更好的工作负载管理,实现资源的最佳使用。防止在节点之间不均匀地分布应用程序pod。
(3)更好的应用程序可用性——更容易在最近的可用区域部署应用程序。
(4)改进的监控和日志记录——更容易解决问题,最大限度地减少停机时间。
(5)确保一致性和合规性——员工遵守规定的政策会带来一致性,并使事情具有可预测性。
(6)减少延迟——有了强大的监控,更容易预测任何偏差,并更好做好准备。
改进的灾难恢复。
(7)能够跨多云/混合云环境部署遗留和云原生应用程序。
(8)标准化,内置自动化,降低运营成本,提高效率。
(9)强化的安全态势——全面可见、集中控制、一致性和标准化。
五、如何实施Kubernetes治理框架?
在此之前,需要了解Kubernetes治理框架是什么样子的?
它将多个专门的治理框架组合为一个全面的解决方案。这包括为不同的目标使用不同的工具,如云计算成本管理、云计算资源管理、可观察性和监视、安全性等。一个全面的解决方案的问题是,这些不同的工具不一定要相互沟通和集成。
最好的方法是使用Kubernetes管理平台。一个遵循安全性、可观察性、成本管理等最佳实践的低代码平台。
1.安全的最佳实践
(1)集成在持续集成(CI)/持续交付(CD)管道中强大的图像扫描过程,确保在软件开发生命周期(SDLC)的构建和运行阶段扫描每个企业应用程序。
(2)使用符合互联网安全基准测试中心(CIS)标准的工具。
(3)限制对机密系统或数据的访问。
(4)使用HashiCorp Vault等工具更好地管理数字认证凭证。
2.监视和可观察性的最佳实践
(1)监控策略,专注于提供Kubernetes集群内部正在发生的事情的细粒度可见性。
(2)自动化服务发现,执行详细的应用程序监控,并实时提供面向行动的建议。
3.缓解网络挑战的最佳实践
自定义设置支持:
容器网络接口(CNI)——随着业务通信的复杂性增加,安全威胁的脆弱性也随之增加。将网络接口插入容器网络命名空间的容器网络接口(CNI)插件。
通过创建公共和受保护的入口部署“约定优于配置”。
部署与应用程序的基础设施层集成的服务网格。从而使网络上服务之间的通信安全可靠。
4.云计算成本管理实践
(1)使用现场实例(AWS)/现场虚拟机(Azure)/抢占虚拟机(GCP)进行成本优化:对于非关键任务的任务,可以在现场实例上运行。直观的平台通过确保在这些实例被撤销时数据不会被删除来支持这一点。
(2)停机调度:对于所有正在无目的运行的环境都可以关闭,从而节省基础设施成本。
(3)使用副本集,保证在任何时间点都有指定相同数量的pod可用。
六、结语
通过优先考虑Kubernetes治理,企业正在实现必要的保护,以成功地保护其最宝贵的资产。此外,它还帮助这些资产实现可扩展性,从而使它们更加安全和健壮。
原文链接:https://dzone.com/articles/establishing-kubernetes-governance-strategy