Как сконфигурировать Cornns с несколькими пространствами имен в kubernetes, чтобы получить модули в каждом пространстве имен, получая свое собственное разрешение DNS - PullRequest
0 голосов
/ 03 апреля 2020

Kubernetes версия 1.13.5, установленная kubeadm, в чистом виде.

Я создал 2 пространства имен, которые являются 'dev' & 'test'. Добавьте некоторые самостоятельно созданные записи DNS (например, «mysql .a.com») в cornns, по умолчанию в «kube-system» ns.

Я хочу добиться того, чтобы в каждом пространстве имен были получены стручки он имеет разрешение записи DNS, как pod в 'dev' ns lookup для 'mysql .a.com', получает 1.1.1.1, pod в 'test' ns lookup для 'mysql .a.com' получает 2.2.2.2 , И все эти службы, которые я хочу сопоставить с DNS-записью, находятся за пределами кластера.

Возможно ли это? или я что-то пропустил.

1 Ответ

0 голосов
/ 03 апреля 2020

Держитесь подальше от настройки параметров кластера по умолчанию в CoreDNS для этого. Вместо этого используйте службы Kubernetes.

Для создания записи в DNS можно использовать тип службы ExternalName . Поскольку службы ExternalName, как и другие службы, являются ресурсами пространства имен, одна и та же запись DNS может разрешаться по-разному в соответствующем пространстве имен.

Пример для dev:

apiVersion: v1
kind: Service
metadata:
  name: database
  namespace: dev
spec:
  type: ExternalName
  externalName: dev-database.example.com

Пример для теста:

apiVersion: v1
kind: Service
metadata:
  name: database
  namespace: test
spec:
  type: ExternalName
  externalName: test-database.example.com

Внутри каждого пространства имен DNS-запрос для database.svc.cluster.local будет преобразован в dev-database.example.com или test-database.example.com.

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