Введение в Kubernetes для начинающих

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

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

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

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

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

Контейнеры

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

Узлы

Узел — это, по сути, хост, на котором выполняются ваши приложения или облачные рабочие процессы. Это может быть физическая или виртуальная машина, которая находится в кластере и отвечает за выполнение рабочих нагрузок с помощью внешних ресурсов. Каждый узел содержит все службы, необходимые для запуска приложения, такие как среда выполнения контейнера, kube-proxy и kubelet. Обычно вы не взаимодействуете с узлами напрямую, так как мастер Kubernetes контролирует каждый узел.

Кластер

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

Стручок

А Стручок — это самая маленькая и простая единица, которую вы можете создать или развернуть в Kubernetes. Это первая часть запущенного процесса в вашем кластере, и она инкапсулирует контейнер приложения, ресурсы хранения, уникальный сетевой IP-адрес и другие параметры, которые определяют, как контейнер должен работать. Это может быть один контейнер или несколько контейнеров, которые совместно используют ресурсы. Kubernetes вместо того, чтобы запускать контейнеры напрямую, объединяет несколько контейнеров в модуль. Эти модули могут реплицировать себя и даже быть настроены для развертывания новых реплик модуля по мере масштабирования приложения. Поэтому, когда приложение начинает собирать больше трафика и один модуль не может справиться с нагрузкой, Kubernetes может развертывать новые реплики модуля по мере необходимости.

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

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

Главный сервер

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

Развертывание

Итак, теперь мы знаем, что поды — это основные функциональные единицы в Kubernetes, которые необходимо запускать в кластере. Однако для этого требуется один или несколько уровней абстракции. Как только ваш кластер запущен и запущен, пришло время развернуть на нем контейнерное приложение. Таким образом, вы начинаете с описания желаемого состояния в вашем объекте развертывания, а контроллер развертывания берет на себя управление. Он изменяет текущее фактическое состояние на желаемое состояние в контролируемой среде. Теперь вы можете определять развертывания в зависимости от целей вашего приложения, а новые наборы реплик создаются в соответствии с желаемым развертыванием.

Развертывания обычно используются для развертывания, настройки и управления наборами реплик, объявления нового состояния модулей, увеличения или уменьшения масштаба развертывания в соответствии с меняющимися потребностями и очистки старых наборов реплик, которые вы больше не используете. Самое замечательное в использовании Kubernetes заключается в том, что как только вы объявляете состояние системы, каждый объект начинает действовать автоматически, и вам не нужно иметь дело с отдельными модулями, узлами или кластерами. Благодаря всем этим возможностям Deployments — это объект Kubernetes, с которым вы будете работать большую часть времени.

Подведение итогов

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

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *