SSH в созданный DC / OS узел общедоступного агента для развертывания контейнера Docker?

В: Я хочу подключиться по SSH к общедоступному агенту DC / OS, чтобы смонтировать мой файловый ресурс с учетными данными Docker, чтобы я мог развернуть Docker через Marathon. Как я могу подключиться по ssh напрямую к этому узлу агента? Без использования мастера?


Предыстория: я выполнил обычную установку DC / OS в Azure. Я подготовил два узла (главный и агент). Установил на мастере Марафон.

Сначала я попытался развернуть контейнер из образа / репозитория, который я создал в Реестре контейнеров Azure, через Marathon. Не удалось из-за нехватки ресурсов ЦП; это частично понятно, потому что кажется, что Marathon поглощает весь ЦП главного узла. Но я не мог понять, как заставить Marathon заметить, что есть еще один узел - узел публичного агента. Узел публичного агента ничего не работает.

Во-вторых, я решил, что могу просто использовать интерфейс «Служба», предоставляемый на самом уровне DC / OS (который, как мне кажется, является просто уровнем пользовательского интерфейса для марафона или аналогичного).

На этот раз он точно распознает узел агента и наличие доступных вычислений. Но чтобы заставить его извлекать из моего частного реестра, мне нужно разместить свои учетные данные Docker на этом узле. Вот где я застрял. не может подключиться по SSH к узлу агента, чтобы смонтировать общее хранилище (которое уже подключено к главному устройству). Поскольку этот узел предоставляется с помощью масштабируемого набора виртуальных машин, я действительно не могу определить правильные правила NAT для входящего трафика и конфигурацию сетевой безопасности для сопоставления с этим узлом и получения надежного полного доменного имени и порта, которые позволят мне подключиться к SSH и запустить его. cifs. Честно говоря, DC / OS должна была позаботиться об этом за меня, так как я делаю самые стандартные вещи.

Я пробовал это, но этого недостаточно / правильно (хотя и создает правило):

az network lb inbound-nat-rule create --resource-group production --lb-name <lb-name> --name NATRule --protocol TCP --frontend-port 2200 --backend-port 22

(Все подробные видеоролики VMSS от Microsoft предназначены для старого интерфейса и этой идеи сопоставления диапазонов портов, которую я не могу понять из интерфейса командной строки. Кроме того, портал все еще находится в разработке, когда дело доходит до правил NAT для входящего трафика)

Я новичок в мире Azure и DC / OS (перемещение ресурсов из AWS), поэтому буду признателен за помощь.


ОБНОВЛЕНИЕ: оказалось, я пробовал предварительную версию DC / OS в службе Azure, а не DC / OS в службе контейнеров Azure , который все еще немного нестабилен. Запускайте контейнеры через интерфейс «Services» на основном DC / OS, а не на Marathon.


person Varun Arora    schedule 12.06.2017    source источник


Ответы (2)


Я действительно не могу определить правильные правила входящего NAT и конфигурацию сетевой безопасности для сопоставления с этим узлом и получения надежного полного доменного имени и порта, которые позволят мне подключаться по SSH и запускать cifs.

На данный момент мы можем добавить правило для входящего трафика в балансировщик нагрузки VMss через CLI 2.0, но мы не можем использовать CLI 2.0 для разделения целевой сетевой карты, поэтому мы не можем использовать NAT для экземпляров ssh VMss. введите описание изображения здесь

Если у вас только один экземпляр в этой VMSS, мы можем добавить правило балансировщика нагрузки к нему. Добавьте зонд порта 22 и добавьте правило балансировщика нагрузки 22, после чего мы можем ssh общедоступный IP-адрес VMSS с портом 22.

Другой способ - войти в узел DCOS, мы можем через главный ssh ​​подключаться к другим узлам. Например, мы можем использовать ssh для управления, а затем ssh для публичного агента. введите здесь описание изображения Здесь рассказывается о том, как войти в агент DCOS через мастер, см. it.

