我当前将我的Nginx Pod配置为readinessProbe以监视Redis端口6379,并且i将我的redis-pod配置为redis-service(ClusterIP)的后面。
所以我的想法是通过使用DNS的redis服务监视Redis端口而不是IP地址。
[当我使用readinessProbe.host: redis-service.default.svc.cluster.local
时,Nginx-pod没有运行然后我描述Nginx-pod $ kubectl describe pods nginx
,
我在“事件”部分中发现以下错误:Readiness probe failed: dial tcp: lookup redis-service.default.svc.cluster.local: no such host
仅当我在DNS上使用ClusterIP时才起作用。
请帮助如何在ClusterIP上使用DNS。
我的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
谢谢。
我想出了办法。
不是使用tcpSocket,而是使用exec。在容器内执行tcpCheck脚本以检查service:port可用性。