Поделиться через


Использование драйверов файлов интерфейса хранилища контейнеров (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

  1. Убедитесь, что драйвер 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
    
  1. Создайте секреты Kubernetes для хранения учетных данных, необходимых для доступа к общим папкам SMB, выполнив следующую команду:

    kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
    
  2. Создайте класс хранения с помощью 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

  1. Убедитесь, что драйвер 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
    
  1. Создайте класс хранения 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

Дальнейшие действия