GitOps中的安全

举报
kaliarch 发表于 2022/11/05 14:12:10 2022/11/05
【摘要】 镜像是使用对容器注册表的只读访问来拉取的。CI工具没有被授予群集特权,因此不会给管道带来重大的安全风险。 特权分离GitOps将CI与CD分开。这就是为什么它是将应用程序部署到Kubernetes的更安全的方法的原因之一。下表显示了GitOps如何在集群、CI和CD工具以及容器存储库之间分离读/写特权,从而为您的团队提供了创建更新的安全方法。 部署策略当您计划定义整个应用程序部署和升级过程时...

镜像是使用对容器注册表的只读访问来拉取的。CI工具没有被授予群集特权,因此不会给管道带来重大的安全风险。

特权分离

GitOps将CI与CD分开。这就是为什么它是将应用程序部署到Kubernetes的更安全的方法的原因之一。下表显示了GitOps如何在集群、CI和CD工具以及容器存储库之间分离读/写特权,从而为您的团队提供了创建更新的安全方法。

部署策略

当您计划定义整个应用程序部署和升级过程时,首先决定哪种部署策略适合您的应用程序和最终用户是很重要的。一般说来,在GitOps中,以下Kubernetes部署策略得到了很好的支持,并且可以从采用中受益:

滚动更新

默认情况下,Kubernetes提出了一个基本的滚动更新策略,该策略被整个行业普遍采用和使用。它基本上创建了一个新的副本集。当新的副本集用新版本创建Kubernetes吊舱时,旧的副本集缩小了旧的副本集。这种方法有一些挑战,比如对推出速度的控制较少,控制流向新版本的通信流的能力,以及访问基于外部监控工具的度量标准,以验证新推出是否成功。

蓝绿部署

蓝绿部署允许团队在运行应用程序的新版本的同时运行旧版本;微服务同时运行,然后将用户流量从旧版本切换到新版本。一旦新版本完全稳定,那么旧版本就会被拿下。GitOps家族中有一些工具,如Flagger和Argo-Rollout,它们有助于实现和实现这种方法。此策略相当简单,具有出色的回滚功能,并且在最佳情况下需要最少的停机时间。

金丝雀部署

对于canary部署,新版本通过在向所有用户推出更改之前,将更改缓慢地向最初的一小部分最终用户推出,从而降低了风险。金丝雀部署策略结合了蓝绿和滚动更新策略中的最佳策略,允许快速回滚、最小干扰和比蓝绿更优化的计算成本。
蓝绿战略和金丝雀战略也可以被视为渐进交付的各种方法。

GitOps的核心想法是依托一个Git存储库,该存储库始终含有代表生产环境预期状态的声明式配置,并通过自动化流程监管Git存储库,将生产环境与这个预期状态相匹配。当开发人员要部署新的应用程序或更新现有应用程序,只需更新存储库,自动化流程就会处理所有事情。如果集群的实际状态与 Git 仓库中定义的期望状态不匹配,Kubernetes reconcilers 会根据期望状态来调整当前的状态,最终使实际状态符合期望状态。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。