Говоря о постоянном хранении с упорными томами Kubernetes (PVS) и постоянные претензии тома (ПВХ) являются нашими инструментами выбора. Мы можем использовать их с лазурными дисками и файлами Azure в течение длительного времени. Но сейчас пришло время довести их на следующий уровень!
Этот пост в основном фокусируется на Azure Disks (не пропустите, чтобы просмотреть ссылки ниже, чтобы получить более подробную информацию о файлах Azure).
Какие новости?
С помощью драйвера Azure Disk Distage Distage (CSI) для драйвера Azure Distage, мы теперь получаем некоторые отличные функции, которые помогают нам запускать наши государственные услуги намного более гладкой на Azure Kubernetes Service:
- Резервное хранение зоны (ZRS) Лазурные диски
- ReadWritemany с лазурными дисками
- Kubernetes-родные моментальные снимки
- Изменение размера тома
- Объем клонирования
Драйвер интерфейса для хранения контейнера для диска Azure
Поскольку Kubernetes 1.21 (на службе Azure Kubernetes) мы можем использовать новую реализацию интерфейса для хранения контейнера, которая доступна для Azure Disk и файлов Azure.
Подождите, что такое интерфейс для хранения контейнера?
Интерфейс хранения контейнера (CSI) — это уровень абстракции, который позволяет сторонним поставщикам хранения писать плагины, подвергающиеся новым системам хранения в Kubernetes. CSI обычно доступен в течение некоторого времени и заменяет предыдущую систему плагинов громкости. С помощью CSI сторонних провайдеров могут разработать и поддерживать свои плагины за пределами жизненного цикла проекта Kubernetes, которые приносят их больше гибкости. CSI — это будущее для любой интеграции хранения и уже используется во многих сценариях.
Как использовать драйвер Azure Disk CSI с обслуживанием Azure Kubernetes?
Вам понадобится как минимум Kubernetes 1.21 или новее, чтобы иметь возможность использовать драйвер интерфейса хранения контейнера для диска Azure. Кроме того, вам также нужно будет включить некоторые функции Azure Hates, чтобы иметь возможность использовать все вышеупомянутые функции:
az feature register --name SsdZrsManagedDisks --namespace Microsoft.Compute az feature register --name EnableAzureDiskFileCSIDriver --namespace Microsoft.ContainerService az feature list -o table --query "[?contains(name, 'Microsoft.Compute/SsdZrsManagedDisks')].{Name:name,State:properties.state}" az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/EnableAzureDiskFileCSIDriver')].{Name:name,State:properties.state}" az provider register --namespace Microsoft.Compute az provider register -n Microsoft.ContainerService
Затем вам нужно будет раскрутить кластер Azure Kubernetes с включенной функцией драйвера CSI:
az group create -g aks-1-22 -l westeurope az aks create -n aks-1-22 \ -g aks-1-22 \ -l westeurope \ -c 3 \ -s Standard_B2ms \ --node-zones 1 2 3 \ --aks-custom-headers EnableAzureDiskFileCSIDriver=true az aks get-credentials -n aks-1-22 -g aks-1-22
Кроме того, вам нужно будет создать StorageClass.
и VolumesnapshotClass
Чтобы использовать все упомянутые функции:
cat <
StorageClass
Настроен на использование новых дисков Premium_zrs Azure, которые позволяют установить диск на несколько стручков по нескольким зонам доступности.
VolumesnapshotClass
Позволяет использовать функцию моментального снижения громкости Kubernetes-National.
Теперь мы готовы создать PersiStentVolumeclaim
На основании вышеуказанного StorageClass
:
cat <
Kubernetes-родные моментальные снимки
С драйвером CSI Azure Disk мы можем создавать снимки громкости. Вы найдете более подробную информацию о самой громкости Снимок функции здесь Отказ Используйте следующий фрагмент кода, чтобы создать снимок вышеупомянутого PVC:
cat <
Теперь вы можете проверить снимок со следующими kubectl
команда:
kubectl describe volumesnapshot azuredisk-volume-snapshot
Объем клонирования
Сами звуки громкости отлично Но мы также можем использовать их для клонирования существующего ПВХ. Например, чтобы прикрепить его к другой рабочей нагрузке. Это можно сделать со следующими манифестами:
cat <
Еще раз вы можете просмотреть его с помощью kubectl
:
kubectl get pvc,pv
Изменение размера тома
Драйвер CSI также поддерживает изменение размера существующего ПВХ. Некоторые важные замечания на этом:
- ПВХ должен быть размонтирован для размера
- PV будет изменяться напрямую, ПВХ после его установки
Вы можете изменить размер выше клонированного ПВХ через Kubectl, выполнив следующую команду:
kubectl patch pvc pvc-azuredisk-snapshot-restored --type merge --patch '{"spec": {"resources": {"requests": {"storage": "512Gi"}}}}'
ReadWritemany в зонах доступности
Как уже упоминалось выше, мы также можем установить наш ПВХ на несколько рабочих нагрузок через ReadWritemany. С новыми ZRS Azure Disks мы даже можем использовать их через зоны доступности.
Давайте проверим эти новые функции с помощью ниже Развертывание
Манифест:
cat <
Как вы видите выше, направляются вверх по развертыванию с тремя репликами на наших узлах с разбросами Kubernetes, устанавливая тот же азаронный диск с доступом к чтению. Вы можете просмотреть его, выполняя следующие kubectl
команда:
kubectl get pods,volumeattachments -owide
Тем не менее, (как вы уже видели), ZRS поддерживает только блочные устройства.
Подробнее
Не пропустите, чтобы просмотреть следующие ссылки, чтобы получить еще несколько представлений и дополнительной документации:
- https://kubernetes-csi.github.io/docs
- https://github.com/kubernetes-sigs/azuredisk-csi-driver
- https://github.com/kubernetes-sigs/azurefile-csi-driver
- https://docs.microsoft.com/azure/aks/csi-storage-drivers
Оригинал: «https://dev.to/nmeisenzahl/azure-kubernetes-service-next-level-persistent-storage-with-azure-disk-csi-driver-537k»