Actualmente configuro mi Nginx Pod readinessProbe para monitorear el puerto Redis 6379, y configuro mi redis-pod detrás del servicio redis (ClusterIP).
Entonces, mi idea es monitorear el puerto Redis a través del servicio Redis usando DNS en lugar de la dirección IP.
Cuando uso readinessProbe.host: redis-service.default.svc.cluster.local el Nginx-pod no se está ejecutando. Cuando describo el Nginx-pod $ kubectl describe pods nginx , encontré el siguiente error en la sección Eventos:
Readiness probe failed: dial tcp: lookup redis-service.default.svc.cluster.local: no such host
Solo funciona si uso ClusterIP en lugar de DNS.
Ayúdenme a descubrir cómo usar DNS en lugar de ClusterIP.
Mi archivo 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: AlwaysGracias.
Descubrí cómo hacerlo.
En lugar de usar tcpSocket, simplemente use exec. Ejecute su secuencia de comandos tcpCheck dentro del contenedor para verificar la disponibilidad del servicio: puerto.
Use su contenedor de inicio para compartir el script con el contenedor principal.
Gracias.