Связь между различными сервисами в Kubernetes Deploy - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок в использовании Kubernetes (v 1.11.2-gke.18) и пытаюсь запустить Sentry в качестве развертывания Kubernetes.Все это выполняется в Google Cloud.Вот файлы YAML для Postgres, Redis и Sentry:

postgres.yml for k8s redis.yml for k8s sentry.yml for k8s

Компоненты Redis и Postgres работают нормально, но Sentry дает сбой, потому что: could not translate host name "postgres-sentry:5432" to address: Name or service not known.

У меня такой вопрос: как мне правильно установить связь между этими службами?Как мне получить контейнер Sentry для связи с Postgres и Redis?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Оказывается, что в этом случае мне нужно было изменить значения SENTRY_REDIS_HOST и SENTRY_POSTGRES_HOST, чтобы номера портов не были указаны в объявлении env. Извлечение всех заставило все говорить вместе, как и ожидалось.

0 голосов
/ 17 ноября 2018

В модулях Kubernetes другие службы можно найти через службы, использующие DNS .

Ваша конфигурация выглядит правильно, если postgres-sentry находится в том же пространстве имен, что и модуль / развертывание вашего сторожевого приложения (которое выглядит как пространство имен по умолчанию).

Итак, это указывает на то, что у вас могут быть проблемы с DNS. Вы можете проверить это, застрелив в контейнер / модуль сторожевого приложения и попытавшись пропинговать postgres-sentry:

$ kubectl exec -it <pod-id-of-your-sentry-app> sh
# ping postgres-sentry

Также проверьте, есть ли у вас /etc/resolv.conf выглядит примерно так:

# cat /etc/resolv.conf
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

Наконец, проверьте, работают ли ваши модули DNS:

$ kubectl -n kube-system get pods | grep dns
coredns-xxxxxxxxxxx-xxxxx                                             1/1     Running   15         116d
coredns-xxxxxxxxxxx-xxxxx                                             1/1     Running   15         116d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...