Использование дисков Azure ценовой категории "Ультра" в Службе Azure Kubernetes
Диски Azure ценовой категории "Ультра" предоставляют дисковое хранилище с высокой пропускной способностью, большим количеством операций ввода-вывода в секунду и стабильной низкой задержкой для ваших приложений с отслеживанием состояния. Основным преимуществом дисков ценовой категории "Ультра" является возможность динамического изменения производительности SSD, а также рабочих нагрузок без необходимости перезагрузки узлов агентов. Диски ценовой категории "Ультра" подходят для рабочих нагрузок, интенсивно использующих данные.
В этой статье описывается, как настроить новый или существующий кластер AKS для использования дисков Azure ценовой категории "Ультра".
Подготовка к работе
Эту функцию можно задать только при создании кластера или при создании пула узлов.
Ограничения
- Для дисков Azure ценовой категории "Ультра" требуются пулы узлов, развернутые в зонах доступности и регионах, поддерживающих эти диски, и поддерживаются только определенными сериями виртуальных машин. Дополнительные сведения см. в соответствующей таблице в разделе ограничений диска "Ультра".
- Диски ценовой категории "Ультра" нельзя использовать с некоторыми функциями и функциями, такими как группы доступности или Шифрование дисков Azure. Ознакомьтесь с ограничениями диска "Ультра" для получения последних сведений.
Создание кластера, который может использовать диски ценовой категории "Ультра"
Создайте кластер AKS, который может использовать диски Azure ultra с помощью следующих команд CLI. --enable-ultra-ssd
Используйте параметр, чтобы задать функциюEnableUltraSSD
.
az aks create \
--resource-group MyResourceGroup \
--name myAKSCluster \
--location westus2 \
--node-vm-size Standard_D2s_v3 \
--zones 1 2 \
--node-count 2 \
--enable-ultra-ssd \
--generate-ssh-keys
Если вы хотите создать кластер без поддержки дисков ценовой категории "Ультра", это можно сделать, опустив --enable-ultra-ssd
параметр.
Включение дисков ценовой категории "Ультра" в существующем кластере
Вы можете включить диски ультра в существующем кластере, добавив новый пул узлов в кластер, поддерживающий диски ультра. Настройте новый пул узлов для использования дисков ультра с помощью --enable-ultra-ssd
параметра с az aks nodepool add
помощью команды.
Если вы хотите создать пулы узлов без поддержки дисков ценовой категории "Ультра", это можно сделать, исключив --enable-ultra-ssd
параметр.
Динамическое использование дисков ценовой категории "Ультра" с классом хранения
Чтобы использовать диски ценовой категории "ультра" в развертываниях или наборах с отслеживанием состояния, можно использовать класс хранилища для динамической подготовки.
Создание класса хранения
Класс хранения используется для определения того, как единица хранения создается динамически с помощью постоянного тома. Дополнительные сведения о классах хранения Kubernetes см. в разделе Классы хранения Kubernetes. В этом примере мы создадим класс хранилища, ссылающийся на диски ультра.
Создайте файл с именем
azure-ultra-disk-sc.yaml
и скопируйте его в следующем манифесте:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: ultra-disk-sc provisioner: disk.csi.azure.com # replace with "kubernetes.io/azure-disk" if aks version is less than 1.21 volumeBindingMode: WaitForFirstConsumer # optional, but recommended if you want to wait until the pod that will use this disk is created parameters: skuname: UltraSSD_LRS kind: managed cachingMode: None diskIopsReadWrite: "2000" # minimum value: 2 IOPS/GiB diskMbpsReadWrite: "320" # minimum value: 0.032/GiB
Создайте класс хранилища с помощью
kubectl apply
команды и укажитеazure-ultra-disk-sc.yaml
файл.kubectl apply -f azure-ultra-disk-sc.yaml
Выходные данные должны выглядеть примерно так:
storageclass.storage.k8s.io/ultra-disk-sc created
Создание заявки на доступ к постоянному тому
Утверждение постоянного тома (PVC) используется для автоматической подготовки хранилища на основе класса хранения. В этом случае PVC может использовать ранее созданный класс хранения для создания диска ценовой категории "Ультра".
Создайте файл с именем
azure-ultra-disk-pvc.yaml
и скопируйте его в следующем манифесте:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ultra-disk spec: accessModes: - ReadWriteOnce storageClassName: ultra-disk-sc resources: requests: storage: 1000Gi
Утверждение запрашивает диск с именем
ultra-disk
, имеющий размер 1000 ГБ, с доступом ReadWriteOnce. Класс хранения ultra-disk-sc указывается как класс хранения.Создайте утверждение постоянного тома с помощью
kubectl apply
команды и укажитеazure-ultra-disk-pvc.yaml
файл.kubectl apply -f azure-ultra-disk-pvc.yaml
Выходные данные должны выглядеть примерно так:
persistentvolumeclaim/ultra-disk created
Использование постоянного тома
После создания утверждения постоянного тома и успешной подготовки диска можно создать группу pod с доступом к диску. Приведенный ниже манифест создает базовый модуль pod NGINX, который использует утверждение постоянного тома с именем ultra-disk для подключения диска Azure по пути /mnt/azure
.
Создайте файл с именем
nginx-ultra.yaml
и скопируйте его в следующем манифесте:kind: Pod apiVersion: v1 metadata: name: nginx-ultra spec: containers: - name: nginx-ultra image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - mountPath: "/mnt/azure" name: volume volumes: - name: volume persistentVolumeClaim: claimName: ultra-disk
Создайте pod с помощью
kubectl apply
команды и укажитеnginx-ultra.yaml
файл.kubectl apply -f nginx-ultra.yaml
Выходные данные должны выглядеть примерно так:
pod/nginx-ultra created
Теперь у вас есть работающий pod с диском Azure, подключенным к каталогу
/mnt/azure
.Просмотрите сведения о конфигурации с помощью
kubectl describe pod
команды и укажитеnginx-ultra.yaml
файл.kubectl describe pod nginx-ultra
Выходные данные должны выглядеть примерно так:
[...] Volumes: volume: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: azure-managed-disk ReadOnly: false default-token-smm2n: Type: Secret (a volume populated by a Secret) SecretName: default-token-smm2n Optional: false [...] Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 2m default-scheduler Successfully assigned mypod to aks-nodepool1-79590246-0 Normal SuccessfulMountVolume 2m kubelet, aks-nodepool1-79590246-0 MountVolume.SetUp succeeded for volume "default-token-smm2n" Normal SuccessfulMountVolume 1m kubelet, aks-nodepool1-79590246-0 MountVolume.SetUp succeeded for volume "pvc-faf0f176-8b8d-11e8-923b-deb28c58d242" [...]
Следующие шаги
- Дополнительные сведения о дисках ценовой категории "Ультра" см. в разделе Использование дисков Azure ценовой категории "Ультра".
- Дополнительные сведения о рекомендациях по хранению см. в рекомендациях по хранению и резервному копированию в AKS.
Azure Kubernetes Service