gpt4 book ai didi

jenkins - Kubernetes Yaml的服务器端验证

转载 作者:行者123 更新时间:2023-12-02 11:38:28 24 4
gpt4 key购买 nike

我想在应用Kubernetes yaml文件之前先对其进行服务器端验证。
我知道在我的Jenkins代理中,我可以使用以下kubectl命令在服务器端验证yaml文件,但我有点担心访问控制:

  • Kubernetes kubectl apply --server-dry-run -f ...
  • Kubernetes> = v1.18:kubectl apply --dry-run=server -f ...

  • Kubernetes文档说以下内容:

    Authorization for dry-run and non-dry-run requests is identical. Thus,to make a dry-run request, the user must be authorized to make thenon-dry-run request.


    我不希望任何Jenkins代理商对我的EKS集群拥有超能力。坏 Actor 可能会恶意使用我的Jenkins代理并应用他们想要的任何 list 。现在出于安全/稳定/管理的原因,创建Kubernetes对象是由其他系统(而不是Jenkins)完成的。
    我检查了其他几个选项,但看到了缺点:
  • Kubeval不了解实际群集中安装的任何CRD。
  • 客户端验证不是真正的端到端验证
  • 我可以开发一个rest api,该api公开一个验证rest终结点并使用Kubernetes API或在后台运行kubectl --run-dry。但是,这需要比我们有能力进行更多的开发工作。

  • 您是否有任何想法,或者您知道我可以在CI系统中安全使用的任何验证工具,用于验证End-2-end Kubernetes yaml文件?

    最佳答案

    我一直在寻找自己的东西,但找不到足够的工具。但是,有几种解决方法:

  • 将所有对象部署到dev / stage集群中的临时ci-job-id命名空间。它们应与产品相同,但不会强加您提到的安全风险。这带来了额外的好处-您可以检查是否所有内容都已创建,所有 pods 都在运行。它有助于捕获资源请求不足,图像丢失,Service选择器配置错误等问题。另外,还可以在顶部添加烟雾测试。
  • 旋转一个带有所有CRD的小型minikube,专门用于CI验证。这种方法可以减少覆盖范围,但维护成本却低得多。
  • 关于jenkins - Kubernetes Yaml的服务器端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64578072/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com