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


Подготовьте тома с поддержкой двух протоколов в Azure NetApp Files для Службы Azure Kubernetes

После того, как вы настроите Azure NetApp Files для Службы Azure Kubernetes, вы можете подготовить тома Azure NetApp Files для Службы Azure Kubernetes.

Azure NetApp Files поддерживает тома с помощью NFS (NFSv3 или NFSv4.1), SMB и двойного протокола (NFSv3 и SMB, или NFSv4.1 и SMB).

В этой статье показано, как статически подготавливать тома для доступа с двумя протоколами с помощью NFS или SMB.

Прежде чем начать

Создание тома с двойным протоколом в Службе Azure Kubernetes

В этом разделе описывается, как предоставлять том двойного протокола Azure NetApp Files статически для Kubernetes. Инструкции предоставляются для протоколов SMB и NFS. Один и тот же том можно предоставить для рабочих узлов Windows через SMB и для рабочих узлов Linux через NFS.

Создайте постоянный том для NFS

  1. Определите переменные для последующего использования. Замените myresourcegroup, myaccountname, mypool1, myvolname соответствующим значением из тома двойного протокола.

    RESOURCE_GROUP="myresourcegroup"
    ANF_ACCOUNT_NAME="myaccountname"
    POOL_NAME="mypool1"
    VOLUME_NAME="myvolname"
    
  2. Перечислите сведения о томе с помощью команды az netappfiles volume show.

    az netappfiles volume show \
        --resource-group $RESOURCE_GROUP \
        --account-name $ANF_ACCOUNT_NAME \
        --pool-name $POOL_NAME \
        --volume-name $VOLUME_NAME -o JSON
    

    Ниже приведен пример приведенной выше команды, выполняемой с реальными значениями.

    {
      ...
      "creationToken": "myfilepath2",
      ...
      "mountTargets": [
        {
          ...
          "ipAddress": "10.0.0.4",
          ...
        }
      ],
      ...
    }
    
  3. Создайте файл pv-nfs.yaml и скопируйте в него следующий код YAML. Убедитесь, что сервер соответствует выходному IP-адресу из предыдущего шага, а путь соответствует выходным данным из creationToken выше. Емкость также должна соответствовать размеру тома на шаге 2.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nfs
    spec:
      capacity:
        storage: 100Gi
      accessModes:
        - ReadWriteMany
      mountOptions:
        - vers=3
      nfs:
        server: 10.0.0.4
        path: /myfilepath2
    
  4. Создайте постоянный том с помощью kubectl apply команды:

    kubectl apply -f pv-nfs.yaml
    
  5. Убедитесь, что состояние постоянного тома — Доступно, используя команду kubectl describe.

    kubectl describe pv pv-nfs
    

Создайте запрос на постоянный том для NFS

  1. Создайте файл pvc-nfs.yaml и скопируйте в него следующий код YAML. Этот манифест создает PVC с именем pvc-nfs для хранилища объёмом 100Gi и режимом доступа ReadWriteMany, соответствующим созданному вами PV.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-nfs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. Создайте запрос на персистентный том с помощью команды kubectl apply.

    kubectl apply -f pvc-nfs.yaml
    
  3. Убедитесь, что состояние утверждения постоянного тома привязано с помощью kubectl describe команды:

    kubectl describe pvc pvc-nfs
    

Монтирование в pod с помощью NFS

  1. Создайте файл nginx-nfs.yaml и скопируйте в него следующий код YAML. Этот манифест определяет nginx модуль pod, использующий утверждение постоянного тома.

    kind: Pod
    apiVersion: v1
    metadata:
      name: nginx-nfs
    spec:
      containers:
      - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
        name: nginx-nfs
        command:
        - "/bin/sh"
        - "-c"
        - while true; do echo $(date) >> /mnt/azure/outfile; sleep 1; done
        volumeMounts:
        - name: disk01
          mountPath: /mnt/azure
      volumes:
      - name: disk01
        persistentVolumeClaim:
          claimName: pvc-nfs
    
  2. Создайте pod с помощью kubectl applyкоманды kubectl-apply :

    kubectl apply -f nginx-nfs.yaml
    
  3. Убедитесь, что pod находится в состоянии Running с помощью команды kubectl apply.

    kubectl describe pod nginx-nfs
    
  4. Убедитесь, что том подключен к модулем pod с помощью kubectl exec подключения к модулем pod, а затем используйте df -h для проверки подключения тома.

    kubectl exec -it nginx-nfs -- sh
    
    / # df -h
    Filesystem             Size  Used Avail Use% Mounted on
    ...
    10.0.0.4:/myfilepath2  100T  384K  100T   1% /mnt/azure
    ...
    

Следующие шаги

Trident поддерживает множество функций в Azure NetApp Files. Дополнительные сведения см. в разделе: