Поиск по сайту:

Введение в Kubernetes | Что такое Кубернетес

Изучите основные концепции Kubernetes

Введение

Добро пожаловать на курс «Введение в Kubernetes». Kubernetes, также известный как k8s или kube, — самый популярный в отрасли инструмент оркестрации контейнеров, разработанный Google. Это руководство по Kubernetes состоит из серии статей о Kubernetes. В первой части мы обсудим, что такое Kubernetes и основные концепции Kubernetes.

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

Прежде чем начать работу с Kubernetes, давайте получим базовое представление о Docker и контейнерах.

Что такое Докер?

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

Чтобы запустить несколько контейнеров в одной ОС, Docker использует изоляцию ресурсов в ядре ОС. Обычно люди сравнивают Docker с виртуальными машинами (ВМ).

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

Что такое контейнер?

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

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

Рисунок 1

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

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

Что такое оркестровка контейнеров?

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

Инструменты оркестрации контейнеров

Технологии оркестрации контейнеров предлагают основу для управления архитектурой контейнеров и микросервисов. Управление жизненным циклом контейнеров может осуществляться с помощью различных решений по оркестрации контейнеров. Kubernetes, Docker Swarm и Apache Mesos — три распространенных решения/инструмента.

Docker Swarm — это собственный инструмент Docker, который очень легко установить и настроить. Kubernetes требует ряда действий вручную для настройки таких компонентов, как etcd, flannel и docker engine.

Kubernetes доминирует в отрасли благодаря своим различным преимуществам и функциям по сравнению с другими инструментами.

Что такое Кубернетес?

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

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

  • Контроль и управление использованием ресурсов приложением.
  • Запросы балансировки нагрузки между многими экземплярами приложения автоматически.
  • Мониторинг использования ресурсов и ограничений ресурсов, чтобы автоматически останавливать приложения от потребления чрезмерного количества ресурсов и возобновлять их снова.
  • Если ресурсы хоста исчерпаны или хост умирает, перенос экземпляра приложения с одного хоста на другой является целесообразным вариантом.
  • Когда в кластер добавляется новый хост, автоматически становятся доступными дополнительные ресурсы.

Почему рынок рекомендует Kubernetes

Kubernetes, первая инициатива Cloud Native Cloud Foundation (CNCF) и фонд Google, является самым быстрорастущим проектом программного обеспечения с открытым исходным кодом после Linux.

Почему сегодня так много предприятий полагаются на Kubernetes для удовлетворения своих потребностей в оркестрации контейнеров? Для этого есть множество причин:

  • Портативность и гибкость. Kubernetes чрезвычайно адаптируем, поскольку может работать в широком диапазоне настроек инфраструктуры и среды. Большинство других оркестраторов не обладают такой гибкостью; они привязаны к определенной среде выполнения или инфраструктуре.
  • Открытый исходный код. CNCF отвечает за Kubernetes, проект с полностью открытым исходным кодом, управляемый сообществом. У нее есть ряд крупных корпоративных спонсоров, но ни одна фирма не «владеет» платформой и не имеет единоличного контроля над ее развитием.
  • Совместимость с несколькими облаками. Kubernetes может размещать рабочие нагрузки в одном облаке, а также рабочие нагрузки, распределенные по множеству облаков. Kubernetes также может легко масштабировать свою среду из одного облака в другое. В то время как другие оркестраторы могут поддерживать мультиоблачную архитектуру, Kubernetes, возможно, выходит за рамки с точки зрения адаптивности к мультиоблачным средам.
  • Лидер маркера: Почти все используют Kubernetes. Согласно опросу REDHAT, Kubernetes широко используется клиентами (88%), особенно в производственных ситуациях (74%).

Архитектура Кубернетеса

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

Kubernetes, как и любая другая сложная распределенная система, имеет два уровня: головные узлы и рабочие узлы.

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

фигура 2

Kubernetes вводит множество терминов для описания структуры вашего приложения. Мы пройдемся по каждому семестру.

Компоненты Кубернетеса

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

Плоскость управления

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

API-сервер

Сервер API предоставляет кластеру Kubernetes интерфейс REST. Все действия с модулями, службами и другими объектами выполняются программно путем взаимодействия с предоставленными конечными точками.

Планировщик

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

Менеджер контроллера

Диспетчер контроллеров Kubernetes — это служба, которая управляет основными циклами управления Kubernetes. Он берет на себя ответственность за правильность функционирования общего состояния кластера.

И т.д.

Kubernetes использует etcd, распределенное хранилище значений ключей, для обмена информацией об общем состоянии кластера.

Узел

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

Стручки

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

Кубелет

Kubelet — это компонент рабочего узла. Его задача — отслеживать модули и их контейнеры. Речь идет о спецификациях модулей, написанных в YAML или JSON. Kubelet проверяет характеристики модулей и определяет, исправны они или нет.

Кубе-Прокси

Kube-proxy — это сетевой прокси и балансировщик нагрузки, который действует как соединение между каждым узлом и API-сервером. Он работает на каждом узле вашего кластера и позволяет подключаться к модулям как внутри, так и за его пределами.

Кубектл

Kubectl — это инструмент CLI для Kubernetes. Он используется для развертывания приложений, мониторинга и управления ресурсами кластера, а также просмотра журналов.

С точки зрения пользователя, kubectl — это ваша панель управления Kubernetes. Он позволяет вам выполнять все операции Kubernetes. С технической точки зрения Kubectl — это клиент Kubernetes API.

Заключение

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

Читать далее:

  • Подробное описание функций Kubernetes
  • Как установить Kubernetes с помощью Minikube в CentOS Linux
  • Установить кластер Kubernetes с помощью Kubeadm в RHEL, CentOS, AlmaLinux, Rocky Linux
  • Как создавать модули Kubernetes и управлять ими в Linux

Ресурсы:

  • https://kubernetes.io/docs/home/
  • https://www.redhat.com/en/topics/containers/what-is-kubernetes

Статьи по данной тематике