← All posts tagged контейнеры

Balancer

Пришёл к идее, что, если удастся нормально настроить под MariaDB произвольную мастер-мастер репликацию индивидуальных БД (т.е. разные БД — на разные сервера), то надо нафиг выносить MariaDB из контейнеров («в каждом своя») на хост. Достало оверхедить памятью :)

Balancer

Отлично! weave позволяет на лету связывать в одну сеть уже запущенные контейнеры Docker и LXC. Жаль только, что не позволяет автоматически сменить точку входа в сеть, если исходная отваливается. Можно, конечно, скриптом попробовать оптимизировать, типа, если один внешний хост перестаёт пинговаться, то переключаемся на резервный... Может, есть более прямая альтернатива?

Balancer

Уф. Решил задачу автоматического конфигурирования Docker-связки nginx/host + nginx/container + php-fpm/container. Т.е. чтобы одним скриптом запуска всё соединялось в работающую конфигурацию. Пока всё костыльно, без прав доступа и т.п. Но не придётся придумывать статические порты доступа для контейнеров или вручную прописывать проксирование на nginx-хосте.

Balancer

Эти контейнеры меня доведут :D Поднял в контейнере MariaDB, настроил репликацию с удалённого сервера, дня три она крутилась, а сегодня сервер с контейнером перезагрузил. Лезу в MySQL — нет ответа. Хм. Начинаю ковыряться в Docker образах. В docker ps пусто. В docker ps -a вижу два container_id с образом mariadb. Запускаю один — фигушки. Другой — стартует. Потом становится понятно, что первый стартовал просто как mysql-клиент ко второму. Ладно, лезу в контейнер — репликации нет, головной сервер не настроен o_O. Лезу в /var/lib/mysql — там файлы от 01 декабря O_o. Потом смотрю, ещё и объём базы вместо 15Гб что-то около 300Мб...

В общем, ковырялся минут 40 в общей сложности, даже find'ом искал по всему диску БД по имени... Пока не догадался в lxc-ls глянуть и увидеть, что я базу-то в LXC-контейнере поднимал :D Как раз, специально, ибо сложная MySQL-конфигурация тянет не на приложение, а комплекс приложений. Придётся, походу, всё строго документировать, а то запутаться в десятках разнотипных контейнеров на полудюжине серверов как делать нефиг...

Balancer

Нашёл отличный рецепт, как присоединить weave к уже запущенному LXC-контейнеру: github.com
weave-lxc attach 10.0.1.234/8 container-name
и готово, контейнер включён в weave-сеть. То, чего мне так не хватало для начала практического использования weave. Docker — это прекрасно, но основная нагрузка всё равно пока на LXC. А теперь их можно объединить.

Одна беда, почему-то weave вообще не работает на двух основных серверах (Ubuntu 12.04 LTS и Gentoo). Хотя на одном из них точно работала раньше... В настройках роутинга, вроде, всё нормально. Не понимаю...

Напомню, что weave — это такая фигня, что легко ставится и позволяет просто, удобно и автоматизированно соединить в одну сквозную виртуальную сеть Docker-контейнеры в разных физических подсетях. В т.ч. связь идёт между закрытыми за NAT машинами при наличии общего открытого прокси — github.com

Balancer

Отличный инструмент для связывания контейнеров Docker в разных сетях.
github.com
Качаем небольшой скрипт и запускаем контейнеры через него, указывая требуемый IP контейнера. Качаем скрипт и запускаем через него контейнеры на второй машине, указав хост первой. Всё, наши контейнеры видя друг друга по сети, даже находясь в разных сетях, даже если вторая машина за NAT. Очень просто и удобно!