readinessProbe использовать DNS вместо IP-адреса для хоста - PullRequest
1 голос
/ 28 апреля 2020

В настоящее время я настраиваю свой Nginx Pod readinessProbe для мониторинга порта Redis 6379, и я настраиваю свой redis-pod за службой redis (ClusterIP).

Итак, моя идея для мониторинга порта Redis, хотя служба redis использует DNS вместо IP-адреса.

Когда я использую readinessProbe.host: redis-service.default.svc.cluster.local, Nginx -под не работает. Когда я описываю Nginx -под $ kubectl describe pods nginx, я обнаружил ниже ошибку в разделе «События»:

Readiness probe failed: dial tcp: lookup redis-service.default.svc.cluster.local: no such host

Это работает, только если я использую ClusterIP вместо DNS.

Пожалуйста, помогите мне разобраться, как использовать DNS вместо ClusterIP.

Файл My 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

Спасибо.

1 Ответ

1 голос
/ 30 апреля 2020

Я понял, как это сделать.

Вместо использования tcpSocket, просто используйте exe c. Exe c ваш скрипт tcpCheck внутри контейнера, чтобы проверить сервис: доступность порта.

Используйте ваш init-контейнер, чтобы поделиться скриптом с основным контейнером.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...