У меня есть кластер Kubernetes v1.4, работающий в AWS с узлами автоматического масштабирования. У меня также есть кластер Монго копия Установить с SSL-соединениями только (с общим именем FQDN) и записей публичных DNS:Создайте запись записи A в Kubernetes local DNS
- node1.mongo.example.com -> 1.1.1.1
- node2.mongo. example.com -> 1.1.1.2
- node3.mongo.example.com -> 1.1.1.3
узлы Kubernetes являются частью группы безопасности, которая позволяет получить доступ к Монго кластера, но только через их частных IP-адресов.
Есть ли способ создания записей A в Kubernetes DNS с частными IP-адресами при запросе публичного FQDN?
Первая вещь, которую я попробовал, был сценарий & ConfigMap комбинация для обновления/и т.д./хостов при запуске (см. Is it a way to add arbitrary record to kube-dns?), но это проблематично, так как другие Kubernetes услуги могут также обновить файл хостов в разное время.
Я также попытался услуги конфигурации & Enpoints:
---
apiVersion: v1
kind: Service
metadata:
name: node1.mongo.example.com
spec:
ports:
- protocol: TCP
port: 27017
targetPort: 27017
---
apiVersion: v1
kind: Endpoints
metadata:
name: node1.mongo.example.com
subsets:
- addresses:
- ip: 192.168.0.1
ports:
- port: 27017
Но это не удается, как имя службы не может быть полное доменное имя ...
Вы думаете об использовании экземпляра mongo AWS public DNS (общедоступное имя хоста)? Он перенаправляет на частный IP при вызове из экземпляра ec2: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-ip-addressing.html#vpc-public-ip-addresses –