Bagikan melalui


Menggunakan driver file Antarmuka Penyimpanan Kontainer (CSI) di AKS yang diaktifkan oleh Azure Arc

> Berlaku untuk: AKS di Windows Server, AKS di Azure Local

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 sistem penyimpanan blok dan file arbitrer ke beban kerja yang terkontainerisasi pada Kubernetes. Dengan menggunakan CSI, AKS yang diaktifkan oleh Arc dapat menulis, menyebarkan, dan melakukan iterasi plug-in untuk mengekspos sistem penyimpanan baru. CSI juga dapat meningkatkan yang ada di Kubernetes tanpa harus menyentuh kode Kubernetes inti dan kemudian menunggu siklus rilisnya.

Driver CSI untuk 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 AKS Arc files.

  • 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).

Gunakan volume persisten untuk file dengan menggunakan driver CSI ReadWriteMany

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 mengkonfigurasi pembagian 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 az aksarc create perintah . Jika Anda membuat kluster AKS menggunakan portal Microsoft Azure, templat Azure Resource Manager (ARM), atau Terraform, driver CSI SMB tidak diinstal secara default. Anda harus mengaktifkan driver SMB pada kluster AKS. Perintah Azure CLI yang setara untuk memperbarui kluster AKS yang ada dan mengaktifkan SMB adalah:

    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 SMB 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 SMB disebarkan. Driver SMB CSI diinstal secara default saat Anda membuat kluster Kubernetes menggunakan az aksarc create perintah . Jika Anda membuat kluster AKS menggunakan portal Microsoft Azure, templat Azure Resource Manager (ARM), atau Terraform, driver CSI SMB tidak diinstal secara default. Anda harus mengaktifkan driver SMB pada kluster AKS. Perintah Azure CLI yang setara untuk memperbarui kluster AKS yang ada dan mengaktifkan SMB adalah:

    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 menghapus pemasangan 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