GigaCloud запустил кластеры Kubernetes в своем облаке

  • 14 января, 13:38
  • 3672
  • 0

Сегодня технология Kubernetes — одна из самых обсуждаемых технологий в мире IT. Все, что нужно знать неподготовленным читателям о ней — ее придумали для того, чтобы упростить жизнь IT-специалистам и делать больше за меньшие деньги. Как она работает и для каких целей используется читайте ниже. 

В июне 2014 года компания Google открыла исходный код и выпустила в общее использование технологию Kubernetes. Разработчик игр Niantic увидел в ней большую перспективу, и в 2016 году выпустил на рынок игру Pokemon Go, построенную с использованием Kubernetes. В августе 2019 года количество закачек игры Pokemon Go достигло одного миллиарда. Рост количества пользователей игры превысил ожидания Niantic в 5 раз. 

Что такое Kubernetes

Успех Pokemon Go стал возможен именно благодаря технологии Kubernetes. Она позволяет ускорить разработку и тестирование приложений, легко переносить приложения на разные платформы, между средой разработки и продуктивной средой, а также обработать большие нагрузки. 

Kubernetes базируется на двух вещах: контейнеризация и оркестрация. 

Контейнер — это уровень виртуализации, когда приложения изолируются друг от друга и существуют на виртуальном сервере автономно, но при этом могут использовать общее ядро сети и необходимые для работы библиотеки. За счет этого контейнер мало «весит», быстро запускается и выключается, может перемещаться между разными серверами, расположенными на разных площадках.

Оркестрация — это инструмент, который автоматизирует управление контейнерами, их разворачивание, запуск и мониторинг состояния. До появления этого инструмента разработчику необходимо было не только создать само приложение, но и развернуть под него сервер, установить ОС, необходимые библиотеки, само приложение, проверить его работу. Чтобы проверить, будет ли работать приложение на другой версии библиотек (скажем, на предыдущей версии Java), необходимо было сделать то же самое снова. Потом во время релиза — снова развернуть продуктивный сервер, установить ОС, библиотеки и само приложение, управлять этим сервером, добавлять память или процессорные ядра.

Теперь приложение можно «упаковать» в контейнер и развернуть, написав одну строчку в консоли. Точно так же упрощается и создание серверов: описанная в файле конфигурация будет реализована на сервере оркестратором. Он создаст хост с нужной ОС и скачает нужные библиотеки с репозиториев. 

Контейнеры используют для динамичных и высоконагруженных сервисов, таких как госуслуги, крупные интернет-магазины и маркетплейсы.

Преимущества контейнеров:

  • Изоляция. Приложения не конфликтуют между собой и используют общие ресурсы ОС.
  • Легковесность. Контейнер содержит только само приложение, благодаря чему оно быстро запускается, устанавливается и перемещается между хостами.
  • Эффективное использование ресурсов. Контейнеры используют ядро ОС, а это значит, что гостевая операционная система не нужна.
  • Безопасность. Осуществляется за счет изоляции контейнеров друг от друга.
  • Единая среда разработки. Контейнер работает независимо от того, какой используется гипервизор и в каком облаке находится инфраструктура.
  • Масштабируемость. Быстро осуществляется горизонтальное масштабирование, создавая контейнеры для краткосрочных задач.

Кто продвигает контейнеры и где здесь место Украины

Украинские разработчики давно используют контейнеры. В основном все строят их либо на собственной инфраструктуре, либо используют облака Google и Amazon. Причина — до недавнего времени украинские облачные операторы не предлагали такую услугу. Стоит отметить, что украинский контейнер практически ничем не уступает импортным. Объясняем, почему:

  • более низкая задержка при доступе к инфраструктуре;
  • наличие технической поддержки, которая реально берет трубку и готова помогать клиенту, на понятном ему языке;
  • есть возможность обсуждать связанные с инфраструктурой вопросы, в том числе при личной встрече;
  • не в последнюю очередь — конкурентная цена.

Может ли украинский контейнер быть «коряво собранным» — в отличие от «брендового» от Google и Amazon? Нет. Для потребителя работа с украинским оператором ничем не отличается от работы с глобальным. Особенностью Kubernetes является независимость от того, на железе какого производителя работает инфраструктура, какой используется виртуализатор, в каком дата-центре находится оборудование. Он всеяден и будет работать, а разработчик — видеть перед собой все ту же консоль kubectl, и использовать все те же репозитории. Единственное, что для него изменится — IP-адреса хостов.

Наш опыт запуска контейнеров в облаке

В начале лета 2019 года мы открыли нашим клиентам бета-тестирование услуги «Кластер контейнерной виртуализации Kubernetes в облаке». На тот момент из доступных функций у нас был только заказ кластера, выбор конфигурации хоста, масштабирование и присвоение хосту IP-адресов.

Также у нас был опыт построения клиентских сервисов в контейнере. Мы запустили VPN-сервер для клиентов, которые хотели «спрятать» свои виртуальные машины от «большого» интернета, ограничивать к ним доступ и объединять свои облачные серверы в подсети. Ранее для этого необходимо было либо вручную перенастраивать сеть, либо клиенту выделять отдельную виртуальную машину под vpn-сервер. Мы научились запускать это ПО в контейнере, создавая их под отдельных клиентов, и точно знали, что это принесет пользу. Это сработало: клиенты получили удобный инструмент, а для нашей техподдержки мы упростили работу.

Тестирование и доработки

Мы хорошо изучили наших клиентов и партнеров, поэтому группу для теста оказалось набрать несложно. В рамках тестирования на протяжении лета мы калибровали автоматическое масштабирование кластера, подключение хранилищ, выделение прав на чтение/запись в хранилищах и много другое.

Что мы решили сделать отличием нашего продукта — это почасовую тарификацию использования ресурсов. Об облаке принято говорить — «легко масштабируется, позволяет экономить». Работая в облаке, клиент может управлять квотой потребляемых ресурсов, делая ее больше и меньше. Это не в полной мере позволяет раскрыть потенциал инфраструктуры, которая автоматически масштабируется. Так, клиент который купил квоту ресурсов и построил на ней само масштабируемый кластер, все равно будет оплачивать всю квоту — не важно, загружен кластер сейчас на 20% или 100%.

Мы решили предложить следующую схему работы: клиент выбирает максимальный предел, до которого может расширяться кластер, а оплачивает время фактической работы созданных хостов. Например, когда кластер не нагружен и состоит из двух серверов, клиент платит только за два сервера. При этом в любой момент, без участия человека количество серверов может увеличиться до того предела, который определил клиент, в тот же момент, когда появится нагрузка.

Мы разработали инструкцию, с помощью которой каждый за 15-20 минут сможет создать свой проект на WordPress, используя Kubernetes в нашей тестовой среде. Сделать это можно здесь. 

Теперь, перед тем, как вы захотите разработать какой-то сервис, спросите у своего IT-специалиста можно ли это сделать с помощью технологии Kubernetes.


Теги: kubernetes
0 комментариев
Сортировка:
Добавить комментарий