在Kubernetes中,用“做豆荚”;准备就绪检查“;处于“状态”;“不健康”;在其他POD准备就绪之前无法从其他POD解析?
我已经定义了一个虚拟服务作为在DNS中注册我的POD的一种方式,因为集群IP目前无法用于我的应用程序在Kubernetes中,用“做豆荚”;准备就绪检查“;处于“状态”;“不健康”;在其他POD准备就绪之前无法从其他POD解析?,kubernetes,Kubernetes,我已经定义了一个虚拟服务作为在DNS中注册我的POD的一种方式,因为集群IP目前无法用于我的应用程序 apiVersion: v1 kind: Service metadata: name: company spec: selector: app: company_application clusterIP: None 我正在使用master.company.default.svc.cluster.local的DNS条目从另一个pod连接到该pod 我注意到Kuberne
apiVersion: v1
kind: Service
metadata:
name: company
spec:
selector:
app: company_application
clusterIP: None
我正在使用
master.company.default.svc.cluster.local
的DNS条目从另一个pod连接到该pod
我注意到Kubernetes在这种情况下有一种非常恼人的行为:
- 我有一个豆荚,它处于ReadinesCheck定义的“不健康”状态
- 我有另一个pod,其应用程序希望在该pod上执行DNS查找
- DNS查找失败,直到“不健康”pod变得健康
这就是库伯内特斯的工作方式吗?除了删除就绪检查外,是否有其他方法确保DNS继续解析?是的,POD在通过就绪检查之前不会添加到服务端点。您可以通过运行以下命令来确认这一点:
kubectl get endpoints company -n <your_namespace>
kubectl获取端点公司-n
在之前,您不会看到任何端点
readinessProbe
失败。您使用什么DNS条目连接到您的播客?我编辑了问题以使其更清楚,master.company.default.svc.cluster.local非常好,简单的答案!
kubectl get endpoints company -n <your_namespace>