Menggunakan driver file Antarmuka Penyimpanan Kontainer (CSI) di AKS yang diaktifkan oleh Azure Arc
> Berlaku untuk: AKS di Azure Local 22H2, AKS di Windows Server, AKS di Azure Local, versi 23H2
Artikel ini menjelaskan cara menggunakan driver Antarmuka Penyimpanan Kontainer (CSI) untuk file guna memasang berbagi Blok Pesan Server (SMB) atau NFS saat beberapa simpul memerlukan akses bersamaan ke volume penyimpanan yang sama di AKS yang diaktifkan oleh Azure Arc.
Ringkasan CSI di AKS Arc
Container Storage Interface (CSI) adalah standar untuk mengekspos blok abritrer dan sistem penyimpanan file ke beban kerja kontainer pada Kube. Dengan menggunakan CSI, AKS yang diaktifkan oleh Arc dapat menulis, menyebarkan, dan melakukan iterasi plug-in untuk mengekspos sistem penyimpanan baru. Penggunaan CSI juga dapat meningkatkan penyimpanan yang sudah ada di Kubernetes tanpa harus menyentuh kode inti Kubernetes, lalu tunggu siklus rilisnya.
Driver CSI disk dan file yang digunakan oleh AKS Arc adalah driver yang mematuhi spesifikasi CSI.
Dukungan driver penyimpanan CSI di AKS Arc memungkinkan Anda untuk menggunakan:
Disk AKS Arc yang dapat Anda gunakan untuk membuat sumber daya Kubernetes DataDisk . Disk ini dipasang sebagai ReadWriteOnce, sehingga mereka hanya tersedia untuk satu pod pada satu waktu. Untuk volume penyimpanan yang dapat diakses oleh beberapa pod secara bersamaan, gunakan file AKS Arc.
File AKS Arc yang dapat Anda gunakan untuk memasang berbagi SMB atau NFS ke pod. File ini dipasang sebagai ReadWriteMany, sehingga Anda dapat berbagi data di beberapa node dan pod. File juga dapat dipasang sebagai ReadWriteOnce berdasarkan pada spesifikasi PVC (klaim volume persisten).
Menggunakan volume persisten file menggunakan driver ReadWriteMany CSI
Jika beberapa simpul memerlukan akses bersamaan ke volume penyimpanan yang sama di AKS Arc, Anda dapat menggunakan driver CSI untuk file guna memasang berbagi SMB atau NFS sebagai ReadWriteMany. Anda harus menyediakan berbagi SMB atau NFS terlebih dahulu.
Menggunakan driver SMB
Pastikan driver SMB disebarkan. Driver SMB CSI diinstal secara default saat Anda membuat kluster Kubernetes menggunakan portal Azure atau
az aksarc create
perintah . Jika Anda membuat kluster Kubernetes dengan menggunakan--disable-smb-driver
, Anda harus mengaktifkan driver SMB pada kluster ini menggunakanaz aksarc update
perintah :az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
Buat rahasia Kubernetes untuk menyimpan mandat yang diperlukan untuk mengakses berbagi SMB dengan menjalankan perintah berikut:
kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
Buat kelas penyimpanan menggunakan
kubectl
untuk membuat kelas penyimpanan UKM baru dengan manifes berikut: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
Menggunakan driver NFS
Pastikan driver NFS disebarkan. Driver NFS CSI diinstal secara default saat Anda membuat kluster Kubernetes menggunakan portal Azure atau
az aksarc create
perintah . Jika Anda membuat kluster Kubernetes dengan menggunakan--disable-nfs-driver
, Anda harus mengaktifkan driver NFS pada kluster ini menggunakanaz aksarc update
perintah :az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
Buat kelas penyimpanan NFS menggunakan manifes berikut:
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
Untuk mencopot instalan driver SMB atau NFS
Gunakan perintah Azure CLI berikut untuk menghapus instalasi driver SMB atau NFS:
az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver