Kubernetes ExternalName, выставляющее 10.0.2.2 - PullRequest
0 голосов
/ 23 декабря 2018

Я создал службу Монго следующим образом:

apiVersion: v1
kind: Service
metadata:
  name: mongo-svc
spec:
  type: ExternalName
  externalName: 10.0.2.2
  ports:
  - port: 27017

При запуске кластера с помощью следующей команды:

minikube start --vm-driver=virtualbox

Я ожидаю адрес обратной связи Virtualbox (10.0.2.2) для сопоставления с локальным экземпляром БД Mongo, который работает на моем локальном компьютере.

Однако при входе в модуль и попытке пропинговать 10.0.2.2 я испытываю 100% -ную потерю пакета.

Есть ли что-то, что я здесь упускаю?

1 Ответ

0 голосов
/ 23 декабря 2018

Так что, если вы пытаетесь выставить MongoDB как внешнюю службу и в основном сопоставить mongo-svc с 10.0.2.2, то

первая проблема заключается в том, что ExtrnalName должно указывать полное доменное имя фактической службы,согласно Kubernetes doc: «ExternalName принимает строку адреса IPv4, но в виде DNS-имени, состоящего из цифр, а не в качестве IP-адреса.ExternalNames, которые напоминают адреса IPv4, не разрешаются CoreDNS или ingress-nginx .. »

Вторая проблема заключается в том, что весь смысл внешней службы состоит в том, чтобы абстрагировать внешние службы путем создания службы ExternalName, чтобы модули могли подключаться квнешний сервис через mongo-svc.default.svc.cluster.local (используйте значение по умолчанию, если ваш mongo-svc в пространстве имен по умолчанию, что, как кажется, имеет место на основе вашего YAML), и не используйте имя внешнего сервиса и его расположение, чтобыпри необходимости вы можете изменить определение сервиса и указать другой сервис.

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