Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как подключить том 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и yourTargetPortalPortyourIQN на значения, собранные ранее. Используйте пример для создания файла 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 . Можно использовать его для создания собственного манифеста pod. Замените значения для 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.