Testing 在Kubernetes上运行和检查部署的健全性
TL;DR如何定期检查生产群集上的部署、配置加载和与外部/其他服务的集成是否正常 长版本:Testing 在Kubernetes上运行和检查部署的健全性,testing,kubernetes,integration-testing,Testing,Kubernetes,Integration Testing,TL;DR如何定期检查生产群集上的部署、配置加载和与外部/其他服务的集成是否正常 长版本: 生产K8s集群当然可能包含复杂的部署,最终POD可能会失败,原因主要有两个: 某些K8s对象已更改 访问基础设施/其他服务时出现问题 我可以想到一些更具体的例子: 机密/配置装载的装载无效 失踪的环境变量 分配不存在的服务帐户 网络问题(集群内或“外部世界”) 外部依赖项(如DB)已关闭或处于重负载下 是否有一些简单的工具(或任何其他方式)从集群中执行此类测试?该工具应提供以下API: API告知K8s“
生产K8s集群当然可能包含复杂的部署,最终POD可能会失败,原因主要有两个:
kubectl获得一些简单的测试结果\u CRD
默认情况下,Kubernetes不提供此功能,要完成此功能,您需要使用外部工具来确保应用所需的配置,并对其进行监控和实施 这是一个广泛的讨论,所有这些都将取决于集群的配置方式、允许访问集群的方式等 但是,通常使用一些CI/CD管道将配置时间应用于时间,或者当您需要更改某些内容时
您还可以使用kubernetes来验证集群中发生的情况,并可能创建一些警报或操作来触发资源的重新应用。re the auditing我担心示例令人困惑-因此进行了相应的编辑。重点不是安全性或恢复到以前的版本,而是定期检查代码是否能够与外部依赖项良好通信。一切都取决于集群的配置方式、访问权限……-我不确定我是否完全理解,但我认为不需要启动模拟集群等。也就是说,可以将范围缩小到在集群内运行一些代码,这些代码将提供上述API,最好是自给自足的。Re
CI/CD管道将配置时间应用到时间,或者当您需要更改某些内容时。
-请详细说明为什么它是正确的位置?更改配置或一般任何更改都可以通过CI/CD完成,但似乎不会涵盖(可能不应该)其他相关问题。例如,某些网络配置在群集上发生了更改,现在无法访问群集中的其他服务(这可能是与给定部署没有直接关系的更改)。Kubernetes不会执行任何外部测试来验证应用程序是否可以访问其他服务,您需要自己开发脚本或监控来完成它。当我说将配置时间应用于时间时,这意味着它将确保您的配置按应有的方式应用,但它不会检查您的外部依赖项是否工作。