客座文章最初由 Joe Pelletier 在Fairwinds 博客[1]上发表
随着团队从他们的第一个 Kubernetes 试点项目发展到跨组织的更广泛的部署,DevOps 团队的工作也越来越困难。他们没有时间手动编写或检查进入集群的每个 Dockerfile 和 Kubernetes 清单,这可能导致安全漏洞、计算资源的过度消耗和嘈杂的工作负载。对这些挑战最简单的解决方案是实施策略模式。建立 Kubernetes 策略来加强安全性、效率和可靠性将为你的DevOps 团队节省[2]大量的深夜页面和升级问题
策略可以帮助你实施一致的标准,并通过避免错误配置和计划外中断来帮助你的组织节省资金。虽然将标准和定制的策略放在适当的位置很重要,但如果不执行策略,这对你没有帮助。虽然对于你的工程团队来说拥有最佳实践文档是件好事,但是它们太容易被忘记或忽略。那么如何执行 Kubernetes 的策略呢?有三种方法可以让你的策略坚持下去:
对于许多工程团队来说,这是一个持续的争论——在内部构建自己的工具[3],还是购买一些东西来解决问题?工程师喜欢开发自己的工具,但这并不值得。构建自己的软件通常会导致其他项目的生产力损失,如果构建软件的开发人员离开了组织,就会失去支持,而且它通常会导致比已建立的解决方案功能更少。开发和维护自成体系的工具需要时间、金钱和资源,你的组织可能更愿意将这些资源用于发展他们的业务。
有一些开源工具可以帮助你进行安全性、可靠性和效率配置。Fairwinds的团队贡献了Polaris[4],它可以识别 Kubernetes 部署配置错误,以及Goldilocks[5],它可以帮助你识别资源请求和限制的起点。来自 Aqua Security 的Trivy[6]是一个简单的容器和其他工件漏洞扫描器。此外,Kubernetes 社区有一个用于创建配置策略的强大的开放标准:开放策略代理(OPA)[7]。这个开放源码、通用的策略引擎在整个堆栈中统一了策略实施。OPA 允许用户跨基础设施和应用程序设置策略,而且它是内容感知的,因此管理员可以根据实际发生的情况做出策略决策。这些开放源码工具非常强大,尽管你还应该期望你的团队将花费时间部署和管理每个集群上的每个工具。
通过使用平台,你的团队可以立即采取行动,修复不一致性,并在你的持续集成/持续开发(CI/CD)流水线中执行该策略。虽然这个选项有软件成本,但在构建自己的解决方案或独立运行开源工具时,开发、部署和管理不同工具所花费的时间抵消了成本。
具有多个 Kubernetes 集群和多个用户的环境会导致不一致,管理集群不一致既耗时又低效,而且容易出现人为错误。为了提高 Kubernetes 的安全性和可靠性,你需要在 CI/CD 流水线中启动并在生产中实施 Kubernetes 策略。
阅读这篇白皮书[8],了解哪些策略是必要的,以及如何创建和执行 Kubernetes 的策略。
[1]
Fairwinds 博客: https://www.fairwinds.com/blog/make-your-kubernetes-policies-stick-use-an-effective-enforcement-plan
[2]
DevOps 团队节省: https://www.fairwinds.com/blog/kubernetes-policy-enforcement-to-enable-devsecops
[3]
构建自己的工具: https://www.softwareadvice.com/resources/build-vs-buy-software/
[4]
Polaris: https://github.com/FairwindsOps/polaris
[5]
Goldilocks: https://github.com/FairwindsOps/goldilocks
[6]
Trivy: https://github.com/aquasecurity/trivy
[7]
开放策略代理(OPA): https://www.openpolicyagent.org/
[8]
白皮书: https://www.fairwinds.com/kubernetes-policy-enforcement
点击【阅读原文】阅读网站原文。