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
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-driver
bir Kubernetes kümesi oluşturursanız, komutunu kullanarakaz 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
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
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
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-driver
bir Kubernetes kümesi oluşturursanız, komutunu kullanarakaz 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
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