Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 在Kubernetes上运行和检查部署的健全性_Testing_Kubernetes_Integration Testing - Fatal编程技术网

Testing 在Kubernetes上运行和检查部署的健全性

Testing 在Kubernetes上运行和检查部署的健全性,testing,kubernetes,integration-testing,Testing,Kubernetes,Integration Testing,TL;DR如何定期检查生产群集上的部署、配置加载和与外部/其他服务的集成是否正常 长版本: 生产K8s集群当然可能包含复杂的部署,最终POD可能会失败,原因主要有两个: 某些K8s对象已更改 访问基础设施/其他服务时出现问题 我可以想到一些更具体的例子: 机密/配置装载的装载无效 失踪的环境变量 分配不存在的服务帐户 网络问题(集群内或“外部世界”) 外部依赖项(如DB)已关闭或处于重负载下 是否有一些简单的工具(或任何其他方式)从集群中执行此类测试?该工具应提供以下API: API告知K8s“

TL;DR如何定期检查生产群集上的部署、配置加载和与外部/其他服务的集成是否正常

长版本
生产K8s集群当然可能包含复杂的部署,最终POD可能会失败,原因主要有两个:

  • 某些K8s对象已更改
  • 访问基础设施/其他服务时出现问题
  • 我可以想到一些更具体的例子:

  • 机密/配置装载的装载无效
  • 失踪的环境变量
  • 分配不存在的服务帐户
  • 网络问题(集群内或“外部世界”)
  • 外部依赖项(如DB)已关闭或处于重负载下
  • 是否有一些简单的工具(或任何其他方式)从集群中执行此类测试?该工具应提供以下API:

  • API告知K8s“定期使用其他命令运行此部署(否则为同一部署规范)”
  • 检查测试结果的API-用户界面,甚至只是
    kubectl获得一些简单的测试结果\u CRD
  • 其他命令基本上指的是系统初始化,没有实际运行任何东西,但它可以是任何命令,用于检查与配置相关的东西(环境变量、挂载等)是否加载良好,以及基础结构是否可访问

    在寻找这些工具时,我得到的最接近的工具是cronjob、helm测试和init容器。但是,在应用部署之前,所有这些都缺乏适当的可见性或提供测试,仅此而已

    此外,在寻找类似的问题时,我发现这是最接近的问题,但似乎完全不同:

    默认情况下,Kubernetes不提供此功能,要完成此功能,您需要使用外部工具来确保应用所需的配置,并对其进行监控和实施

    这是一个广泛的讨论,所有这些都将取决于集群的配置方式、允许访问集群的方式等

    但是,通常使用一些CI/CD管道将配置时间应用于时间,或者当您需要更改某些内容时


    您还可以使用kubernetes来验证集群中发生的情况,并可能创建一些警报或操作来触发资源的重新应用。

    re the auditing我担心示例令人困惑-因此进行了相应的编辑。重点不是安全性或恢复到以前的版本,而是定期检查代码是否能够与外部依赖项良好通信。一切都取决于集群的配置方式、访问权限……-我不确定我是否完全理解,但我认为不需要启动模拟集群等。也就是说,可以将范围缩小到在集群内运行一些代码,这些代码将提供上述API,最好是自给自足的。Re
    CI/CD管道将配置时间应用到时间,或者当您需要更改某些内容时。
    -请详细说明为什么它是正确的位置?更改配置或一般任何更改都可以通过CI/CD完成,但似乎不会涵盖(可能不应该)其他相关问题。例如,某些网络配置在群集上发生了更改,现在无法访问群集中的其他服务(这可能是与给定部署没有直接关系的更改)。Kubernetes不会执行任何外部测试来验证应用程序是否可以访问其他服务,您需要自己开发脚本或监控来完成它。当我说将配置时间应用于时间时,这意味着它将确保您的配置按应有的方式应用,但它不会检查您的外部依赖项是否工作。