【问题标题】:Openshift deployment validation - QAOpenshift 部署验证 - 质量检查
【发布时间】:2019-02-26 19:22:26
【问题描述】:

想知道是否有任何工具可以验证 openshift 部署。假设您有一个具有不同功能(秘密、路由、服务、环境变量等)的部署配置文件,我想在部署完成并且在 Openshift 中创建 POD/s 后验证所有这些东西是按照文件上的要求在那里。就像 QA 工具一样。

谢谢

【问题讨论】:

    标签: deployment kubernetes openshift


    【解决方案1】:

    Readiness 探针可以在 Pod 上执行 http 请求以确认其可用性。它还可以执行命令来确认容器内所需的资源是否可用。 Readiness probe

    【讨论】:

    • 感谢您的回复。是的,没错,我们可以运行命令来确保所有内容都已应用。但我们的想法是避免手动运行这些命令,并查看是否存在自动检查所有这些资源/功能的解决方案。
    • 是的,我已经在使用它了。但我们正在努力实现其他检查。部署后检查所有功能,而不仅仅是准备情况或活跃度。
    • 据我所知,我们可以在运行状况检查/reediness 探测中执行应用程序预验证,kubernetes 将调用以查看是否通过。如果您的所有检查都与应用程序相关,那么它们可以在健康检查中执行。还是有什么不能覆盖的??在春天有 post 构造,如果只需要一次也可以提供帮助
    • 这些适用于应用程序验证。但我们正在尝试验证配置而不是应用程序。想知道秘密、副本、就绪、活跃度、服务、路由、拆分流量配置等是否被成功应用。我知道 Openshift 应该“确保”使用所有已部署的部署配置文件,否则部署应该失败。但这来自外部客户端请求,因此只是想知道是否存在可以执行该部署后检查的工具。无论如何,我们选择了一个自定义解决方案,比较部署配置文件和完成后的部署。
    【解决方案2】:

    在 Kubernetes 中有一个特定的标志 --dry-run 用于资源创建,它执行基本的语法验证和模板对象模式验证,无需实际对象实现,因此您可以对部署清单文件中定义的所有底层对象进行测试。

    我觉得通过OpenShift客户端实现也是可行的:

    $ oc create -f deployment-app.yaml --dry-run
    

    $ oc apply -f deployment-app.yaml --dry-run
    

    您可以在 Developer CLI Operations 文档页面中找到一些有用的 OpenShift 客户端命令。

    【讨论】:

    • 谢谢。是的,考虑过这些选项,但如果我们在部署之前检查部署,那将起作用。从 QA 的角度来看,正在考虑任何可用于在成功完成部署后检查部署的解决方案。比如,不是检查是否应用了路由,然后检查是否应用了持久卷等等,而是以某种方式自动执行。
    【解决方案3】:

    对于一次性验证,您可以使用Init Container (OpenShift) 创建一个Job (OpenShift) 以确保完成所有部署过程,然后使用 kubectl/ 序列运行 test/shell 脚本curl/其他命令,以确保每个部署都到位并处于所需状态。

    对于持续验证,您可以创建一个CronJob (OpenShift),它会定期创建一个测试作业并在某处报告结果。

    这个answer 可以帮助您创建所有这些东西。

    【讨论】:

      猜你喜欢
      • 2021-12-24
      • 1970-01-01
      • 2014-05-22
      • 2014-10-29
      • 1970-01-01
      • 2014-10-05
      • 2019-09-24
      • 2015-07-20
      • 2016-07-23
      相关资源
      最近更新 更多