Назад |
Перейти на главную страницу
Развертывание с помощью Docker Swarm на однородных устройствах без кластера
Можно ли использовать docker swarm для развертывания docker-контейнеров на однородном устройстве? Ответ должен быть положительным для кластеров. Но устройства IOT внутренне не связаны и не имеют никакого отношения друг к другу, кроме изображений.
Если есть способ сделать это с помощью Docker Swarm (или Kubernetes), каков будет рабочий процесс? Если есть другие технологии, были бы рады услышать предложения.
- непрерывный ci с участием докер и gitlab может соответствовать вашим потребностям, так как вы создаете свои изображения в gitlab и просто развертываете cron или другим методом, а устройства могут быть «пассивными» (за nat и вы не можете отправлять команды) https://www.taniarascia.com/continuous-integration-pipeline-docker/
- поскольку вам не нужен кластер , одно решение будет использовать Контекст докера и добавьте их пульты в качестве контекста → вам нужен VPN или ssh для доступа к демонам докеров через TCP / Socket
- если вы построите VPN (Уровень 2 или 3, все IP-адреса должны «видеть» друг друга) или использовать общедоступный IPv4 / IPv6 , то вы можете использовать docker swarm, а также запускать docker-сервисы, не контролируемые swarm на каждой машине, поскольку у него есть docker-сокет. Также вы можете иметь каждую машину в качестве менеджера, и, конечно, Вам решать какой внешний IP-адрес / порт вы привязываете к службе (после использования тегов, чтобы установить, на какой машине / типе машины она запускается)
- чтобы включить ssh за nat и развернуть вручную, вы можете использовать tor: https://www.howtoforge.com/anonymous-ssh-sessions-with-tor
- чтобы предотвратить открытие сокета, вы можете использовать ssh + local port forward или ssh + socat для пересылки сокета unix
- IoT не обязательно является ботнетом, но многие устройства просто плохо реализованы или шпионское ПО, отправляя все данные в свое облако, например включение / выключение света