我在我的pod上配置了一个带有二进制执行检查的readinessProbe,它连接到我正在运行的服务器(在同一个容器中),并检索一些健康信息(比如准备好流量)。
配置为readinessProbe,二进制文件无法联系我的服务器并获得所需的信息。它通过TCP套接字连接。但是当我将其配置为livenessProbe时,它可以正常工作。
配置为了让它工作,我只将类型从readinessProbe更改为livenessProbe。
"readinessProbe": {
"exec": {
"command": [
"/opt/bin/ready_probe",
"--check_ready_traffic",
"--service=myServer-service"
]
},
"initialDelaySeconds": 60,
"timeoutSeconds": 5
},
该服务用于服务器,用于注册其主机和端口。这没关系。
使用的版本:kubernetes v1。1.0-origin-1107-g4c8e6f4
谢谢你。
根据所提供的信息,我无法确定在你的情况下,探测器是否通过或失败。如果你不知道该监控什么,库伯内特斯可能有点不透明,所以很容易想象有人误解了你的实验结果。
这两种类型的探测的执行没有区别——只是结果不同:
根据容器的不同,活动性故障可能相对无害——您甚至可能没有注意到它。
但是,当您使用准备就绪探测器时,在探测器通过之前,将禁用与容器的通信。这意味着,通过initialDelaySeconds:60
启用准备就绪问题的简单操作将阻止服务在第一分钟连接到您的pod,而不管相关容器的状态如何。如果未配置相关的POD/服务来处理此延迟,则此延迟可能会产生级联后果。
对于活动度探测,配置初始延迟秒
(如问题所述)是非常重要的。对于就绪度探测,这可能不那么重要——您可能希望它为零(默认值),以便允许更快的启动。
代码是这样的:https://github.com/kubernetes/kubernetes/tree/master/pkg/kubelet/prober
HTTP-获取http://:8080/acturet/health delay=60s timeout=20s period=10s#success=1#failure=3 如何知道活跃度探测是否实际与默认执行器的健康endpoint一起运行
有没有一种方法可以让fluentd船LivenessProbes输出像它对普通容器在吊舱中的输出一样?
我可以找到文件,其中提到我如何添加我的自定义探针和改变探针参数,如初始延迟等,但不能找到默认的探针方法使用的K8S。
为了简单起见,我认为在kubernetes中最好只检查TCP端口的活跃度和就绪度,因为它不需要了解健康检查endpoint(HTTP路径),而只需要端口号。任何关于仅仅依赖TCP端口进行服务健康检查的缺点的指南都非常赞赏,请假设POD不是其他服务的代理,并且所有业务逻辑都在POD本身中。 https://kubernetes.io/docs/tasks/configure-pod-containe
我在学习Kubernetes时试图测试一个活性探针。我已经设置了一个迷你库贝,并配置了一个带有活性探针的吊舱。 测试脚本(例如,通过docker exec),它似乎会根据需要报告成功和失败。 该探测会导致失败事件,我可以通过kubectl Description podname查看这些事件,但它不会报告从失败中恢复的情况。 是否可以在不重新启动吊舱或迷你库贝的情况下进行修改? 如果失败导致pod重
我正试图在Kubernetes上设置EFK堆栈。正在使用的Elasticsearch版本是6.3.2。在我将探针配置放入部署YAML文件之前,一切都很好。我得到以下错误。这将导致pod被声明为不健康,并最终重新启动,这似乎是一个错误的重新启动。 警告不健康15s kubelet,aks-agentpool-23337112-0活性探测失败:获取http://10.xxx.y.zzz:9200/_c