我有用pytest编写的端到端测试,在命名空间foo
中的Kubernetes集群上运行。现在,我想将简单的混沌工程添加到测试中,以检查我的服务的恢复能力。为此,我只需要删除foo
中的特定POD——因为K8s重新启动相应的服务,这模拟了暂时无法访问的服务
使用Python在当前名称空间中删除特定pod的简单方法是什么
到目前为止,我所尝试的:
因为我在https://github.com/kubernetes-client/python/tree/master/examples中没有找到合适的示例,但是使用POD的示例看起来非常复杂,
我看了看kubetest
,它看起来非常简单和优雅
我想使用kube
装置,然后执行如下操作:
pods = kube.get_pods()
for pod in pods:
if can_be_temporarily_unreachable(pod):
kube.delete(pod)
我认为使用参数--in-cluster
调用pytest会告诉kubetest
使用当前的集群设置,而不是创建新的K8s资源。
但是,kubetest
希望为每个使用kube
fixture的测试用例创建一个新的名称空间,这是我不想要的。
有没有办法告诉kubetest
不要创建新的名称空间,而是在当前名称空间中执行所有操作
尽管kubetest
在其他方面看起来非常简单和优雅,但我也很乐意使用另一种解决方案。
一个简单的解决方案需要很少的时间和维护,并且不会使测试复杂化(阅读),这将是非常棒的
提比斯现有答案的延续。M
有两种方法可以做到这一点:
metadata.namespace
您可以使用^{} (从CoreV1Api)删除命名空间中的特定POD
以下是一个例子:
相关问题 更多 >
编程相关推荐