Mikalai
30.03.2019
18:32:14
Alexey
30.03.2019
18:32:34
docker run --network host -d --name traefik -v /var/run/docker.sock:/var/run/docker.sock traefik traefik --api --docker
docker run -d --name demo --label traefik.frontend.rule=Host:mysite.ru emilevauge/whoami
curl -H 'Host: mysite.ru' http://localhost:80
Igor
30.03.2019
18:38:26
Google
Igor
30.03.2019
18:38:56
Alexey
30.03.2019
18:39:46
Igor
30.03.2019
18:40:53
Alexey
30.03.2019
18:41:40
Consul хранит конфигурацию, кто жив и тп. Consul template генерит конфиг после правок конфигурации
ildar
30.03.2019
18:56:18
Игорь
30.03.2019
20:14:49
Блин, короче, чет я офигел немного. Решил переехать на контейнеризацию на своем приложении. Но пока все разбирался с докером, сейчас еще продакшн. Мне просто кажется под мое приложение сварм зайдет. Я не планирую в ближайшее время скейлится на сотню серверов и сотни нод. Пока один сервак, одно сервеное приложение, три клиента под разные задачи...
Просто кубер крутой, спору нет. Но чет прям оверинжинеринг какой-то под мою задачу.
Никитяо
30.03.2019
20:16:02
чем просто докер не нравится?
Игорь
30.03.2019
20:17:34
Может базы данных переедут на отдельный сервак, но года через пол-год. Небольшой задел. И то если вырастут. В основном Монго дб, ибо много оперативы жрет
Alexey
30.03.2019
20:21:30
ansible это красивая обертка над парочкой docker run
inqfen
30.03.2019
20:22:17
Ансибл это логичная и идемподентная обёртка, я бы сказал
Mikalai
30.03.2019
20:22:55
Google
inqfen
30.03.2019
20:23:31
Так и его можно без сварма делать
Alexey
30.03.2019
20:24:10
Скейлинг на одной ноде)
tasks:
- name: run replicas
docker_container
image: ...
name: "app{{item}}"
with_sequence: start=1 end=4
inqfen
30.03.2019
20:24:12
И вообще кроме нод жс зачем скейлить что-то
А нода богомерзка
Игорь
30.03.2019
20:24:36
Alexey
30.03.2019
20:25:14
Игорь
30.03.2019
20:25:18
Alexey
30.03.2019
20:25:23
все, на что нужно zerodowntime
даж на php
Игорь
30.03.2019
20:25:50
golang
python, go для хипстеров))
шучу
Alexey
30.03.2019
20:26:02
дайте мой смузи
Mikalai
30.03.2019
20:26:34
inqfen
30.03.2019
20:26:51
Alexey
30.03.2019
20:27:09
Игорь
30.03.2019
20:27:15
inqfen
30.03.2019
20:27:25
А если она рестартуется вечно, то она и с свормом будет это делать
Alexey
30.03.2019
20:27:28
inqfen
30.03.2019
20:27:43
Про это полно всего
Игорь
30.03.2019
20:27:59
Гугл?
Да гугил, что шлак один
Google
Alexey
30.03.2019
20:28:05
https://habr.com/ru/company/express42/blog/254959/
я с этого вдохновился
дальше файлик закинуть, пакет установить и покатится
смысл ansible - не трогать сервер руками, только playbook
И через год не гадаешь, что за г?вно раскатано на сервере, есть playbook
Игорь
30.03.2019
20:29:26
я с этого вдохновился
По ансибл я уже на ютубе часа 4 накатал туториалов, но там все про голый деплой на чистые сервера.
Без завязки на докер
Alexey
30.03.2019
20:29:43
дальше дока по модулю, там все просто
docker_network ещё и тп
Игорь
30.03.2019
20:30:11
Alexey
30.03.2019
20:30:41
- name: Start 4 load-balanced containers
docker_container:
name: "container{{ item }}"
recreate: yes
image: someuser/anotherappimage
command: sleep 1d
with_sequence: count=4
тот пример с replicas
сверху нужно service discovery... но можно без него, если traefik использовать
docker run --network host -d --name traefik -v /var/run/docker.sock:/var/run/docker.sock traefik traefik --api --docker
docker run -d --name demo --label traefik.frontend.rule=Host:mysite.ru emilevauge/whoami
curl -H 'Host: mysite.ru' http://localhost:80
я уже приводил пример. Проще не сделаешь ни с чем. letsencrypt бонусом
* на месте whoami ваше приложение или приложения
inqfen
30.03.2019
20:33:32
И тот же traefik обновлять ансиблом
Alexey
30.03.2019
20:33:42
traefik это контейнер
inqfen
30.03.2019
20:33:43
Лейблы при деплое в смысле
Alexey
30.03.2019
20:33:47
ну да
inqfen
30.03.2019
20:33:49
И никаких забот
Google
Alexey
30.03.2019
20:34:09
- name: Start 4 load-balanced containers
docker_container:
name: "container{{ item }}"
recreate: yes
image: someuser/anotherappimage
command: sleep 1d
labels:
- traefik.frontend.rule=Host:mysite.com
with_sequence: count=4
inqfen
30.03.2019
20:34:16
В общем keep it simple, stupid
Это тому господину, который сворм хочет пилить
Потом не придётся удивляться, хули он кривой, хули сеть глючит, хули с ингресса не на все контейнеры уходит
В общем как-то так
И IaC опять же
Alexey
30.03.2019
20:37:08
если нужно раскатать контейнеры на пару серверов - то добавить consul. traefik будет брать адреса контейнеров оттуда и все продолжит работать.
https://docs.ansible.com/ansible/latest/modules/consul_module.html
При использовании этих модулей будет ругаться, что нет пакетов. Это нужно pip поставить и pip пакет consul/docker
Ставить через ansible
- name: Install pip
apt:
name: python-pip
- name: Install pip docker
pip:
name: docker
inqfen
30.03.2019
20:42:43
Кстати питон сразу 3 юзай
Alexey
30.03.2019
20:43:19
[all:vars]
ansible_python_interpreter=/usr/bin/python3
в hosts к примеру
Чат нужно в @ru_ansible переименовать xD
Игорь
30.03.2019
20:44:45
Anton
30.03.2019
20:45:24
а что сейчас на проде модно?
Игорь
30.03.2019
20:45:42
Voskresus
30.03.2019
20:45:50
Йоу, надо подключиться к контейнеру (образу) кеторый уже запущен
Игорь
30.03.2019
20:46:01
Кубер, ансибл, консул, номад....
Sergey
30.03.2019
20:46:11
Google
inqfen
30.03.2019
20:46:43
Ну докер композ там и не был актуален никогда
Это же скриптик на питоне, которым удобнее ран, билд и прочее выполнять
Voskresus
30.03.2019
20:47:52
inqfen
30.03.2019
20:47:53
Это так, для локальной разработки только
Или bash
Или какой там шелл есть
Alexey
30.03.2019
20:48:35
ansible так то тоже удобный скриптик для docker run =)
Voskresus
30.03.2019
20:48:59
inqfen
30.03.2019
20:49:01
Игорь
30.03.2019
20:49:02
Alexey
30.03.2019
20:49:20
inqfen
30.03.2019
20:49:49
Я хотел своим девелоперам предложить, как-то не взлетело
Неохота им разбираться ансибл какой-то, хуянсибл
Вот в докер композ посмотрел и все понятно сразу
Там сам что надо дописал, поменял, проверил, скинул мне
Игорь
30.03.2019
20:51:04
inqfen
30.03.2019
20:51:18
Я уже деплой на все окружения меняю, который на ансибле