在Openshift / Kubernetes上,当准备检查配置了带有路径的HTTP GET时,例如带有服务和路由的弹簧启动应用程序,是调用Openshift服务或路由或其他东西并期待的HTTP GET请求200-399?
谢谢, 乙
答案 0 :(得分:1)
正确,它正在使用webhook来确定容器是否已准备好提供请求。默认情况下,请求直接发送到Pod IP,因为当它失败时,将从所有服务的所有端点删除容器IP。这可以被探测器定义中提交的host
覆盖。
如您所述,任何200-399的响应代码都会被视为成功。
答案 1 :(得分:1)
The kubernetes documentation on readiness and liveness probes表示
对于HTTP探测,kubelet会向指定的
path
和port
发送HTTP请求以执行检查。 kubelet将探测器发送到pod的IP地址,除非地址被host
中的可选httpGet
字段覆盖。 [...]在大多数情况下,您不希望设置host
字段。这是您设置它的一个场景。假设Container侦听127.0.0.1并且Pod的hostNetwork
字段为true。然后host
下的httpGet
应设置为127.0.0.1。如果您的pod依赖虚拟主机(这可能是更常见的情况),则不应使用host
,而应在httpHeaders
中设置主机标头。
除非您在探针上设置host
字段,否则它将使用Pod的IP。此处未使用服务或入口路由,因为准备和活动探测用于确定服务或入口路由是否应将流量发送到Pod。
HTTP请求来自Kubelet。每个kubernetes节点都运行Kubelet进程,该进程负责节点注册和pod的管理。 Kubelet还负责观察绑定到其节点的Pod集,并确保这些Pod正在运行。然后它报告了状态,因为事情随着那些Pod而变化。
When talking about the HTTP probe,文档说
任何大于或等于200且小于400的代码都表示成功。任何其他代码都表示失败。