Ах, Kubernetes — эта загадочная зверушка из мира облачных технологий! Если вы когда-нибудь пытались понять его с первого взгляда, то знаете: это как пытаться собрать мебель из IKEA без инструкции и с шестью лишними винтиками.
Высокий порог входа? Да там скорее гора Эверест для новичков! Но не пугайтесь, я здесь, чтобы превратить эту сложную науку в забавное приключение. Меня зовут Павел Селиванов, и я — ваш проводник в мире DevOps и облаков Mail.ru Cloud Solutions.
Если Kubernetes кажется вам чем-то вроде заклинания из Гарри Поттера, то приготовьтесь — мы разберёмся вместе!
Вместо того чтобы часами ковыряться в настройках кластера и рисковать превратить ваш сервер в электронный кирпич, предлагаю подружиться с Managed Kubernetes — то есть взять всё самое сложное за вас на себя и просто наслаждаться результатом. Это как заказать пиццу вместо того, чтобы самому месить тесто: быстрее, проще и вкуснее (ну или почти).
Мы запустим реальный API-сервис на нашем облаке — не просто так, а с Docker’ом и PostgreSQL в придачу. Представьте себе: две инстансы нашего приложения будут дружно работать в кластере Kubernetes, а база данных будет хранить всех пользователей словно библиотекарь аккуратно расставляет книги.
Если вы думаете: «А что если я совсем новичок?» — не беда! У нас даже есть бонусные рубли для новых пользователей на тестирование. Как говорится, «халява — двигатель прогресса».
Архитектура проекта будет проще пареной репы: маленькое Go-приложение с API для управления пользователями. Добавляйте их, смотрите, меняйте или удаляйте — всё как в настоящей социальной сети для программистов.
Теперь о самом интересном: регистрация и настройка кластера.
Заходите в личный кабинет Mail.ru Cloud Solutions (не забудьте пароль записать куда-нибудь кроме блокнота с котиками). Выбираете раздел «Контейнеры» — «Кластеры Kubernetes» и смело жмёте «Создать кластер». Тут у вас три варианта среды: Production с тремя Master-узлами (для тех, кто любит жить на грани), Staging (наш выбор — золотая середина) и ещё что-то там… Главное не перепутать!
Не забудьте включить Ingress Controller Nginx — это как поставить охранника у ворот вашего приложения.
Затем задаёте имя кластера (можете назвать его «Мой первый К8с» или «Потерянный кластер»), оставляете параметры по умолчанию (иногда лень — лучший друг), выбираете два Node-узла (чтобы приложение не скучало) и запускаете процесс создания. Пока ждёте 10–20 минут, можно выпить кофе или вспомнить анекдот про программиста:
— Почему программисты путают Хэллоуин и Рождество?
— Потому что Oct 31 == Dec 25!
Когда кластер готов, скачиваете kubeconfig-файл – это как паспорт для вашего приложения. Устанавливаете kubectl на локальную машину – инструмент этот похож на волшебную палочку Гарри Поттера: с ним можно командовать всеми узлами кластера одним взмахом клавиатуры.
Далее проверяем наших узлов командой kubectl get nodes.
В ответ видим один Master и два Node-а — наши верные солдаты готовы к бою! Теперь переходим к базе данных PostgreSQL.
В панели управления выбираем пункт меню «Базы данных», нажимаем «Создать БД» и выбираем Single-инстанс версии 12 – идеально для разработки.
Настройки сети важно выбрать те же виртуальные сети что у кластера – иначе ваше приложение будет искать базу данных так же упорно, как кот ищет еду ночью по квартире. И поверьте мне, этот поиск может затянуться надолго!
Managed Kubernetes — это идеальный способ быстро и просто запустить свои приложения в облаке без лишних сложностей и головной боли.