Bagikan melalui


Membuat dan menggunakan volume dengan Azure Files di Azure Kubernetes Service (AKS)

Volume persisten mewakili sebuah bagian penyimpanan yang telah tersedia untuk penggunaan dengan pod Kube. Anda dapat menggunakan volume persisten dengan satu atau banyak pod, dan dapat disediakan secara dinamis atau statis. Jika beberapa pod memerlukan akses bersamaan ke volume penyimpanan yang sama, Anda dapat menggunakan Azure Files untuk terhubung menggunakan protokol Server Message Block (SMB). Artikel ini menunjukkan cara membuat berbagi file Azure secara dinamis untuk digunakan oleh beberapa pod di kluster Azure Kubernetes Service (AKS).

Artikel ini menunjukkan cara:

  • Bekerja dengan volume persisten dinamis (PV) dengan menginstal driver Antarmuka Penyimpanan Kontainer (CSI) dan secara dinamis membuat satu atau beberapa berbagi file Azure untuk dilampirkan ke pod.
  • Bekerja dengan PV statis dengan membuat satu atau beberapa berbagi file Azure, atau menggunakan yang sudah ada dan melampirkannya ke pod.

Untuk informasi lebih lanjut tentang volume Kubernetes, lihat Opsi penyimpanan untuk aplikasi di AKS.

Sebelum Anda mulai

  • Anda memerlukan akun penyimpanan Azure.
  • Pastikan Anda memiliki Azure CLI versi 2.0.59 atau yang lebih baru yang diinstal dan dikonfigurasi. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.
  • Saat memilih antara berbagi file standar dan premium, penting bagi Anda untuk memahami model provisi dan persyaratan pola penggunaan yang diharapkan yang Anda rencanakan untuk dijalankan di Azure Files. Untuk informasi selengkapnya, lihat Memilih tingkat performa Azure Files berdasarkan pola penggunaan.

Memprovisikan volume secara dinamis

Bagian ini menyediakan panduan untuk administrator kluster yang ingin menyediakan satu atau beberapa volume persisten yang menyertakan detail satu atau beberapa berbagi di Azure Files. Klaim volume persisten (PVC) menggunakan objek kelas penyimpanan untuk menyediakan berbagi file Azure Files secara dinamis.

Parameter kelas penyimpanan untuk PersistentVolumes dinamis

Tabel berikut menyertakan parameter yang dapat Anda gunakan untuk menentukan kelas penyimpanan kustom untuk PersistentVolumeClaim Anda.

