Bagikan melalui


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

  1. 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 menggunakan az aksarc update perintah :

    az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
    
  1. 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
    
  2. 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

  1. 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 menggunakan az aksarc update perintah :

    az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
    
  1. 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

Langkah berikutnya