Aracılığıyla paylaş


Azure Arc tarafından etkinleştirilen AKS'de Kapsayıcı Depolama Arabirimi (CSI) dosya sürücülerini kullanma

> Şunlar için geçerlidir: Azure Yerel 22H2'de AKS, Windows Server'da AKS, Azure Yerel'de AKS, sürüm 23H2

Bu makalede, Azure Arc tarafından etkinleştirilen AKS'de birden çok düğümün aynı depolama birimine eş zamanlı erişime ihtiyacı olduğunda sunucu İleti Bloğu (SMB) veya NFS paylaşımlarını bağlamak üzere dosyalar için Kapsayıcı Depolama Arabirimi (CSI) sürücülerinin nasıl kullanılacağı açıklanmaktadır.

AKS Arc'ta CSI'ye genel bakış

Container Storage Interface (CSI), rastgele blok ve dosya depolama sistemlerini Kubernetes üzerindeki kapsayıcılı iş yüklerinde kullanıma sunmaya yönelik bir standarttır. Arc tarafından etkinleştirilen AKS, CSI kullanarak yeni depolama sistemlerini kullanıma sunma amacıyla eklentiler yazabilir, dağıtabilir ve yineleyebilir. CSI kullanmak, çekirdek Kubernetes koduna dokunmak ve ardından yayın döngülerini beklemek zorunda kalmadan Kubernetes'teki mevcut olanları da geliştirebilir.

AKS Arc tarafından kullanılan disk ve dosya CSI sürücüleri CSI belirtim uyumlu sürücülerdir.

AKS Arc üzerindeki CSI depolama sürücüsü desteği şunları kullanmanıza olanak tanır:

  • Kubernetes DataDisk kaynağı oluşturmak için kullanabileceğiniz AKS Arc diskleri. Bunlar ReadWriteOnce olarak bağlanır, bu nedenle aynı anda yalnızca tek bir pod için kullanılabilir. Aynı anda birden çok pod tarafından erişilebilen depolama birimleri için AKS Arc dosyalarını kullanın.

  • Podlara SMB veya NFS paylaşımını bağlamak için kullanabileceğiniz AKS Arc dosyaları. Bunlar ReadWriteMany olarak bağlanır, böylece verileri birden çok düğüm ve pod arasında paylaşabilirsiniz. Pvc (kalıcı birim talebi) belirtimine göre ReadWriteOnce olarak da bağlanabilirler.

ReadWriteMany CSI sürücülerini kullanarak dosyaları kalıcı birimleri kullanma

AKS Arc'taki aynı depolama birimlerine birden çok düğüm için eşzamanlı erişim gerekiyorsa, dosyaların SMB veya NFS paylaşımlarını ReadWriteMany olarak bağlaması için CSI sürücülerini kullanabilirsiniz. SMB veya NFS paylaşımlarını önceden sağlamalısınız.

SMB sürücülerini kullanma

  1. SMB sürücüsünün dağıtıldığından emin olun. Azure portalını veya az aksarc create komutunu kullanarak bir Kubernetes kümesi oluşturduğunuzda SMB CSI sürücüsü varsayılan olarak yüklenir. kullanarak --disable-smb-driverbir Kubernetes kümesi oluşturursanız, komutunu kullanarak az aksarc update bu kümede SMB sürücüsünü etkinleştirmeniz gerekir:

    az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
    
  1. Aşağıdaki komutu çalıştırarak SMB paylaşımlarına erişmek için gereken kimlik bilgilerini depolamak için Kubernetes gizli dizileri oluşturun:

    kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
    
  2. Aşağıdaki bildirimle yeni bir SMB depolama sınıfı oluşturmak için kullanarak kubectl bir depolama sınıfı oluşturun:

    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 sürücülerini kullanma

  1. NFS sürücüsünün dağıtıldığından emin olun. Azure portalını veya az aksarc create komutunu kullanarak bir Kubernetes kümesi oluşturduğunuzda NFS CSI sürücüsü varsayılan olarak yüklenir. kullanarak --disable-nfs-driverbir Kubernetes kümesi oluşturursanız, komutunu kullanarak az aksarc update bu kümede NFS sürücüsünü etkinleştirmeniz gerekir:

    az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
    
  1. Aşağıdaki bildirimi kullanarak bir NFS depolama sınıfı oluşturun:

    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 veya NFS sürücülerini kaldırmak için

SMB veya NFS sürücülerini kaldırmak için aşağıdaki Azure CLI komutlarını kullanın:

az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver

Sonraki adımlar