Сегодня технология 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-адреса хостов.
Опыт запуска контейнеров в облаке GigaCloud
В начале лета 2019 года украинская GigaCloud открыли клиентам бета-тестирование услуги «Кластер контейнерной виртуализации Kubernetes в облаке». На тот момент из доступных функций у них был только заказ кластера, выбор конфигурации хоста, масштабирование и присвоение хосту IP-адресов.
Также был опыт построения клиентских сервисов в контейнере. Они запустили VPN-сервер для клиентов, которые хотели «спрятать» свои виртуальные машины от «большого» интернета, ограничивать к ним доступ и объединять свои облачные серверы в подсети. Ранее для этого необходимо было либо вручную перенастраивать сеть, либо клиенту выделять отдельную виртуальную машину под vpn-сервер. GigaCloud научились запускать это ПО в контейнере, создавая их под отдельных клиентов. Это сработало: клиенты получили удобный инструмент, а для техподдержки упростили работу.
Источник: ain.ua
0 комментариев
Добавить комментарий