Nama Makna Nilai yang Tersedia Wajib Nilai default
accountAccessTier Tingkat akses untuk akun penyimpanan Akun standar dapat memilih Hot atau Cool, dan akun Premium hanya dapat memilih Premium. No Kosong. Gunakan pengaturan default untuk jenis akun penyimpanan yang berbeda.
accountQuota Membatasi kuota untuk akun. Anda dapat menentukan kuota maksimum dalam GB (102400GB secara default). Jika akun melebihi kuota yang ditentukan, driver melompat memilih akun. No 102400
allowBlobPublicAccess Mengizinkan atau melarang akses publik ke semua blob atau kontainer untuk akun penyimpanan yang dibuat oleh driver. true atau false No false
disableDeleteRetentionPolicy Tentukan apakah nonaktifkan DeleteRetentionPolicy untuk akun penyimpanan yang dibuat oleh driver. true atau false No false
enableLargeFileShares Tentukan apakah akan menggunakan akun penyimpanan dengan berbagi file besar diaktifkan atau tidak. Jika bendera ini diatur ke true dan akun penyimpanan dengan berbagi file besar diaktifkan tidak ada, akun penyimpanan baru dengan berbagi file besar diaktifkan dibuat. Bendera ini harus digunakan dengan sku Standar karena akun penyimpanan yang dibuat dengan sku Premium memiliki largeFileShares opsi diaktifkan secara default. true atau false No salah
folderName Tentukan nama folder di berbagi file Azure. Nama folder yang sudah ada di berbagi file Azure. No Jika nama folder tidak ada di berbagi file, pemasangan gagal.
getLatestAccount Menentukan apakah akan mendapatkan kunci akun terbaru berdasarkan waktu pembuatan. Driver ini mendapatkan kunci pertama secara default. true atau false No false
lokasi Tentukan wilayah Azure dari akun penyimpanan Azure. Contohnya,eastus. No Jika kosong, driver menggunakan nama lokasi yang sama dengan kluster AKS saat ini.
matchTags Cocokkan tag saat driver mencoba menemukan akun penyimpanan yang sesuai. true atau false No false
networkEndpointType Tentukan jenis titik akhir jaringan untuk akun penyimpanan yang dibuat oleh driver. Jika privateEndpoint ditentukan, titik akhir privat dibuat untuk akun penyimpanan. Untuk kasus lain, titik akhir layanan dibuat secara default. "",privateEndpoint No ""
protokol Tentukan protokol berbagi file. smb, nfs No smb
requireInfraEncryption Tentukan apakah layanan menerapkan lapisan enkripsi sekunder dengan kunci yang dikelola platform untuk data tidak aktif untuk akun penyimpanan yang dibuat oleh driver. true atau false No false
ResourceGroup Tentukan grup sumber daya untuk Disk Azure. Nama grup sumber daya yang ada No Jika kosong, driver menggunakan nama grup sumber daya yang sama dengan kluster AKS saat ini.
selectRandomMatchingAccount Menentukan apakah akan memilih akun yang cocok secara acak. Secara default, driver selalu memilih akun pencocokan pertama dalam urutan alfabet (Catatan: Driver ini menggunakan cache pencarian akun, yang menghasilkan distribusi pembuatan file yang tidak merata di beberapa akun). true atau false No false
server Tentukan alamat server akun penyimpanan Azure. Alamat server yang ada, misalnya accountname.privatelink.file.core.windows.net. No Jika kosong, driver menggunakan default accountname.file.core.windows.net atau alamat akun sovereign cloud lainnya.
shareAccessTier Tingkat akses untuk berbagi file Akun tujuan umum v2 dapat memilih antara TransactionOptimized (default), Hot, dan Cool. Jenis akun penyimpanan premium hanya untuk berbagi file. No Kosong. Gunakan pengaturan default untuk jenis akun penyimpanan yang berbeda.
shareName Tentukan nama berbagi file Azure. Nama berbagi file Azure yang sudah ada atau baru. No Jika kosong, driver menghasilkan nama berbagi file Azure.
shareNamePrefix Tentukan awalan nama berbagi file Azure yang dibuat oleh driver. Nama berbagi hanya boleh berisi huruf kecil, angka, tanda hubung, dan panjang harus kurang dari 21 karakter. No
skuName Jenis akun penyimpanan Azure Files (alias: storageAccountType) Standard_LRS, , Standard_ZRSStandard_GRS, Standard_RAGRS, Standard_RAGZRS, ,Premium_LRS , ,Premium_ZRS No StandardSSD_LRS
Ukuran berbagi file minimum untuk jenis akun Premium adalah 100 GB.
Jenis akun ZRS didukung di wilayah terbatas.
Berbagi file NFS hanya mendukung jenis akun Premium.
storageAccount Tentukan nama akun penyimpanan Azure Anda. storageAccountName Tidak- Ketika nama akun penyimpanan tertentu tidak disediakan, driver akan mencari akun penyimpanan yang sesuai yang cocok dengan pengaturan akun dalam grup sumber daya yang sama. Jika gagal menemukan akun penyimpanan yang cocok, akun penyimpanan tersebut akan membuat akun baru. Namun, jika nama akun penyimpanan ditentukan, akun penyimpanan harus sudah ada.
storageEndpointSuffix Tentukan akhiran titik akhir penyimpanan Azure. core.windows.net, core.chinacloudapi.cn, dll. No Jika kosong, driver menggunakan akhiran titik akhir penyimpanan default sesuai dengan lingkungan cloud. Contohnya,core.windows.net.
tag Tag dibuat di akun penyimpanan baru. Format tag: 'foo=aaa,bar=bbb' No ""
--- Parameter berikut hanya untuk protokol SMB --- ---
subscriptionID Tentukan ID langganan Azure tempat berbagi file Azure dibuat. ID langganan Azure No Jika tidak kosong, resourceGroup harus disediakan.
storeAccountKey Tentukan apakah akan menyimpan kunci akun ke rahasia Kubernetes. true atau false
false berarti driver menggunakan identitas kubelet untuk mendapatkan kunci akun.
No true
secretName Tentukan nama rahasia untuk menyimpan kunci akun. No
secretNamespace Tentukan namespace rahasia untuk menyimpan kunci akun.

