Использование драйверов файлов интерфейса хранилища контейнеров (CSI) в AKS, включенных Azure Arc
> Область применения: AKS в Azure Stack HCI 22H2, AKS в Windows Server, AKS в Azure Stack HCI 23H2
В этой статье описывается, как использовать драйверы CSI для файлов для подключения общих папок SMB или NFS, когда нескольким узлам требуется одновременный доступ к одному тому хранилища в AKS, включенном Azure Arc.
Общие сведения о CSI в AKS Arc
Container Storage Interface (CSI) — это стандарт предоставления произвольных блоков и систем хранения файлов контейнерным рабочим нагрузкам в Kubernetes. С помощью CSI AKS, включенная Arc, может записывать, развертывать и итерировать подключаемые модули для предоставления доступа к новым системам хранения. Использование CSI также может улучшить существующие в Kubernetes без необходимости касаться основного кода Kubernetes и ждать циклов выпуска.
Драйверы CSI для дисков и файлов, используемые AKS Arc, соответствуют спецификации CSI.
Поддержка драйвера хранилища CSI в AKS Arc позволяет использовать:
Диски AKS Arc, которые можно использовать для создания ресурса DataDisk Kubernetes. Они подключены как ReadWriteOnce, поэтому они доступны только для одного модуля pod одновременно. Для томов хранилища, к которым одновременно могут обращаться несколько модулей pod, используйте файлы AKS Arc.
Файлы AKS Arc, которые можно использовать для подключения общего ресурса SMB или NFS к модулям pod. Они подключены как ReadWriteMany, поэтому вы можете совместно использовать данные между несколькими узлами и модулями pod. Они также могут быть подключены как ReadWriteOnce на основе спецификации PVC (утверждение постоянного тома).
Использование постоянных томов файлов с помощью драйверов CSI ReadWriteMany
Если нескольким узлам требуется одновременный доступ к тем же томам хранилища в AKS Arc, можно использовать драйверы CSI для файлов для подключения общих папок SMB или NFS как ReadWriteMany. Необходимо заранее подготовить общие папки SMB или NFS.
Использование драйверов SMB
Убедитесь, что драйвер SMB развернут. Драйвер SMB CSI устанавливается по умолчанию при создании кластера Kubernetes с помощью портал Azure или
az aksarc create
команды . При создании кластера Kubernetes с помощью--disable-smb-driver
необходимо включить драйвер SMB в этом кластереaz aksarc update
с помощью команды :az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
Создайте секреты Kubernetes для хранения учетных данных, необходимых для доступа к общим папкам SMB, выполнив следующую команду:
kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
Создайте класс хранения с помощью
kubectl
, чтобы создать новый класс хранения SMB со следующим манифестом:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: smb-csi provisioner: smb.csi.akshci.com parameters: source: \\smb-server\share csi.storage.k8s.io/node-stage-secret-name: "smbcreds" csi.storage.k8s.io/node-stage-secret-namespace: "default" reclaimPolicy: Retain # only Retain is supported volumeBindingMode: Immediate mountOptions: - dir_mode=0777 - file_mode=0777 - uid=1001 - gid=1001
Использование драйверов NFS
Убедитесь, что драйвер NFS развернут. Драйвер CSI NFS устанавливается по умолчанию при создании кластера Kubernetes с помощью портал Azure или
az aksarc create
команды . При создании кластера Kubernetes с помощью--disable-nfs-driver
необходимо включить драйвер NFS в этом кластереaz aksarc update
с помощью команды :az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
Создайте класс хранения NFS, используя следующий манифест:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-csi provisioner: nfs.csi.akshci.com parameters: server: nfs-server.default.svc.cluster.local # NFS server endpoint share: / # NFS share path reclaimPolicy: Retain volumeBindingMode: Immediate mountOptions: - hard - nfsvers=4.1
Удаление драйверов SMB или NFS
Используйте следующие команды Azure CLI, чтобы удалить драйверы SMB или NFS:
az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver