Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как подключить том Azure Elastic SAN из кластера Службы Azure Kubernetes (AKS). Чтобы сделать это подключение, включите драйвер Kubernetes iSCSI CSI в кластере. С помощью этого драйвера вы можете получить доступ к томам в эластичной сети SAN, создав постоянные тома в кластере AKS, а затем подключив тома Elastic SAN к постоянным томам.
Сведения о драйвере
Драйвер ISCSI CSI — это проект открытый код, который позволяет подключаться к кластеру Kubernetes через iSCSI. Так как драйвер является проектом с открытым исходным кодом, корпорация Майкрософт не будет предоставлять поддержку на любые проблемы, связанные с драйвером самого по себе.
Драйвер CSI iSCSI Kubernetes доступен на сайте GitHub:
Лицензирование
Драйвер ISCSI CSI для Kubernetes лицензирован в соответствии с лицензией Apache 2.0.
Предварительные условия
- Используйте последнюю версию Azure CLI или установите последний модуль Azure PowerShell
- Убедитесь в соответствии требованиям совместимости для драйвера CSI iSCSI.
- Развертывание эластичной сети SAN
- Настройте частные конечные точки или конечные точки службы.
Ограничения
- Динамическое выделение ресурсов сейчас не поддерживается
- В настоящее время поддерживается только
ReadWriteOnce
режим доступа
Начало работы
Установка драйвера
curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-iscsi/master/deploy/install-driver.sh | bash -s master --
После развертывания проверьте состояние pod, чтобы убедиться, что драйвер установлен.
kubectl -n kube-system get pod -o wide -l app=csi-iscsi-node
Получение информации об объеме
Вам понадобятся StorageTargetIQN, StorageTargetPortalHostName и StorageTargetPortalPort.
Их можно получить с помощью следующей команды Azure PowerShell:
Get-AzElasticSanVolume -ResourceGroupName $resourceGroupName -ElasticSanName $sanName -VolumeGroupName $searchedVolumeGroup -Name $searchedVolume
Вы также можете получить их с помощью следующей команды Azure CLI:
az elastic-san volume show --elastic-san-name --name --resource-group --volume-group-name
Конфигурация кластера
После получения сведений о томе необходимо создать несколько файлов формата YAML для новых ресурсов на вашем кластере AKS.
Хранилищный класс StorageClass
Используйте следующий пример, чтобы создать файл storageclass.yml. Этот файл определяет класс хранилища постоянного тома.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: san-volume
provisioner: manual
Персистентный том
После создания класса хранилища создайте файл pv.yml . Этот файл определяет ваш постоянный том. В следующем примере замените yourTargetPortal
и yourTargetPortalPort
yourIQN
на значения, собранные ранее, используйте пример для создания файла pv.yml. Если требуется более 1 гибибайта хранилища и оно доступно, замените 1Gi
нужным объемом хранилища.
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: iscsiplugin-pv
labels:
name: data-iscsiplugin
spec:
storageClassName: san-volume
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
csi:
driver: iscsi.csi.k8s.io
volumeHandle: iscsi-data-id
volumeAttributes:
targetPortal: "yourTargetPortal:yourTargetPortalPort"
portals: "[]"
iqn: "yourIQN"
lun: "0"
iscsiInterface: "default"
discoveryCHAPAuth: "true"
sessionCHAPAuth: "false"
После создания файла pv.yml создайте постоянный том с помощью следующей команды:
kubectl apply -f pathtoyourfile/pv.yaml
Запрос на постоянный том
Затем создайте претензию на постоянный том. Используйте класс хранилища, определенный ранее, с заданным постоянным томом. Ниже приведен пример того, как может выглядеть файл pvc.yml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: iscsiplugin-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: san-volume
selector:
matchExpressions:
- key: name
operator: In
values: ["data-iscsiplugin"]
После создания файла pvc.yml создайте запрос на постоянный том.
kubectl apply -f pathtoyourfile/pvc.yaml
Чтобы убедиться, что PersistentVolumeClaim создан и привязан к PersistentVolume, выполните следующую команду:
kubectl get pvc pathtoyourfile
Наконец, создайте pod манифест. Ниже приведен пример того, как может выглядеть файл pod.yml . Его можно использовать для создания собственного манифеста пода, заменив значения для name
, image
и mountPath
на собственные:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- image: maersk/nginx
imagePullPolicy: Always
name: nginx
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- mountPath: /var/www
name: iscsi-volume
volumes:
- name: iscsi-volume
persistentVolumeClaim:
claimName: iscsiplugin-pvc
Создав файл pod.yml, создайте pod.
kubectl apply -f pathtoyourfile/pod.yaml
Чтобы убедиться в создании Pod, выполните следующую команду:
kubectl get pods
Теперь вы успешно подключили том Elastic SAN к кластеру AKS.