Как стать автором
Обновить

Почему Kubernetes протянет ещё 50 лет

Время на прочтение6 мин
Количество просмотров9K
Автор оригинала: Natan Yellin

От мейнфреймов до ПК, до смартфонов, до облаков и так далее. Генеральный директор Robusta.dev Натан Йеллен говорит о Kubernetes и будущем облачных вычислений. Узнайте, почему Kubernetes — это больше, чем просто платформа для оркестрации контейнеров, это облачный стандарт следующего полувека.

Автор: Натан Йеллин, Генеральный директор Robusta.dev
Вольный перевод. Машинный перевод здесь.

Оригинал текста (на английском).

Комментировать лучше не здесь, а через Dissenter Browser Extension (без ограничений по дате регистрации или "возрасту" самой статьи, не нужна даже учётка на самом habr.com) а то фанатеющее от израильского Яндекса и FreeBSD-4.0 "украинское" секс-меньшинство ввело против меня цензуру и теперь я могу отвечать не чаще, чем раз в месяц, а скоро могу и вовсе потерять доступ к собственному переводу.

Преимущества Kubernetes как оркестратора контейнеров широко известны с момента его появления в 2014 году.

Таких преимуществ много

  1. Kubernetes является декларативным и позволяет вам сосредоточиться на том, что должно произойти, а не на том, как это происходит.

  2. Kubernetes позволяет разделить задачи, предоставляя командам разработчиков высокоуровневый API, над которым они работают (например, файлы yaml), не беспокоясь об операционных проблемах, таких как обслуживание контура управления.

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

  4. Kubernetes поддерживает гибкие методологии, такие как быстрая разработка, непрерывная интеграция и развертывание (CI/CD), а также рабочие откаты (rollbacks).

  5. Kubernetes обеспечивает согласованность в средах разработки, тестирования и промышленной.

Я мог бы целыми днями говорить о преимуществах, которые Kubernetes предлагает как средним, так и малым предприятиям. Благодаря открытому исходному коду Kubernetes Google предоставил каждому разработчику в мире возможность использовать первоклассные инструменты. Это продолжает облачную революцию, начатую Amazon, когда они запустили AWS, на этот раз улучшая программную часть, а не аппаратную.

Однако давайте посмотрим на Kubernetes с совершенно другой точки зрения.

Kubernetes в качестве облачной операционной системы?

Kubernetes — это оркестратор контейнеров, но что такое оркестратор контейнеров? Чтобы ответить на этот вопрос, давайте вернемся в прошлое.

Представьте, что сейчас конец 70-х и вы только что создали первую в мире операционную систему для персональных компьютеров. Как вы это продаете?

Возможно, вы называете это «организатором процессов», потому что операционная система позволяет запускать несколько процессов одновременно и организует их таким образом, чтобы они не мешали друг другу. Нет, не нравится имя? Что ж, термин «операционная система» был выбран и с тех пор прижился.

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

Kubernetes делает все это и многое другое, но теперь машина — это целый центр обработки данных в облаке, а оборудование — это облачный провайдер, такой как AWS или GCP.

Некоторым это может показаться немного надуманным — и позвольте мне прояснить — я не верю, что Kubernetes как ОС для облачных вычислений приведет к устареванию других операционных систем, таких как Linux или Windows — они все еще здесь, чтобы остаться.

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

Зачем нам облачная ОС?

Давайте рассмотрим макропричины, по которым организации переходят на облако, и почему стандартизация так привлекательна.

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

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

Однако всеми этими контейнерами необходимо управлять так же, как необходимо управлять процессами на отдельной машине. Кроме того, сама базовая инфраструктура должна управляться и распределяться справедливым и эффективным образом. Наконец, вы должны сохранять свободу перемещения между основными облаками и избегать привязки к поставщику (vendor lock).

Все это заботы операционных систем, от управления ресурсами до планирования и аппаратной абстракции.

Масштабный сдвиг парадигмы

Мы уже видели это раньше. Когда впервые появились мобильные телефоны, появились и мобильные операционные системы, такие как Android и iOS. До этого, когда мир перешел от мейнфреймов к персональным компьютерам, были изобретены Windows и другие операционные системы для ПК.

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

Что дает ОС?

На высоком уровне операционная система управляет ресурсами — и точка. Более подробно, есть физические ресурсы, такие как ваш диск, графический процессор и память, и виртуальные ресурсы, такие как файлы и пользователи.

Операционная система берет все эти ресурсы и управляет ими. Она разделяет их справедливо и эффективно между различными процессами.

Время тоже ресурс. Операционная система распределяет процессорное время между запущенными процессами с помощью централизованного планировщика.

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

С этой точки зрения концепция ОС Kubernetes приобретает больше смысла, поскольку все эти сервисы предоставляются Kubernetes в контексте вашего центра обработки данных.

Параллели операционной системы Kubernetes

Сделаем несколько замен, чтобы аналогия была более естественной. Например, мы можем сравнить процессы и потоки Linux с подами и контейнерами в Kubernetes. Мы можем сравнить процессоры с узлами. Следовательно, планирование процессов для ЦП теперь эквивалентно планированию подов для узлов.

Основная философия Linux заключается в том, что «все является файлом». В Kubernetes эквивалентом этого является «все является ресурсом yaml в etcd» или «все является CRD». Это тоже форма стандартизации, которую операционные системы используют для упрощения жизни пользователей и разработчиков. В Linux каждый файл работает со стандартным API, поэтому любой ресурс можно открыть и записать одним и тем же способом. В Kubernetes все является ресурсом etc, и у него есть аналогичные преимущества.

Когда дело доходит до аппаратной абстракции, снова можно провести параллели. Linux использует драйверы для доступа к различным жестким дискам, и k8s точно так же работает с плагинами CSI. Это позволяет вам получить доступ к хранилищу, не беспокоясь о конфигурации облачного диска.

Глядя в будущее

За 80 с лишним лет, прошедших с момента создания концепции компьютера, а затем и операционной системы, произошло всего несколько крупных сдвигов парадигмы в том, как мы используем компьютеры, но каждый из них оказал глубокое влияние на нашу повседневную жизнь.

Все помнят, когда впервые стали доступны ПК с Windows и Macintosh. Все также помнят, когда впервые стали доступны смартфоны с iOS и Android. Теперь, с переходом на облачные вычисления, Kubernetes ведет аналогичный сдвиг тектонических пропорций. Как и Windows, Linux, iOS и Android, Kubernetes никуда не денется!

Источники:

Основы Kubernetes

Документы Kubernetes

Kubernetes: каковы ключевые преимущества для компаний?

Операционные системы, прикладное программное обеспечение и языки программирования

7 проблем с развертыванием программного обеспечения (и способы их решения)

Прошлое, настоящее и будущее Kubernetes с Эриком Брюэром

Учебное пособие по YAML: все, что вам нужно, чтобы начать работу за считанные минуты

Краткая история операционных систем

Когда все находится в облаке, имеет ли значение ОС?

Облачная операционная система (облачная ОС)

Kubernetes — это POSIX облаков

Теги:
Хабы:
Всего голосов 9: ↑3 и ↓6-3
Комментарии16

Публикации