预提交Hooks的DevOps工程师必须知道如何控制Kubernetes资源通常,生产力是通过添加自动化流程来提高生产速度来驱动的。这种自动化需要对历史上使用的概念进行进化、适应甚至完全转变。这包括安全策略的实施和控制。事实上,自从DevOps等基于敏捷性和灵活性的新工作方法出现以来,一些安全概念不得不适应基础设施组件的开发和管理步伐。当今最好的安全实践之一是在集成链的早期移动这些控制点,以便尽快检测到任何令人担忧的异常情况。为什么需要将安全性左移?DevSecOps方法引入了术语“左移”,以加强开发、安全和运营团队之间的协作。这个想法是通过将安全和测试过程移到软件开发生命周期(SDLC)的传统线性表示的左侧,从开发周期的一开始就保证应用程序的安全。这种方式多年来一直被公认为最佳开发实践,自DevOps方式问世以来,因其使用和配置的简单性,以及在复杂项目的团队协作方面的惊人优势而备受青睐如基础设施。广泛使用Terraform、Ansible或Kubernetes进行管理。安全性左移:入门的最佳实践在YAML定义文件开发级别及其内容和配置级别执行标准有助于阅读、采用和维护——当今任何项目都应该寻求实现的三个概念。安全左移的目的是设计具有集成安全最佳实践的软件,并在开发过程的早期检测和解决潜在的安全问题和漏洞。这使得解决安全问题变得更容易、更快速且更经济实惠。如何左移Pre-commit是一个开源命令行工具,它是通过在每次提交后添加自动控制点来转移某些安全方面的工具集的一部分。这使得可以在集成管道的早期检测和包含任何异常,并在它们投入生产之前纠正它们。为此,需要三个实施步骤:必须在机器上安装预提交。必须在Git项目的根目录中创建名为“.pre-commit-config.yaml”的配置文件,并使用挂钩进行配置。Git项目需要在本地配置为在每次提交时自动执行命令。重要说明正如您可能已经在上面阅读的那样,必须在本地配置预提交命令和Git项目才能自动运行。这不是可以从远程源控制器强制执行的配置。这需要在启动时进行项目配置以确保其应用。因此,需要文件来传播信息并确保其被采纳。然而,根据场景的不同,它的使用可以通过开发环境配置脚本(在本例中是所有团队成员的笔记本电脑),甚至是创建、共享和鼓励团队使用通用容器镜像的必要开发工具来实现自动化。这种方法有很多优点——尤其是在新员工入职时,因为它最大限度地减少了配置开发环境所需的操作。但是,如果这不适用或看起来太复杂,您始终可以将这些控件进一步向下移动到集成链中,以便在部署之前自动使用它们。可以使用哪些Hooks来控制Kubernetes资源?下面是一组免费的Hooks,可以通过Pre-commit轻松安装和使用。根据场景,这个列表显然可以由其他Hooks补充。为了便于阅读,该列表可以简化为Kubernetes生态系统。以下是用于在集成管道中尽快检查Kubernetes资源的开发和维护的预提交扩展列表:Check-merge-conflict:在提交任何内容之前检查合并冲突。尾随空格:清理不需要的空格中的代码。Checkov:根据最佳开发实践和自定义规则检查Kubernetes定义文件的合规性。K8svalidate:根据使用的Kubernetes版本检查Kubernetes定义文件的合规性。Detect-secrets:检测任何敏感数据并避免将其存储在代码中。这些Hooks中的大多数也适用于其他场景。根据项目的性质,可以添加其他几个Hooks来控制文件的格式及其内容。但是,需要保留一份简短的清单,以尽量减少这些对他们生产力的影响。以下是用于在Kubernetes项目中快速测试这些Hooks的Pre-commit配置文件:YAML1---2repos:3-repo:https://github.com/adrienverge/yamllint.git4rev:v1.17.05hooks:6-id:yamllint7args:[-c=.yamllint]8-repo:https://github.com/pre-commit/pre-commit-hooks9rev:v4.1.010hooks:11-id:check-merge-conflict12-id:trailing-whitespace13-id:check-added-large-files14-id:end-of-file-fixer15-repo:https://github.com/bridgecrewio/checkov.git16rev:2.0.97517挂钩:18-id:checkov19args:[-d.]20-repo:https://github.com/Agilicus/pre-commit-hook-k8svalidate.git21rev:v0.0.822hooks:23-id:k8svalidate24文件:.yaml$25-repo:https://github.com/Yelp/detect-secrets26rev:v1.2.027hooks:28-id:detect-secrets复制此文件的内容并将其粘贴到名为文件的项目根文件夹中“.pre-commit-config.yaml”。然后运行pre-commit命令得到结果。成功预提交Hooks的例子下一步是什么?本文列出了一组预提交Hooks,它们对人们每天管理一个或多个Kubernetes集群很有用。当然,还有很多其他的Hooks来适应不同的环境。例如,DevOps工程师会对控制Prometheus配置甚至格式化规则或Vagrant文件控制等的扩展感兴趣。现在有必要衡量这些Hooks的积累对人们的生产力和收益的影响。原标题:Pre-CommitHooksDevOpsEngineerShouldKnowToControlToControlKubernetes,作者:NicolasGiron
