Kubernetes 授权与 GitOps 部署最佳实践
1. 授权最佳实践
在对集群上配置的授权模块进行更改之前,可参考以下最佳实践:
1.1 避免在多控制平面集群中使用 ABAC
ABAC 策略需要放置在每个控制平面主机的文件系统中并保持同步,因此通常不建议在多控制平面集群中使用 ABAC。对于 Webhook 模块也是如此,因为其配置基于文件和相应的标志。此外,对这些文件中的策略进行更改需要重启 API 服务器才能生效,这在单控制平面集群中实际上是一次控制平面中断,在多控制平面集群中则会导致配置不一致。因此,建议仅使用 RBAC 模块进行用户授权,因为规则是在 Kubernetes 本身中配置和存储的。
1.2 避免使用 Webhook 模块
Webhook 模块虽然强大,但可能非常危险。由于每个请求都要经过授权过程,Webhook 服务的故障对集群来说将是毁灭性的。因此,通常建议除非你完全评估并适应了 Webhook 服务不可达或不可用时的集群故障模式,否则不要使用外部授权模块。
2. GitOps 概述
2.1 什么是 GitOps
GitOps 由 Weaveworks 的团队推广,其理念和基础基于他们在生产环境中运行 Kubernetes 的经验。GitOps 将软件开发生命周期的概念应用于运维。在 GitOps 中,Git 存储库成为唯一的事实来源,集群会与配置的 Git 存储库同步。例如,如果你更新了 Kubernetes Deployment 清单,这些配置更改会自动反映在 Git 中的集群状态中。
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



