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_ZRS Standard_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 , , NoRootSquash RootSquash |
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.
Buat nama file
azure-file-sc.yaml
dan salin dalam contoh manifes berikut. Untuk informasi selengkapnya tentangmountOptions
, 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
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.
Buat file bernama
azure-file-pvc.yaml
dan salin dalam YAML berikut. Pastikan cocok denganstorageClassName
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 untukstorage
harus100Gi
.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:'.
Buat nama file
azure-pvc-files.yaml
dan salin dalam YAML berikut. Pastikan cocok denganclaimName
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
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.
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
Buat akun penyimpanan menggunakan
az storage account create
perintah dengan--sku
parameter . Perintah berikut membuat akun penyimpanan menggunakanStandard_LRS
SKU. Pastikan untuk mengganti tempat penampung berikut:myAKSStorageAccount
dengan nama akun penyimpanannodeResourceGroupName
dengan nama grup sumber daya tempat node kluster AKS dihostinglocation
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
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)
Buat berbagi file menggunakan
az storage share create
perintah . Pastikan untuk menggantishareName
dengan nama berbagi Anda.az storage share create -n shareName --connection-string $AZURE_STORAGE_CONNECTION_STRING
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)
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.
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
Buat file baru bernama
azurefiles-pv.yaml
dan salin dalam konten berikut. Di bawahcsi
, perbaruiresourceGroup
,volumeHandle
, danshareName
. Untuk opsi pemasangan, nilai default untukfileMode
dandirMode
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
Buat volume persisten menggunakan
kubectl create
perintah .kubectl create -f azurefiles-pv.yaml
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
Buat PersistentVolumeClaim menggunakan
kubectl apply
perintah .kubectl apply -f azurefiles-mount-options-pvc.yaml
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
Perbarui spesifikasi kontainer Anda untuk mereferensikan PersistentVolumeClaim dan pod Anda dalam file YAML. Contohnya:
... volumes: - name: azure persistentVolumeClaim: claimName: azurefile
Spesifikasi pod tidak dapat diperbarui di tempat, jadi hapus pod menggunakan
kubectl delete
perintah dan buat ulang menggunakankubectl 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.
- Buat file baru bernama
azure-files-pod.yaml
dan salin dalam konten berikut. Jika Anda mengubah nama berbagi file atau nama rahasia, perbaruishareName
dansecretName
. Anda juga dapat memperbaruimountPath
, yang merupakan jalur tempat berbagi File dipasang di pod. Untuk kontainer Windows Server, tentukanmountPath
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
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.
Azure Kubernetes Service