Обзор Kubernetes и AKS

Завершено

По мере изучения принципов работы с контейнерами для повышения гибкости и плотности рабочей нагрузки в вычислительной среде компании Contoso вы все больше понимаете, что необходимо сосредоточиться не на развертывании отдельных контейнеров, а на их оркестрации. Хотя второй вариант предлагает простоту, в нем отсутствует масштабируемость и устойчивость. Изучая оркестрацию контейнеров, вы быстро определили, что наиболее подходящими средствами для запланированной реализации будут Kubernetes и AKS.

Что такое Kubernetes?

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

Примечание.

Одним из основных компонентов уровня управления является сервер API, предоставляющий интерфейс для настройки кластеров Kubernetes и управления ими.

Примечание.

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

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

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

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

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

Каковы основные преимущества Kubernetes?

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

Примечание.

С декларативной моделью управления можно использовать файлы манифеста в формате YAML для управления подготовкой, изменением и удалением ресурсов Kubernetes, таких как модули pod или развертывания. Кроме того, можно использовать для этого упакованные коллекции файлов YAML, которые называются чартами Helm. Helm — это диспетчер пакетов для Kubernetes, который упрощает развертывание более сложных рабочих нагрузок в кластерах Kubernetes.

Кроме того, Kubernetes предоставляет следующие преимущества:

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

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

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

Примечание.

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

Проверка знаний

1.

Оценивая пригодность использования Kubernetes для контейнерных рабочих нагрузок, которые планируется развернуть в среде Azure Stack HCI компании Contoso, вы поняли, что для пользователей, совместно использующих один кластер Kubernetes, необходимо ограничить создание, просмотр или использование контейнерных ресурсов. Какую функцию Kubernetes следует использовать для ограничения пользователей?