Catatan:
Jika secretNamespace tidak ditentukan, rahasia dibuat di namespace yang sama dengan pod.
default,kube-system, dll. No Namespace layanan PVC, misalnya csi.storage.k8s.io/pvc/namespace
useDataPlaneAPI Tentukan apakah akan menggunakan DATA Plane API untuk berbagi file create/delete/resize, yang dapat menyelesaikan masalah pembatasan SRP API karena API data plane hampir tidak memiliki batas, sementara itu akan gagal ketika ada firewall atau pengaturan Vnet pada akun penyimpanan. true atau false No false
--- Parameter berikut hanya untuk protokol NFS --- ---
mountPermissions Izin folder yang dipasang. Default adalah 0777. Jika diatur ke 0, driver tidak dilakukan chmod setelah pemasangan 0777 No
rootSquashType Tentukan perilaku root squashing pada berbagi. Defaultnya adalah NoRootSquash AllSquash, , NoRootSquashRootSquash No
--- Parameter berikut hanya untuk pengaturan VNet. Misalnya, NFS, titik akhir privat --- ---
fsGroupChangePolicy Menunjukkan bagaimana driver mengubah kepemilikan volume. Pod securityContext.fsGroupChangePolicy diabaikan. OnRootMismatch (default), Always, None No OnRootMismatch
subnetName Nama subnet Nama subnet yang ada dari simpul agen. No Jika kosong, driver akan menggunakan nilai subnetName dalam file konfigurasi cloud Azure.
vnetName Nama jaringan virtual Nama jaringan virtual yang ada. No Jika kosong, driver akan menggunakan nilai vnetName dalam file konfigurasi cloud Azure.
vnetResourceGroup Tentukan grup sumber daya VNet tempat jaringan virtual ditentukan. Nama grup sumber daya yang ada. No Jika kosong, driver akan menggunakan nilai vnetResourceGroup dalam file konfigurasi cloud Azure.

Buat kelas penyimpanan

Kelas penyimpanan menentukan cara membuat berbagi file Azure. Akun penyimpanan secara otomatis dibuat di grup sumber daya simpul untuk digunakan dengan kelas penyimpanan untuk menyimpan berbagi file Azure Files. Pilih SKU redundansi penyimpanan Azure berikut untuk skuName:

  • Standard_LRS: Penyimpanan standar redundan lokal (LRS)
  • Standard_GRS: Penyimpanan geo-redundan standar (GRS)
  • Standard_ZRS: Penyimpanan redundan zona standar (ZRS)
  • Standard_RAGRS: Penyimpanan geo-redundan akses baca standar (RA-GRS)
  • Premium_LRS: Penyimpanan redundan lokal premium (LRS)
  • Premium_ZRS: Penyimpanan redundan zona premium (ZRS)

Catatan

Berbagi premium minimum adalah 100GB.

Untuk informasi lebih lanjut tentang kelas penyimpanan Kubernetes untuk Azure Files, lihat Kubernetes Storage Classes.

  1. Buat nama file azure-file-sc.yaml dan salin dalam contoh manifes berikut. Untuk informasi selengkapnya tentang mountOptions, lihat bagian Opsi pemasangan.

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: my-azurefile
    provisioner: file.csi.azure.com # replace with "kubernetes.io/azure-file" if aks version is less than 1.21
    allowVolumeExpansion: true
    mountOptions:
     - dir_mode=0777
     - file_mode=0777
     - uid=0
     - gid=0
     - mfsymlinks
     - cache=strict
     - actimeo=30
     - nobrl  # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
    parameters:
      skuName: Premium_LRS
    
  2. Buat kelas penyimpanan menggunakan kubectl apply perintah .

    kubectl apply -f azure-file-sc.yaml
    

Buat klaim volume persisten

Klaim volume persisten/persistent volume claim (PVC) menggunakan objek kelas penyimpanan untuk provisi berbagi file Azure secara dinamis. Anda dapat menggunakan YAML berikut untuk membuat klaim volume persisten berukuran 100 GB dengan akses ReadWriteMany . Untuk informasi selengkapnya tentang mode akses, lihat Volume persisten Kubernetes.

  1. Buat file bernama azure-file-pvc.yaml dan salin dalam YAML berikut. Pastikan cocok dengan storageClassName kelas penyimpanan yang Anda buat di langkah sebelumnya.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-azurefile
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: my-azurefile
      resources:
        requests:
          storage: 100Gi
    

    Catatan

    Jika menggunakan Premium_LRS SKU untuk kelas penyimpanan Anda, nilai minimum untuk storage harus 100Gi.

  2. Buat klaim volume persisten menggunakan kubectl apply perintah .

    kubectl apply -f azure-file-pvc.yaml
    

    Setelah selesai, berbagi file dibuat. Sebuah rahasia Kubernetes juga dibuat, yang mencakup informasi koneksi dan kredensial. Anda dapat menggunakan kubectl get perintah untuk melihat status PVC:

    kubectl get pvc my-azurefile
    

    Output perintah menyerupai contoh berikut:

    NAME           STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
    my-azurefile   Bound     pvc-8436e62e-a0d9-11e5-8521-5a8664dc0477   100Gi       RWX            my-azurefile      5m
    

Menggunakan volume persisten

YAML berikut membuat pod yang menggunakan klaim volume persisten my-azurefile untuk memasang berbagi file Azure Files di jalur /mnt/azure . Untuk kontainer Windows Server, tentukan mountPath menggunakan konvensi jalur Windows, seperti 'D:'.

  1. Buat nama file azure-pvc-files.yamldan salin dalam YAML berikut. Pastikan cocok dengan claimName PVC yang Anda buat di langkah sebelumnya.

    kind: Pod
    apiVersion: v1
    metadata:
      name: mypod
    spec:
      containers:
        - name: mypod
          image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 250m
              memory: 256Mi
          volumeMounts:
            - mountPath: /mnt/azure
              name: volume
              readOnly: false
      volumes:
       - name: volume
         persistentVolumeClaim:
           claimName: my-azurefile
    
  2. Buat pod menggunakan kubectl apply perintah .

    kubectl apply -f azure-pvc-files.yaml
    

    Anda sekarang memiliki pod yang sedang berjalan dengan berbagi file Azure Files yang dipasang di direktori /mnt/azure . Konfigurasi ini dapat dilihat saat memeriksa pod Anda menggunakan kubectl describe perintah . Contoh output ringkas berikut menunjukkan volume yang dipasang dalam kontainer.

    Containers:
      mypod:
        Container ID:   docker://053bc9c0df72232d755aa040bfba8b533fa696b123876108dec400e364d2523e
        Image:          mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
        Image ID:       docker-pullable://nginx@sha256:d85914d547a6c92faa39ce7058bd7529baacab7e0cd4255442b04577c4d1f424
        State:          Running
          Started:      Fri, 01 Mar 2019 23:56:16 +0000
        Ready:          True
        Mounts:
          /mnt/azure from volume (rw)
          /var/run/secrets/kubernetes.io/serviceaccount from default-token-8rv4z (ro)
    [...]
    Volumes:
      volume:
        Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
        ClaimName:  my-azurefile
        ReadOnly:   false
    [...]
    

Opsi pemasangan

Nilai default untuk fileMode dan dirMode adalah 0777 untuk Kubernetes versi 1.13.0 ke atas. Jika Anda membuat volume persisten secara dinamis dengan kelas penyimpanan, Anda dapat menentukan opsi pemasangan pada objek kelas penyimpanan. Untuk informasi selengkapnya, lihat Opsi pemasangan. Contoh berikut menetapkan 0777:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: my-azurefile
provisioner: file.csi.azure.com # replace with "kubernetes.io/azure-file" if aks version is less than 1.21
allowVolumeExpansion: true
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict
  - actimeo=30
  - nobrl  # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
parameters:
  skuName: Premium_LRS

Menggunakan tag Azure

Untuk detail selengkapnya tentang menggunakan tag Azure, lihat Menggunakan tag Azure di Azure Kubernetes Service (AKS).

Provisi volume secara statis

Bagian ini menyediakan panduan untuk administrator kluster yang ingin membuat satu atau beberapa volume persisten yang menyertakan detail berbagi Azure Files yang ada untuk digunakan dengan beban kerja.

Parameter provisi statis untuk PersistentVolume

Tabel berikut menyertakan parameter yang dapat Anda gunakan untuk menentukan PersistentVolume.

Nama Makna Nilai yang Tersedia Wajib Nilai default
volumeAttributes.resourceGroup Tentukan nama grup sumber daya Azure Anda. myResourceGroup No Jika kosong, driver menggunakan nama grup sumber daya yang sama dengan kluster saat ini.
volumeAttributes.storageAccount Tentukan nama akun penyimpanan Azure yang sudah ada. storageAccountName Ya
volumeAttributes.shareName Tentukan nama berbagi file Azure. fileShareName Ya
volumeAttributes.folderName Tentukan nama folder di berbagi file Azure. folderName No Jika nama folder tidak ada di berbagi file, pemasangan akan gagal.
volumeAttributes.protocol Tentukan protokol berbagi file. smb, nfs No smb
volumeAttributes.server Tentukan alamat server akun penyimpanan Azure Alamat server yang ada, misalnya accountname.privatelink.file.core.windows.net. No Jika kosong, driver menggunakan default accountname.file.core.windows.net atau alamat akun sovereign cloud lainnya.
--- Parameter berikut hanya untuk protokol SMB --- --- ---
volumeAttributes.secretName Tentukan nama rahasia yang menyimpan nama dan kunci akun penyimpanan. No
volumeAttributes.secretNamespace Tentukan namespace rahasia. default,kube-system, dll. No Namespace layanan PVC (csi.storage.k8s.io/pvc/namespace)
nodeStageSecretRef.name Tentukan nama rahasia yang menyimpan nama dan kunci akun penyimpanan. Nama rahasia yang ada. No Jika kosong, driver menggunakan identitas kubelet untuk mendapatkan kunci akun.
nodeStageSecretRef.namespace Tentukan namespace rahasia. Namespace Kubernetes No
--- Parameter berikut hanya untuk protokol NFS --- --- ---
volumeAttributes.fsGroupChangePolicy Menunjukkan bagaimana driver mengubah kepemilikan volume. Pod securityContext.fsGroupChangePolicy diabaikan. OnRootMismatch (default), Always, None No OnRootMismatch
volumeAttributes.mountPermissions Tentukan izin folder yang dipasang. Defaultnya adalah 0777 No

Membuat Azure file share

Sebelum dapat menggunakan berbagi file Azure Files sebagai volume Kubernetes, Anda harus membuat akun Azure Storage dan berbagi file.

  1. Dapatkan nama grup sumber daya menggunakan az aks show perintah dengan --query nodeResourceGroup parameter .

    az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
    

    Output perintah menyerupai contoh berikut:

    MC_myResourceGroup_myAKSCluster_eastus
    
  2. Buat akun penyimpanan menggunakan az storage account create perintah dengan --sku parameter . Perintah berikut membuat akun penyimpanan menggunakan Standard_LRS SKU. Pastikan untuk mengganti tempat penampung berikut:

    • myAKSStorageAccount dengan nama akun penyimpanan
    • nodeResourceGroupName dengan nama grup sumber daya tempat node kluster AKS dihosting
    • location dengan nama wilayah untuk membuat sumber daya. Ini harus menjadi wilayah yang sama dengan node kluster AKS.
    az storage account create -n myAKSStorageAccount -g nodeResourceGroupName -l location --sku Standard_LRS
    
  3. Ekspor string koneksi sebagai variabel lingkungan menggunakan perintah berikut, yang Anda gunakan untuk membuat berbagi file.

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string -n storageAccountName -g resourceGroupName -o tsv)
    
  4. Buat berbagi file menggunakan az storage share create perintah . Pastikan untuk mengganti shareName dengan nama berbagi Anda.

    az storage share create -n shareName --connection-string $AZURE_STORAGE_CONNECTION_STRING
    
  5. Ekspor kunci akun penyimpanan sebagai variabel lingkungan menggunakan perintah berikut.

    STORAGE_KEY=$(az storage account keys list --resource-group nodeResourceGroupName --account-name myAKSStorageAccount --query "[0].value" -o tsv)
    
  6. Gemakan nama dan kunci akun penyimpanan menggunakan perintah berikut. Salin informasi ini, karena Anda memerlukan nilai-nilai ini saat membuat volume Kubernetes.

    echo Storage account key: $STORAGE_KEY
    

Buat rahasia Kubernetes

Kubernetes membutuhkan kredensial untuk mengakses berbagi file yang dibuat pada langkah sebelumnya. Kredensial ini disimpan dalam rahasia Kubernetes, yang direferensikan ketika Anda membuat pod Kubernetes.

  1. Buat rahasia menggunakan kubectl create secret perintah . Contoh berikut membuat rahasia bernama azure-secret dan mengisi azurestorageaccountname dan azurestorageaccountkey dari langkah sebelumnya. Untuk menggunakan akun penyimpanan Azure yang sudah ada, berikan nama dan kunci akun.

    kubectl create secret generic azure-secret --from-literal=azurestorageaccountname=myAKSStorageAccount --from-literal=azurestorageaccountkey=$STORAGE_KEY
    

Pasang berbagi sebagai volume persisten

  1. Buat file baru bernama azurefiles-pv.yaml dan salin dalam konten berikut. Di bawah csi, perbarui resourceGroup, volumeHandle, dan shareName. Untuk opsi pemasangan, nilai default untuk fileMode dan dirMode adalah 0777.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      annotations:
        pv.kubernetes.io/provisioned-by: file.csi.azure.com
      name: azurefile
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      storageClassName: azurefile-csi
      csi:
        driver: file.csi.azure.com
        volumeHandle: "{resource-group-name}#{account-name}#{file-share-name}"  # make sure this volumeid is unique for every identical share in the cluster
        volumeAttributes:
          resourceGroup: resourceGroupName  # optional, only set this when storage account is not in the same resource group as node
          shareName: aksshare
        nodeStageSecretRef:
          name: azure-secret
          namespace: default
      mountOptions:
        - dir_mode=0777
        - file_mode=0777
        - uid=0
        - gid=0
        - mfsymlinks
        - cache=strict
        - nosharesock
        - nobrl  # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
    
  2. Buat volume persisten menggunakan kubectl create perintah .

    kubectl create -f azurefiles-pv.yaml
    
  3. Buat file baru bernama azurefiles-mount-options-pvc.yaml dan salin konten berikut.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: azurefile
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: azurefile-csi
      volumeName: azurefile
      resources:
        requests:
          storage: 5Gi
    
  4. Buat PersistentVolumeClaim menggunakan kubectl apply perintah .

    kubectl apply -f azurefiles-mount-options-pvc.yaml
    
  5. Verifikasi PersistentVolumeClaim Anda dibuat dan terikat ke PersistentVolume menggunakan kubectl get perintah .

    kubectl get pvc azurefile
    

    Output perintah menyerupai contoh berikut:

    NAME        STATUS   VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    azurefile   Bound    azurefile   5Gi        RWX            azurefile      5s
    
  6. Perbarui spesifikasi kontainer Anda untuk mereferensikan PersistentVolumeClaim dan pod Anda dalam file YAML. Contohnya:

    ...
      volumes:
      - name: azure
        persistentVolumeClaim:
          claimName: azurefile
    
  7. Spesifikasi pod tidak dapat diperbarui di tempat, jadi hapus pod menggunakan kubectl delete perintah dan buat ulang menggunakan kubectl apply perintah .

    kubectl delete pod mypod
    
    kubectl apply -f azure-files-pod.yaml
    

Pasang berbagi file sebagai volume sebaris

Catatan

Untuk menghindari masalah performa, kami sarankan Anda menggunakan volume persisten alih-alih volume sebaris ketika banyak pod mengakses berbagi file yang sama. Volume inline hanya dapat mengakses rahasia di namespace yang sama dengan pod. Untuk menentukan namespace rahasia yang berbeda, gunakan volume persisten.

Untuk memasang berbagi file Azure Files ke dalam pod, Anda mengonfigurasi volume dalam spesifikasi kontainer.

  1. Buat file baru bernama azure-files-pod.yaml dan salin dalam konten berikut. Jika Anda mengubah nama berbagi file atau nama rahasia, perbarui shareName dan secretName. Anda juga dapat memperbarui mountPath, yang merupakan jalur tempat berbagi File dipasang di pod. Untuk kontainer Windows Server, tentukan mountPath menggunakan konvensi jalur Windows, seperti 'D:'.
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  nodeSelector:
    kubernetes.io/os: linux
  containers:
    - image: 'mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine'
      name: mypod
      resources:
        requests:
          cpu: 100m
          memory: 128Mi
        limits:
          cpu: 250m
          memory: 256Mi
      volumeMounts:
        - name: azure
          mountPath: /mnt/azure
          readOnly: false
  volumes:
    - name: azure
      csi:
        driver: file.csi.azure.com
        volumeAttributes:
          secretName: azure-secret  # required
          shareName: aksshare  # required
          mountOptions: 'dir_mode=0777,file_mode=0777,cache=strict,actimeo=30,nosharesock,nobrl'  # optional
  1. Buat pod menggunakan kubectl apply perintah .

    kubectl apply -f azure-files-pod.yaml
    

    Anda sekarang memiliki pod yang sedang berjalan dengan berbagi file Azure Files yang dipasang di /mnt/azure. Anda dapat memverifikasi bahwa berbagi berhasil dipasang menggunakan kubectl describe perintah .

    kubectl describe pod mypod
    

Langkah berikutnya

Untuk parameter driver CSI Azure Files, lihat Parameter driver CSI.

Untuk praktik terbaik terkait, lihat Praktik terbaik untuk penyimpanan dan pencadangan di AKS.