Что такое Kubernetes?

Завершено

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

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

Что такое управление контейнерами?

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

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

Diagram of a server or application replicated as containers for cloud deployment.

Например, с веб-сайтом приложения для отслеживания дронов, вы найдете в определенное время дня, вам потребуется больше экземпляров службы кэширования сайта для поддержания производительности, поэтому вы добавляете дополнительные экземпляры контейнеров службы кэширования.

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

Управление контейнерами помогает выполнять эти повторяющиеся задачи вручную.

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

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

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

Определение Kubernetes

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

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Преимущества Kubernetes

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

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling updates.

Эти задачи включают:

  • Самовосстановление контейнеров; Например, перезапуск контейнеров, которые завершаются сбоем или заменяют контейнеры

  • Динамическое масштабирование развернутого контейнера в зависимости от спроса

  • Автоматизация последовательного обновления и откатов контейнеров

  • Управление хранилищем

  • Управление сетевым трафиком

  • Хранение конфиденциальных данных и управление ими, такими как имена пользователей и пароли

Внимание

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

Рекомендации по Kubernetes

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

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the Docker runtime.

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

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

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

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

  • Для запуска контейнеров Kubernetes требуется среда выполнения контейнеров, например Docker или контейнер. Среда выполнения контейнеров — это объект, отвечающий за управление контейнерами. Например, среда выполнения контейнеров запускается, останавливается и сообщает о состоянии контейнера.

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

Облачные службы, такие как Служба Azure Kubernetes (AKS), сокращают эти проблемы, предоставляя размещенную среду Kubernetes. Эти службы также упрощают развертывание контейнерных приложений и управление ими в Azure. Благодаря AKS вы получаете преимущества платформы Kubernetes с открытым кодом и при этом избегаете сложностей и временных затрат, связанных с управлением собственным кластером Kubernetes.

Примечание.

Kubernetes иногда сокращенно обозначается K8s. Цифра 8 обозначает 8 символов между буквами "K" и "s" в слове K[ubernete]s.