Базовая архитектура ДЛЯ AKS в Локальной среде Azure

Azure Stack HCI
Windows Server

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

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

Внимание

Сведения в этой статье относятся к AKS в Azure Stack HCI, версии 22H2 и AKS-HCI в Windows Server. Последняя версия AKS работает в Azure Stack HCI версии 23H2. Дополнительные сведения о последней версии см. в AKS в ОС Azure Stack HCI версии 23H2.

Архитектура

На следующем рисунке показана базовая архитектура для службы Azure Kubernetes в локальном или windows Server 2019/2022 отказоустойчивых кластерах центра обработки данных:

концептуальное изображение базовой архитектуры службы Azure Kubernetes в локальном Azure

Скачайте файл Visio для этой архитектуры.

Архитектура состоит из следующих компонентов и возможностей:

  • Azure Stack HCI версии 22H2. Решение кластера гиперконвергентной инфраструктуры (HCI), в котором размещаются виртуализированные рабочие нагрузки Windows и Linux и их хранилище в гибридной локальной среде. Локальный экземпляр Azure реализуется в виде кластера 2-8 узлов.
  • Службе Azure Kubernetes (AKS) в локальнойAzure. Локальная реализация AKS, которая автоматизирует выполнение контейнерных приложений в большом масштабе.
  • Azure Arc. Облачная служба, которая расширяет модель управления на основе Azure Resource Manager до ресурсов, отличных от Azure, включая виртуальные машины, не являющиеся виртуальными машинами Azure, кластерами Kubernetes и контейнерными базами данных.
  • Политика Azure. Облачная служба, которая помогает применять стандарты организации и оценивать соответствие в масштабе путем оценки ресурсов Azure (включая Arc) свойств этих ресурсов бизнес-правилам. Эти стандарты также включают Политика Azure для Kubernetes, которые применяют политики к рабочим нагрузкам, работающим в кластере.
  • Azure Monitor. Облачная служба, которая обеспечивает максимальную доступность и производительность приложений и служб, предоставляя комплексное решение для сбора, анализа и действия с телеметрией из облачных и локальных сред.
  • Microsoft Defender для облака. Единая система управления безопасностью инфраструктуры, которая повышает уровень безопасности центров обработки данных и обеспечивает расширенную защиту от угроз в гибридных рабочих нагрузках в облаке и локальной среде.
  • Служба автоматизации Azure. Предоставляет облачную службу автоматизации и конфигурации, которая поддерживает согласованное управление в azure и средах, отличных от Azure.
  • Velero. Средство с открытым исходным кодом, которое поддерживает резервное копирование по запросу и запланированное резервное копирование и восстанавливает все объекты в кластере Kubernetes.
  • Хранилище BLOB-объектов Azure. Масштабируемое и безопасное хранилище объектов для облачных рабочих нагрузок, архивов, озер данных, высокопроизводительных вычислений и машинного обучения.

Компоненты

Подробности сценария

Потенциальные варианты использования

  • Реализуйте высокодоступные рабочие нагрузки на основе контейнеров в локальной реализации Kubernetes AKS.
  • Автоматизация запуска контейнерных приложений в большом масштабе.
  • Снижение общей стоимости владения (TCO) с помощью решений, сертифицированных корпорацией Майкрософт, облачной автоматизации, централизованного управления и централизованного мониторинга.

Сертифицированное оборудование

Используйте локально сертифицированное оборудование Azure, которое обеспечивает безопасную загрузку, интерфейс встроенного ПО United Extensible (UEFI) и параметры доверенного платформенного модуля (TPM). Требования к вычислениям зависят от приложения и количества рабочих узлов, которые выполняются в AKS в кластере. Используйте несколько физических узлов для развертывания локального или по крайней мере двух узлов отказоустойчивого кластера Windows Server Datacenter для обеспечения высокой доступности. Требуется, чтобы все серверы имели одинаковый производитель и модель, используя 64-разрядный класс Intel Nehalem, AMD EPYC или более поздний совместимый процессор с преобразованием адресов второго уровня (SLAT).

