我的服务部署中有以下活动探测.yaml
livenessProbe:
failureThreshold: 3
httpGet:
path: /health
port: 9081
scheme: HTTP
initialDelaySeconds: 180
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
我想测试探针是否实际上触发了POD重新部署,这是让它失败的最简单方法吗? 可能是以程序化的方式。
最好澄清一下这个问题,我不想更改应用程序中的代码,也不想暂停正在运行的容器。 我想知道是否有可能在运行时使用kubernetes或docker命令阻塞端点/端口。
答案 0 :(得分:0)
如果您能够更改底层应用程序代码,只需更改/health
端点,使其返回高于400 http状态代码的内容。
如果没有,您必须以某种方式使应用程序失败,可能是使用kubectl exec
登录到pod并进行影响应用程序运行状况的更改。
这完全取决于您的应用程序,kubernetes将完成您告诉它的操作。
答案 1 :(得分:0)
如果你可以到达运行pod的主机,在容器上执行docker pause
将暂停容器中的所有进程,这将使活动探测失败。
注意:我自己没有尝试过,但根据docker pause
here的文档,听起来就是这样。
答案 2 :(得分:0)
您可以按照以下方式定义活动性探针
livenessProbe:
exec:
command:
- /bin/bash
- '-c'
- /liveness-probe.sh
initialDelaySeconds: 10
periodSeconds: 60
并在名为
的根路径中创建一个sh文件。liveness-probe.sh
包含
#!/bin/bash
#exit 0 #Does not fail and does not trigger a pod restart
exit 1 #Triggers pod restart