Хранилище контейнеров Windows с гибридной платформой AKS
Варианты гибридного развертывания Azure Kubernetes Service (AKS), именуемого "AKS hybrid", представляют собой локальную реализацию оркестратора этой службы. Оркестратор автоматизирует выполнение контейнеризированных приложений в масштабе, позволяя управлять облачными нативными приложениями из любой точки. локальная инфраструктура и интеграция их со службами Azure.
В зависимости от класса оборудования, доступности вычислительных ресурсов и процесса внедрения Kubernetes доступны следующие варианты гибридного развертывания AKS:
- AKS на Windows Server
- AKS в Azure Stack HCI (гиперконвергентная инфраструктура)
- Подготовка кластера AKS из Azure (предварительная версия)
- AKS Edge Essentials
Хранилище в гибридной архитектуре AKS
Так как гибридная среда AKS является реализацией AKS, большинство концепций хранилища одинаковы. Гибридный кластер AKS содержит плоскость управления, управляемую AKS, которая предоставляет основные службы Kubernetes и оркестрацию, в то время как вы управляете узлами, содержащими pod с рабочими нагрузками вашего приложения. На следующей схеме показана архитектура гибридного кластера AKS, использующий вариант гибридного развертывания AKS в Azure Stack HCI:
Как и в AKS, традиционные тома — это ресурсы Kubernetes, поддерживаемые службой хранилища Azure. Вы можете вручную создавать тома данных для назначения непосредственно подам или позволить Kubernetes создавать их автоматически. Для связывания этих томов с хранилищем Azure, AKS Hybrid использует интерфейс контейнерных хранилищ (CSI). AkS Hybrid поддерживает контейнеры Windows и постоянное хранилище с теми же драйверами CSI, что и AKS.
При создании постоянного хранилища гибридный AKS использует те же понятия Kubernetes, что и AKS, но с некоторыми отличиями. Постоянные тома создаются статически или динамически. Если вы создаете их динамически, вы определяете их тип и жизненный цикл с помощью класса хранения, и они привязаны к постоянному тому (PV) с запросом на постоянный том (PVC).
Отличие гибридного хранилища AKS от обычного AKS заключается в поддержке использования вашего локально развернутого хранилища в качестве устойчивого хранилища.
Постоянные тома
Постоянный том — это ресурс хранилища, созданный и управляемый API Kubernetes, который может существовать за пределами времени существования отдельного модуля pod. Например, при использовании параметра гибридного развертывания AKS в Azure Stack HCI можно использовать тома дисков AKS, поддерживаемые VHDX (тип файла виртуального жесткого диска), которые подключены как ReadWriteOnce
и доступны для одного узла одновременно. Кроме того, вы можете использовать тома AKS Files, поддерживаемые SMB (блок сообщений сервера) или общие папки NFS (сетевая файловая система). Они подключены как ReadWriteMany
и доступны для нескольких узлов одновременно.
Администратор кластера может статически создать постоянный том или динамически создать его можно с помощью сервера API Kubernetes. Если pod запланирован и запрашивает хранилище, которое в настоящее время недоступно, Kubernetes может создать базовый VHDX-файл, а затем присоединить его к pod. Динамическое предоставление ресурсов использует StorageClass
для определения необходимого типа хранилища.
Классы хранилища
Класс хранилища определяет уровень хранилища, расположение и reclaimPolicy
базового ресурса хранилища.
В гибридной среде AKS класс хранилища по умолчанию создается автоматически и использует CSV-файл для создания томов, поддерживаемых VHDX. Политика восстановления гарантирует, что базовый VHDX удаляется при удалении постоянного тома, который использовал его. Класс хранилища также настраивает постоянные тома для возможности расширения, поэтому вам нужно просто изменить запрос на постоянный том с новым размером.
Если не указатьStorageClass
для постоянного тома, используется StorageClass
по умолчанию. При запросе постоянных томов убедитесь, что они используют подходящее для ваших нужд хранилище. Вы можете создать класс StorageClass для получения дополнительных потребностей.
Запросы постоянного тома
PersistentVolumeClaim
запрашивает хранилище ReadWriteOnce
или ReadWriteMany
для определенного StorageClass
и определенного размера. Сервер API Kubernetes может динамически подготавливать базовый ресурс хранилища в гибридной среде AKS, если отсутствует существующий ресурс для удовлетворения запроса на ресурс, определенного на основе StorageClass
. Определение модуля включает точку монтирования тома после того, как том был подключен к модулю pod.
PersistentVolume
привязаны к PersistentVolumeClaim
после назначения доступного ресурса хранилища объекту pod, запрашивающего его. Существуют соотношения 1:1 между постоянными хранилищами и запросами.
Использование локальных дисков для постоянного хранилища
Одним из преимуществ использования гибридной среды AKS является использование локальных дисков в качестве постоянного хранилища для контейнеров Windows. Локальные диски — это физические диски, подключенные к локальным узлам. Локальные диски обеспечивают высокую производительность и низкую задержку для контейнерных приложений.
Чтобы использовать локальные диски с контейнерами Windows в гибридной среде AKS, необходимо использовать плагин local-volume-provisioner. Этот плагин автоматически обнаруживает и создает постоянные тома (PVs) для локальных дисков на ваших узлах. Затем необходимо создать постоянные запросы на том (PVT), соответствующие постоянным томам (ПТ) на основе близости к узлам и класса хранилища. Наконец, вам необходимо подключить PVC к вашим подам или контейнерам, используя определения объемов.