Как я могу получить доступ к внешнему серверу MongoDB на экземпляре ec2 из приложения, запущенного внутри кластера Kubernetes, созданного с помощью kops?

У меня возникла ситуация, когда мой MongoDB работает на отдельном экземпляре ec2, а мое приложение работает внутри кластера kubernetes, созданного kops. Теперь я хочу получить доступ к БД из приложения, запущенного внутри k8s.

Для этого я попробовал пиринг VPC между VPC k8s и VPC экземпляра ec2. Я попытался установить запрашивающий VPC как k8s VPC и принимающий VPC как экземплярный VPC. После этого я также добавил правило входа в группу безопасности экземпляра ec2 для разрешения доступа из группы безопасности кластера k8s через порт 27017.

Но когда я подключился по ssh к узлу k8s и попытался использовать telnet, соединение не удалось.

Что-то не так в процедуре? Есть ли лучший способ справиться с этим?

Блоки CIDR:

  1. K8S VPC - 172.20.0.0/16

  2. MongoDB VPC - 172.16.0.0/16


person Shantanu Deshpande    schedule 21.10.2018    source источник
comment
в чем ошибка телнета? Можете ли вы пропинговать узел mongofb из контейнера / контейнера kubernetes?   -  person Ijaz Ahmad Khan    schedule 21.10.2018
comment
обновите вопрос, указав тип ошибки подключения   -  person Ijaz Ahmad Khan    schedule 21.10.2018
comment
вам может потребоваться захватить несколько пакетов и посмотреть, что происходит   -  person Ijaz Ahmad Khan    schedule 21.10.2018


Ответы (2)


Каковы блоки CIDR двух VPC? Они не должны пересекаться. Кроме того, при изменении групп безопасности необходимо убедиться, что обмен данными разрешен в обе стороны. То есть, помимо изменения вашего MongoDB VPC для разрешения входящего трафика от K8s VPC, вам необходимо убедиться, что K8s VPC разрешает входящий трафик из MongDB VPC.

person Grant David Bachman    schedule 21.10.2018
comment
Я обновил вопрос с блоками CIDR. И да, я добавил правило для входящего трафика для группы безопасности узлов k8s, чтобы разрешить трафик из группы безопасности экземпляра MongoDB. Я просто проверяю доступ к серверу mongodb с одного из узлов k8s с помощью telnet, чтобы проверить подключение перед развертыванием приложения. Сообщите мне, нужно ли проверить случай другим способом. - person Shantanu Deshpande; 22.10.2018

Во-первых, это, похоже, не проблема kubernetes.

Убедитесь, что у вас есть правильный маршрут от kubernetes до узла mongodb и наоборот

Убедитесь, что требуемые порты открыты в группах безопасности VPC.

Разрешить входящий трафик от kubernetes vpc к monogdb vpc

Разрешить входящий трафик от mongodb vpc к kubernetes vpc

Убедитесь, что безопасность пространства имен разрешает входящий и связанный трафик.

person Ijaz Ahmad Khan    schedule 21.10.2018