Стратегии развертывания кластера

AKS упрощает локальное развертывание Kubernetes, предоставляя мастера или командлеты PowerShell, которые можно использовать для настройки Kubernetes и важных локальных надстроек Azure. Кластер AKS содержит следующие компоненты в локальной среде Azure:

  • Кластер управления. Разверните кластер управления на высокодоступной виртуальной машине, работающей в локальном или локальном кластере Windows Server 2019/2022 Datacenter. Кластер управления отвечает за развертывание и управление несколькими кластерами рабочих нагрузок и включает следующие компоненты:
    • Сервер API. Взаимодействует с инструментами управления.
    • Подсистема балансировки нагрузки. Управляет правилами балансировки нагрузки для сервера API кластера управления.
  • Кластеры рабочей нагрузки. Реализуйте компоненты уровня управления высокой доступности и компоненты рабочего узла. Контейнерные приложения выполняются в кластере рабочей нагрузки. Чтобы обеспечить изоляцию приложений, можно развернуть до восьми кластеров рабочих нагрузок. Кластер рабочей нагрузки состоит из следующих компонентов:
    • Плоскость управления. Выполняется в дистрибутиве Linux и содержит компоненты сервера API для взаимодействия с API Kubernetes и распределенного хранилища значений ключей и т. д. для хранения всех конфигураций и данных кластера.
    • Подсистема балансировки нагрузки. Выполняется на виртуальной машине Linux и предоставляет службы с балансировкой нагрузки для кластера рабочей нагрузки.
    • Рабочие узлы. Запустите операционную систему Windows или Linux, включающую контейнерные приложения.
    • Ресурсы Kubernetes. Модули Pod представляют один экземпляр приложения, который обычно сопоставляет 1:1 с контейнером, но некоторые модули pod могут содержать несколько контейнеров. Развертывания представляют один или несколько идентичных модулей pod. Модули pod и развертывания логически группируются в пространство имен, которое управляет доступом к управлению ресурсами.

Требования к сети

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

Примечание.

Сведения о разработке и реализации сетевых концепций развертывания узлов AKS в кластерах Azure Local и Windows Server см. в второй статье этой серии, архитектуре сети.

В архитектуре используется виртуальная сеть, которая выделяет IP-адреса с помощью одного из следующих параметров сети:

  • Статические IP-сети. Использует статический, определенный пул адресов для всех объектов в развертывании. Он добавляет дополнительные преимущества и гарантирует, что рабочая нагрузка и приложение всегда доступны. Рекомендуем использовать этот метод.
  • Сеть DHCP. Выделяет динамические IP-адреса узлам Kubernetes, базовым виртуальным машинам и подсистемам балансировки нагрузки с помощью dhcp-сервера динамической конфигурации узлов.

Виртуальный пул IP-адресов — это диапазон зарезервированных IP-адресов, используемых для выделения IP-адресов на сервер API кластера Kubernetes и служб Kubernetes.

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

Требования к системе хранения данных

Для каждого сервера в кластере используйте одинаковые типы дисков, которые имеют одинаковый размер и модель. Локальная служба Azure работает с подключенным к сети последовательным расширенным технологическим вложением (SATA), последовательным присоединенным SCSI (SAS), неизменяемым экспрессом памяти (NVMe) или дисками постоянной памяти, которые физически подключены к одному серверу. Для томов кластера HCI использует программно-определяемую технологию хранения (Локальные дисковые пространства) для объединения физических дисков в пуле носителей для отказоустойчивости, масштабируемости и производительности. Приложения, которые выполняются в Kubernetes в локальной среде Azure, часто ожидают, что для них доступны следующие варианты хранения:

  • Тома. Представляет способ хранения, извлечения и сохранения данных между модулями pod и жизненным циклом приложения.
  • Постоянные тома. Ресурс хранилища, созданный и управляемый API Kubernetes, может существовать за пределами времени существования отдельного модуля pod.

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

Управление AKS в Локальной среде Azure

Вы можете управлять AKS в Azure Local с помощью следующих параметров управления:

  • Центр администрирования Windows. Предоставляет интуитивно понятный пользовательский интерфейс для оператора Kubernetes для управления жизненным циклом кластеров служб Azure Kubernetes в локальной среде Azure.
  • PowerShell. Упрощает загрузку, настройку и развертывание AKS в Локальной среде Azure. Модуль PowerShell также поддерживает развертывание, настройку других кластеров рабочих нагрузок и перенастройку существующих.

Требования к Active Directory

Интеграция AKS в отказоустойчивых кластерах Центра обработки данных Azure или Windows Server Datacenter с средой доменных служб Active Directory (AD DS) для оптимального управления. По возможности используйте отдельные организационные подразделения для серверов и служб AKS в Azure Local, чтобы обеспечить более детальный контроль доступа и разрешений. Интеграция Active Directory со службой Azure Kubernetes в Azure Local позволяет пользователю на компьютере, присоединенном к домену Windows, подключаться к серверу API (с kubectl), используя учетные данные единого входа.

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

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

Интеграция AKS в развертыванияХ HCI с Azure Arc

Чтобы свести к минимуму TCO, интегрируйте развертывания AKS с Azure Arc. Рассмотрите возможность использования следующих служб Azure:

  • Аналитика контейнеров Azure Monitor. Отслеживает производительность рабочих нагрузок контейнеров, работающих в кластерах Linux и Windows. Он собирает метрики памяти и процессора из контроллеров, узлов и контейнеров через API метрик. С помощью аналитики контейнеров можно определить использование памяти и процессора, определить общую производительность pod, понять поведение кластера и настроить оповещения для упреждающего мониторинга.
  • Возможности автоматизации. AKS предоставляет широкий спектр возможностей автоматизации, а обновления ОС в сочетании с обновлениями полного стека, включая встроенное ПО и драйверы, предоставляемые локальными поставщиками и партнерами Azure. Windows PowerShell можно запускать локально с одного из локальных компьютеров Azure или удаленно с компьютера управления. Интеграция с служба автоматизации Azure и Azure Arc упрощает широкий спектр сценариев автоматизации для виртуализированных и контейнерных рабочих нагрузок.
  • Velero и Хранилище BLOB-объектов Azure. Velero — это средство с открытым исходным кодом, которое поддерживает резервное копирование по запросу, запланированное резервное копирование и восстановление всех объектов в кластере Kubernetes для всех ресурсов, определенных и хранящихся в базе данных etcd в качестве пользовательского определения ресурсов Kubernetes (CRD). Он обеспечивает резервное копирование ресурсов и томов Kubernetes для всего кластера или части кластера с помощью селекторов имен или меток. Сохраните резервный набор, созданный с помощью средства Velero, в учетной записи хранения Azure в контейнере BLOB-объектов.
  • Служба Kubernetes с поддержкой Azure Arc. Предоставляет представление AKS в локальном экземпляре Azure Resource Manager. Развертывание агентов с поддержкой Azure Arc в пространстве имен Kubernetes для сбора журналов и метрик для сбора метаданных кластера, версии кластера и количества узлов и обеспечения оптимальной производительности агентов.
  • Политика Azure. Развертывание и применение встроенных политик безопасности в кластере AKS с помощью Политика Azure. Вы также можете использовать определение пользовательской политики для принудительного применения GitOps, что является практикой объявления требуемого состояния конфигурации Kubernetes (развертывания, пространства имен и т. д.) в репозитории Git.
  • Политика Azure для Kubernetes. Управление внутренними политиками кластеров, реализованными Gatekeeper, развертывает определение политики в кластере в качестве шаблона ограничений и сообщает о состоянии соответствия кластеров Kubernetes из одного места.
  • Azure RBAC. Используйте для назначения ролей и управления доступом к Kubernetes с поддержкой Azure Arc.

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

Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Надежность

  • Реализуйте высокодоступную виртуальную машину для кластера управления и несколько узлов в кластере Kubernetes, чтобы обеспечить минимальный уровень доступности для рабочих нагрузок.
  • Резервное копирование и восстановление кластеров рабочих нагрузок с помощью Velero и Хранилище BLOB-объектов Azure. Определите цели доступности и восстановления в соответствии с требованиями бизнеса.
  • Развертывания AKS используют отказоустойчивую кластеризацию и динамическую миграцию для обеспечения высокой доступности и отказоустойчивости. Динамическая миграция — это функция Hyper-V, которая позволяет прозрачно перемещать виртуальные машины с одного узла Hyper-V на другой без предполагаемого простоя.
  • Настройте развертывания для использования функций Kubernetes, таких как развертывания, сопоставление сходства и реплики, чтобы обеспечить устойчивость модулей pod в сценариях сбоя.
  • Необходимо убедиться, что службы, на которые ссылается раздел "Архитектура", поддерживаются в регионе, в котором развертывается Azure Arc.
  • Рассмотрите возможность ограничения использования общедоступных образов контейнеров и извлечения только из реестров контейнеров, для которых у вас есть контроль над соглашением об уровне обслуживания, например ACR.

Безопасность

Сосредоточьтесь на всем стеке путем защиты узла и контейнеров.

Безопасность инфраструктуры

  • Используйте локальное сертифицированное оборудование Azure, которое предоставляет параметры безопасной загрузки, UEFI и доверенного платформенного модуля. Эти технологии в сочетании с безопасностью на основе виртуализации (VBS) помогают защитить рабочие нагрузки с учетом безопасности. Посетите локальные решения Azure для проверенных решений.
  • Используйте безопасную загрузку, чтобы убедиться, что сервер загружает только программное обеспечение, доверенное изготовителем исходного оборудования.
  • Используйте UEFI для управления процессом загрузки сервера.
  • Используйте TPM для хранения криптографических ключей и изоляции всех аппаратных функций, связанных с безопасностью.
  • Шифрование диска BitLocker позволяет шифровать неактивных томов Локальные дисковые пространства.
  • Настройте политики сети Calico для определения правил сетевой изоляции между контейнерами.
  • Для повышения требований к безопасности рекомендуется развернуть кластер рабочей нагрузки на выделенном сервере Windows.
  • Используйте Microsoft Defender для облака, доступную через Windows Admin Center, для централизованного управления параметрами безопасности для серверов и кластеров. Он обеспечивает защиту от угроз для кластеров Kubernetes с поддержкой Arc. Расширение Microsoft Defender для облака собирает данные из узлов в кластере и отправляет его в серверную часть Azure Defender для Kubernetes в облаке для дальнейшего анализа.
  • Безопасное взаимодействие с сертификатами.
  • Смена ключей шифрования хранилища секретов Kubernetes (etcd) с помощью подключаемого модуля сервера управления ключами (KMS).

Безопасность приложений

  • Используйте расширение поставщика секретов Azure Key Vault в AKS в локальной среде Azure для дальнейшей защиты секретов, используемых различными приложениями, путем хранения их в службе Azure Key Vault.
  • Используйте надстройку Open Service Mesh AKS для защиты обмена данными между службами, обеспечивая взаимное подключение TLS (mTLS). Эту надстройку также можно использовать для определения и выполнения подробных политик управления доступом для служб.
  • Используйте Политика Azure для Kubernetes для применения политик безопасности кластера, таких как без привилегированных модулей pod.
  • Используйте Реестр контейнеров Azure, содержащую сканирование уязвимостей в репозитории контейнеров.
  • Используйте учетные записи безопасности, управляемые группой, для рабочих нагрузок Windows с узлом, не присоединенным к домену. (Применимо только для Windows Server.)

Безопасность контейнеров

  • Заклините среду узла и управляющей программы, удалив ненужные службы.
  • Сохраняйте секреты из образов и подключайте их только через подсистему оркестрации контейнеров.
  • Защита образов в Реестр контейнеров Azure, поддерживающей сканирование уязвимостей и RBAC.
  • Используйте изоляцию контейнеров и избегайте выполнения контейнеров в привилегированном режиме, чтобы предотвратить эскалацию привилегий злоумышленниками, если контейнер скомпрометирован.

Оптимизация затрат

  • Используйте калькулятор цен Azure для оценки затрат на службы, используемые в архитектуре. В разделе оптимизации затрат в Microsoft Azure Well-Architected Framework описаны другие рекомендации. Дополнительные сведения см. в разделе о ценах.
  • Рекомендуется реализовать гиперпоток на физическом компьютере, чтобы оптимизировать затраты, так как единица выставления счетов AKS является виртуальной ядром.

Эффективность работы

  • Мастер создания кластера. Упрощенная подготовка и управление с помощью Центра администрирования Windows. Мастер создания кластера в Windows Admin Center предоставляет управляемый мастером интерфейс, который поможет вам создать локальный экземпляр Azure. Мастер создания кластера — это компромисс для упрощения и создания сценариев развертывания, которые можно управлять версиями для аудита и повторяемости в нескольких развертываниях. Аналогичным образом Windows Admin Center упрощает процесс управления локальными виртуальными машинами Azure.
  • Azure Arc. Интеграция с Azure Arc или рядом служб Azure, которые обеспечивают дополнительные возможности управления, обслуживания и устойчивости (например, Azure Monitor и Log Analytics).
  • GitOps. Вместо ручной настройки компонентов Kubernetes используйте автоматизированное средство для применения конфигураций к кластеру Kubernetes, так как эти конфигурации проверяются в исходном репозитории. Этот процесс часто называется GitOps, а популярные решения GitOps для Kubernetes включают Flux и Argo CD. В этой архитектуре рекомендуется использовать расширение GitOps, предоставленное корпорацией Майкрософт, которое основано на Flux.
  • Сетка Open Service (OSM) с поддержкой Azure Arc. Упрощенная, расширяемая, облачная сетка служб, которая позволяет пользователям равномерно управлять, защищать и получать встроенные функции наблюдения для высокодинамых сред микрослужб.

Оптимизация производительности

  • Используйте локально сертифицированное оборудование Azure для улучшения времени и производительности приложений, упрощенного управления и операций, а также снижения общей стоимости владения.
  • Общие сведения об ограничениях AKS на локальных ресурсах Azure. Корпорация Майкрософт поддерживает развертывание AKS в Azure Stack с максимальным количеством физических серверов на кластер, восемь кластеров Kubernetes и 200 виртуальных машин.
  • Масштабирование AKS в Azure Local зависит от количества рабочих узлов и целевых кластеров. Чтобы правильно определить оборудование для рабочих узлов, необходимо предвидеть количество модулей pod, контейнеров и рабочих узлов в целевом кластере. Убедитесь, что для планового и незапланированного сбоя зарезервировано не менее 15% локальной емкости Azure. Для повышения эффективности производительности вычислительные ресурсы эффективно используются для удовлетворения системных требований, а также для поддержания этой эффективности по мере изменения спроса и технологий. Общее правило заключается в том, что если один узел переходит в автономный режим во время обслуживания или во время незапланированного сбоя, остальные узлы могут иметь достаточно емкости для управления повышенной нагрузкой.
  • Рекомендуется увеличить размер виртуальной машины подсистемы балансировки нагрузки, если вы используете множество служб Kubernetes в каждом целевом кластере.
  • AKS в Azure Local распределяет рабочие узлы для каждого пула узлов в целевом кластере с помощью логики локального размещения Azure.
  • Планирование резервирования IP-адресов для настройки узлов AKS, кластеров рабочих нагрузок, серверов API кластера, служб Kubernetes и служб приложений. Корпорация Майкрософт рекомендует резервировать не менее 256 IP-адресов для развертывания AKS в локальной среде Azure.
  • Рассмотрите возможность реализации контроллера входящего трафика, работающего на уровне 7, и использует более интеллектуальные правила для распределения трафика приложения.
  • Реализуйте оптимизацию производительности сети для распределения пропускной способности трафика.
  • Используйте ускорение графической обработки (GPU) для обширных рабочих нагрузок.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.

Основные авторы:

Другие участники:

Следующие шаги