После этого мы можем следовать этой статье, чтобы подключить общую папку Azure к узлам кластера.

Кстати, мы можем создать контейнер через пользовательский интерфейс DC / OS, см. it.

person Jason Ye    schedule 12.06.2017
comment
Вы можете изменить правила NAT, используемые для масштабируемого набора в интерфейсе командной строки, с помощью az network lb inbound-nat-pool update. - person sendmarsh; 12.06.2017
comment
Большое спасибо за вдумчивый ответ, @Jason. Таким образом, создание контейнера через пользовательский интерфейс DC / OS снова не удается по той же insufficient resources причине. Я дословно выполнил все шаги по вашей ссылке. - person Varun Arora; 13.06.2017
comment
@VarunArora, можете ли вы показать мне настройки вашего образа докера для процессора? - person Jason Ye; 13.06.2017
comment
Конечно, @Jason, вот: "cpus": 1, "mem": 64, "disk": 0, "instances": 1, - person Varun Arora; 13.06.2017
comment
@VarunArora Насколько я знаю, "cpus": 1 означает 100% ЦП, попробуйте 0,7 или меньше. - person Jason Ye; 13.06.2017
comment
@ JasonYe-MSFT, кучу перепробовал, от 0,1 до 0,8, ничего не получилось. Все они были больше, чем доступное количество 0.0 (поскольку мастер использует 100% загрузки ЦП). Публичный агент лежит неиспользованный. - person Varun Arora; 13.06.2017
comment
@VarunArora вы можете создавать изображения на агенте? по умолчанию мы не можем создавать изображения на мастере. - person Jason Ye; 13.06.2017
comment
Позвольте нам продолжить это обсуждение в чате. - person Jason Ye; 13.06.2017
comment
@ JasonYe-MSFT О, это моя цель - создать это на агенте :) Но я не знаю, как заставить Marathon заметить, что я хочу, чтобы это было на моем агенте. Вероятно, он спрашивает DC / OS: есть ли у вас для меня какие-либо ресурсы? И DC / OS, вероятно, говорит, что не на этом узле, сынок. Это не говорит Марафону: есть еще один узел, пугающий, вот и все. - person Varun Arora; 13.06.2017

Не могли бы вы описать, чего вы пытаетесь достичь? Вы действительно описываете, что вы сделали, и все это кажется верным. Кажется, здесь есть две вещи:

1) Используйте ACR с DC / OS - https://docs.microsoft.com/en-us/azure/container-service/container-service-dcos-acr

2) Предоставьте доступ к общедоступному контейнеру - см. https://docs.microsoft.com/en-us/azure/container-service/container-service-enable-public-access

Если они не дают вам того, что вам нужно, отредактируйте свой вопрос, чтобы описать, чего вы пытаетесь достичь.

person rgardler    schedule 12.06.2017
comment
Большое спасибо, @rgardler. Обновил вопрос. Что касается ссылки (1), да, я могу смонтировать общую папку на главном узле. Я хочу сделать это на публичном агенте. А для ссылки (2) он предоставляет доступ к порту приложения контейнера, а не к самой виртуальной машине узла агента. Мне нужно подключиться к агенту по SSH, чтобы смонтировать общий файловый ресурс, что позволит мне запускать туда контейнеры. (Не имеет отношения к моему вопросу, но я пытаюсь открыть порт 8983 для контейнера Solr на основе вашей ссылки (2), и, несмотря на выполнение шагов в контейнере службы DC / OS, открывающем порт с hostPort, это не так. работающий) - person Varun Arora; 13.06.2017
comment
Я беру комментарий 8983 о выставлении порта назад. До завершения обновления требуется некоторое время, но в конечном итоге оно работает. Спасибо за это! Могу я просто сделать это с портом 22 для SSH к виртуальной машине? - person Varun Arora; 13.06.2017