Почему Kubernetes — это новый Linux: 4 аргумента
+Star Patrol I+ by ERA7
Привет, я Павел Селиванов, Architect и Developer Advocate в VK Cloud Solutions. Современные тенденции в отрасли приводят меня к убеждению, что Kubernetes становится чем-то вроде Linux, и в этой статье хочу объяснить свою позицию.
Перед началом VK Kubernetes Conference мы провели опрос среди участников Вечерней школы Kubernetes. Спросили, используют ли они Kubernetes в своих компаниях: ответили «да» 73% участников.
Сообщество К8s растет, альтернативные решения — Docker Swarm, Nomad и другие — столь же массово не применяют. Похоже, мы вплотную подходим к моменту, когда Kubernetes де-факто становится стандартом. Давайте разберем основные факторы, которые на это повлияли.
Статья написана на основе моего выступления на VK Kubernetes Conference — вы можете посмотреть его в записи.
1. Docker стандартизовал управление пакетами
Превращение Kubernetes в стандарт — во многом заслуга создателей Docker. Если бы эта технология была просто средством запуска контейнеров, заметную долю рынка сейчас занимал бы, к примеру, LXC.
Однако причина, по которой революцию в ИТ совершил Docker, в стандартизации. Именно он стал универсальным менеджером пакетов, который одинаково работает где угодно. Все, что запускается у разработчика локально, можно запустить на stage, на production и даже на ноутбуке с Windows у менеджера, который хочет познакомиться с системой.
2. Все есть YAML-манифест
Стандартизация — сильная сторона и самого Kubernetes, где подход к решению некоторых задач во многом похож на подход Linux. Например, в Linux (а до него — в UNIX) реализована гениальная идея, что в операционной системе все есть файл. В Kubernetes же все есть YAML-манифест. Если раньше вы имели дело с разнотипными объектами в DevOps-инструментах, с юнитами systemd, с jar, c Tomcat-серверами, кластерами, то сейчас у вас все управляется через манифесты.
Благодаря способности Kubernetes к расширению концепции вездесущности и универсальности YAML-манифестов мы можем продвинуться гораздо дальше простого управления контейнерами.
3. Дистрибутивы Kubernetes упрощают развертывание кластеров
Следующий важный момент — тенденция к упрощению развертывания Kubernetes. Сейчас эту процедуру, конечно, уже не сравнить с установкой Gentoo Linux, но на Arch Linux это все еще похоже: скачайте вот эти бинарники, сгенерируйте для них сертификаты, сложите вот сюда конфигурационные опции и т. д.
Установка Kubernetes сегодня — это как Arch Linux
Все это говорит о том, что у Kubernetes, как и раньше у Linux, в большом количестве будут появляться дистрибутивы. Их задача — упростить установку кластеров и управление ими, а также решить другие задачи. Поэтому можно смело утверждать: Kubernetes перерос оркестрацию контейнеров. Сегодня его было бы намного корректнее называть ядром кластерной операционной системы.
Эта тенденция хорошо заметна в мире большого энтерпрайза. Приведу известный пример. Несколько лет назад компания IBM купила компанию Red Hat. Перед сделкой были слухи о том, что IBM не против рассмотреть и Canonical — создателей самого популярного серверного дистрибутива Linux под названием Ubuntu. Почему IBM все-таки выбрали не их? Я думаю, свою роль здесь сыграло то, что у Red Hat был собственный популярный дистрибутив Kubernetes под названием OpenShift, а у Canonical такого решения не было.
4. Вокруг Kubernetes API формируется экосистема
API в Kubernetes, по сути, является аналогом POSIX в Linux. Он очень логично устроен: есть адрес API-сервера, API, версия API, неймспейсы, объекты — Pod, имя Pod и т. д. Все это представлено с точки зрения API в формате JSON, а с точки зрения того, как мы с этим обычно работаем, — в формате YAML. И все это стандартизировано.
Сам факт, что Kubernetes API — аналог POSIX для кластера, говорит нам о том, что Kubernetes со временем отойдет на дальний план. Ведь когда мы разрабатываем приложения, мы не думаем о POSIX. Все знают, что он из себя представляет и как устроен, все пользуются им по умолчанию. С Kubernetes примерно то же самое.
В итоге все идет к тому, что мы перестаем говорить об устройстве Kubernetes и построении кластера на нем. Вместо этого мы говорим о Kubernetes Native Big data и Kubernetes Native DBaaS, у нас появляются Kubernetes Native DevOps инструменты и другие.
Уже сейчас складывается картинка, похожая на известную инфографику CNCF Landscape, потому что Kubernetes превращается в большую платформу для запуска чего угодно.
Один из авторов Kubernetes как-то сказал: если мы правильно делаем свою работу, то лет через пять люди должны вообще перестать разговаривать о Kubernetes. И не потому, что он перестанет быть актуальным или станет слишком скучным. Просто он превратится в нормальный инструмент, на базе которого мы получим множество других, инновационных инструментов. И тогда конференции о Kubernetes уйдут в прошлое так же, как в прошлое ушли конференции про ядро Linux.
Команда VK Cloud Solutions развивает собственный Kubernetes aaS, о нем рассказывали в этой статье. Будем признательны, если вы его протестируете и дадите обратную связь. Для тестирования всем новым пользователям начисляем при регистрации 3000 бонусных рублей.
Что почитать по теме: