apiVersion: apps/v1
kind: Deployment
metadata:
name: myApp
spec:
...
template:
metadata:
labels:
app: myApp
spec:
...
containers:
- name: myApp
...
ports:
- containerPort: 5000
...
readinessProbe:
tcpSocket:
port: 5000
initialDelaySeconds: 300
periodSeconds: 5
successThreshold: 1
failureThreshold: 3
livenessProbe:
tcpSocket:
port: 5000
periodSeconds: 30
initialDelaySeconds: 300
successThreshold: 1
failureThreshold: 3
...
当我执行部署并描述pod时,我看到在输出底部的'Events'下列出了以下内容:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Unhealthy 2m1s (x288 over 86m) kubelet, aks-vm-id-appears-here Readiness probe failed: dial tcp 10.123.1.23:5000: connect: connection refused
(这是令人困惑的,因为它将年龄声明为2m1s-但initialdelayseconds
大于这个值-所以我不确定它为什么将这个值报告为年龄)
就绪探测随后以相同错误失败。IP号与我的pod的IP匹配,我在pod描述中的containers
下看到了这一点:
Containers:
....
Port: 5000/TCP
活性和就绪探针的失败导致pod不断终止和重新启动。
该应用程序有一个默认的index.html
页面,所以我相信如果健康探测能够连接,它应该会收到200个响应。
因为健康探测失败,所以pod IP没有分配给endpoints对象,因此没有针对服务分配。
我不明白为什么健康探测器不能连接?在我看来,它应该尝试连接10.123.1.23:5000的IP。
这是可能的,端口需要很长的时间,超过300s成为开放,但我不知道一个方法,我可以检查。如果我在pod上输入bash会话,watch
不可用(我读到watchss-lnt
可用于检查端口可用性)。
下面的答案建议增加initialdelayseconds
,但我已经尝试过了-https://stackoverflow.com/A/51932875/1549918
我看到了这个问题--但资源利用率(例如CPU/RAM)并不是问题的活跃度和准备状态探测连接被拒绝
更新
如果我从pod的副本卷曲到https://10.123.1.23:5000,我会得到一个类似的错误(无法连接到...the ip...port 5000:Connection refied
)。为什么这会失败?我读到的一些东西表明,尝试从另一个pod连接可能也表明健康探针的可达性。
如果您不确定应用程序是否正确启动,请将其替换为已知的良好映像。例如httpd
将端口更改为80,将映像更改为httpd。
您可能还希望增加健康检查的超时,因为它默认为1秒到TimeoutSeconds=5
此外,如果您的映像是一个web应用程序,那么最好使用http探测
我使用的是标准的skydns RC/SVC YAMLS。 吊舱描述: (etcd) 我还将放入kube2sky容器中,ca.crt与服务器上的ca.crt匹配。
当我试图为我的awx_web容器设置活跃度和就绪度prob时,我总是得到这个错误
在上使用helm upgrade命令运行容器时,出现了以下错误: “准备探测失败:获取http://172.17.0.6:3003/:拨号tcp 172.17.0.6:3003:GetSockopt:连接拒绝”。
我在k8s https://github.com/paveldemyanenko/kubernetes-keycloak/tree/master/kubernetes中准备了一些Keycloak的基本示例,在这里我遇到了一个问题,当我在部署结束时部署Keycloak Helm Chart时,我会出现这样一个错误: 配置有什么问题,为什么它不能检查就绪探测?
我试图在Azure中新部署的aks Kuberbetes(1.9.6)集群中部署zalenium helm chart。但我不让它起作用。豆荚给出了下面的日志: 描述pod给出:警告不健康4M(x12超过6M)kubelet,aks-agentpool-93668098-0就绪探测失败:HTTP探测失败,状态代码:502 Zalenium图像版本:Dosel/Zalenium:3 如果使用Kube
如何为我的spring boot应用程序编写kubernetes Readision probe(启动大约需要20秒)?我试着从配置活跃度、就绪和启动探测中学习,但我不知道Kubernetes是如何将状态代码200计算为成功的