我目前配置了我的Nginx readinessProbe来监视Redis端口6379,并且在redis服务(ClusterIP)后面配置了redis-pod。
因此,我的想法是通过使用DNS而不是IP地址来监视Redis端口。
当我使用readinessProbe.host: redis-service.default.svc.cluster.local时,Nginx没有运行。当我描述Nginx $ kubectl describe pods nginx时,我在Events部分中发现了下面的错误:
Readiness probe failed: dial tcp: lookup redis-service.default.svc.cluster.local: no such host
只有当我使用ClusterIP而不是DNS时,它才能工作。
请帮我弄清楚如何使用DNS而不是ClusterIP。
我的Pod档案:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
livenessProbe:
httpGet:
path: /
port: 80
readinessProbe:
tcpSocket:
host: redis-service.default.svc.cluster.local
port: 6379
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always谢谢。
发布于 2020-04-30 15:40:16
我想出了怎么做。
与其使用tcpSocket,不如使用exec。在容器中执行tcpCheck脚本以检查服务:端口可用性。
使用init容器与主容器.共享脚本。
谢谢。
https://stackoverflow.com/questions/61477181
复制相似问题