Azure Kubernetes Service'te (AKS) Azure Dosyalar ile birim oluşturma ve kullanma
Kalıcı birim, Kubernetes podlarıyla kullanılmak üzere sağlanan bir depolama parçasını temsil eder. Kalıcı bir birimi bir veya birden çok pod ile kullanabilirsiniz ve bu birim dinamik veya statik olarak sağlanabilir. Birden çok pod aynı depolama birimine eş zamanlı erişime ihtiyaç duyuyorsa, Azure Dosyalar kullanarak Sunucu İleti Bloğu (SMB) protokolunu kullanarak bağlanabilirsiniz. Bu makalede, Bir Azure Kubernetes Service (AKS) kümesinde birden çok pod tarafından kullanılmak üzere dinamik olarak bir Azure dosya paylaşımının nasıl oluşturulacağı gösterilmektedir.
Bu makalede aşağıdaki işlemler hakkında bilgi edinirsiniz:
- Kapsayıcı Depolama Arabirimi (CSI) sürücüsünü yükleyerek ve bir poda eklemek için dinamik olarak bir veya daha fazla Azure dosya paylaşımı oluşturarak dinamik kalıcı birim (PV) ile çalışın.
- Bir veya daha fazla Azure dosya paylaşımı oluşturarak statik bir PV ile çalışın veya var olan bir dosya ile pod'a ekleyin.
Kubernetes birimleri hakkında daha fazla bilgi için bkz . AKS'deki uygulamalar için depolama seçenekleri.
Başlamadan önce
- Bir Azure depolama hesabına ihtiyacınız vardır.
- Azure CLI sürüm 2.0.59 veya üzerinin yüklü ve yapılandırılmış olduğundan emin olun. Sürümü bulmak için
az --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme. - Standart ve premium dosya paylaşımları arasında seçim yaparken, Azure Dosyalar üzerinde çalıştırmayı planladığınız beklenen kullanım deseninin sağlama modelini ve gereksinimlerini anlamanız önemlidir. Daha fazla bilgi için bkz. Kullanım desenlerine göre Azure Dosyalar performans katmanı seçme.
Birimi dinamik olarak sağlama
Bu bölüm, Azure Dosyalar bir veya daha fazla paylaşımın ayrıntılarını içeren bir veya daha fazla kalıcı birim sağlamak isteyen küme yöneticileri için rehberlik sağlar. Kalıcı birim talebi (PVC), Azure Dosyalar dosya paylaşımını dinamik olarak sağlamak için depolama sınıfı nesnesini kullanır.
Dinamik PersistentVolumes için depolama sınıfı parametreleri
Aşağıdaki tabloda, PersistentVolumeClaim'iniz için özel bir depolama sınıfı tanımlamak için kullanabileceğiniz parametreler yer alır.
Veri Akışı Adı | Anlamı | Kullanılabilir Değer | Zorunlu | Default value |
---|---|---|---|---|
accountAccessTier | Depolama hesabı için erişim katmanı | Standart hesap veya öğesini, Hot Premium hesabı ise yalnızca öğesini seçebilirPremium .Cool |
Hayır | Boş. Farklı depolama hesabı türleri için varsayılan ayarı kullanın. |
accountQuota | Bir hesabın kotasını sınırlar. GB (varsayılan olarak 102400 GB) cinsinden maksimum kota belirtebilirsiniz. Hesap belirtilen kotayı aşarsa, sürücü hesabı seçmeyi atlar. | Hayır | 102400 |
|
allowBlobPublicAccess | Sürücü tarafından oluşturulan depolama hesabı için tüm bloblara veya kapsayıcılara genel erişim izni verme veya erişimi reddetme. | true veya false |
Hayır | false |
disableDeleteRetentionPolicy | Sürücü tarafından oluşturulan depolama hesabı için DeleteRetentionPolicy'nin devre dışı bırakılıp devre dışı bırakılmayacağını belirtin. | true veya false |
Hayır | false |
enableLargeFileShares | Büyük dosya paylaşımları etkin bir depolama hesabı kullanılıp kullanılmayacağını belirtin. Bu bayrak olarak ayarlanırsa true ve büyük dosya paylaşımları etkinleştirilmiş bir depolama hesabı yoksa, büyük dosya paylaşımları etkinleştirilmiş yeni bir depolama hesabı oluşturulur. Premium sku ile oluşturulan depolama hesaplarının seçeneği varsayılan olarak etkinleştirildiğinden bu bayrak Standart sku largeFileShares ile kullanılmalıdır. |
true veya false |
Hayır | yanlış |
folderName | Azure dosya paylaşımında klasör adını belirtin. | Azure dosya paylaşımında var olan klasör adı. | Hayır | Dosya paylaşımında klasör adı yoksa bağlama başarısız olur. |
getLatestAccount | Oluşturma zamanına göre en son hesap anahtarının alınıp alınmayacağını belirler. Bu sürücü varsayılan olarak ilk anahtarı alır. | true veya false |
Hayır | false |
konum | Azure depolama hesabının Azure bölgesini belirtin. | Örneğin, eastus . |
Hayır | Sürücü boşsa geçerli AKS kümesiyle aynı konum adını kullanır. |
matchTags | Sürücü uygun bir depolama hesabı bulmaya çalıştığında etiketleri eşleştirin. | true veya false |
Hayır | false |
networkEndpointType | Sürücü tarafından oluşturulan depolama hesabı için ağ uç noktası türünü belirtin. Belirtilirse privateEndpoint , depolama hesabı için özel bir uç nokta oluşturulur. Diğer durumlarda, varsayılan olarak bir hizmet uç noktası oluşturulur. |
"",privateEndpoint |
Hayır | "" |
protokol | Dosya paylaşımı protokollerini belirtin. | smb , nfs |
Hayır | smb |
requireInfraEncryption | Hizmetin, sürücü tarafından oluşturulan depolama hesabı için bekleyen veriler için platform tarafından yönetilen anahtarlarla ikincil bir şifreleme katmanı uygulayıp uygulamayacağını belirtin. | true veya false |
Hayır | false |
resourceGroup | Azure Diskleri için kaynak grubunu belirtin. | Mevcut kaynak grubu adı | Hayır | Sürücü boşsa geçerli AKS kümesiyle aynı kaynak grubu adını kullanır. |
selectRandomMatchingAccount | Eşleşen bir hesabın rastgele seçilip seçileceğini belirler. Varsayılan olarak, sürücü her zaman ilk eşleşen hesabı alfabetik sırada seçer (Not: Bu sürücü hesap arama önbelleğini kullanır ve bu da dosya oluşturma işleminin birden çok hesap arasında eşit olmayan bir şekilde dağıtılmasına neden olur). | true veya false |
Hayır | false |
sunucu | Azure depolama hesabı sunucu adresini belirtin. | Var olan sunucu adresi, örneğin accountname.privatelink.file.core.windows.net . |
Hayır | Sürücü boşsa varsayılan accountname.file.core.windows.net veya diğer bağımsız bulut hesabı adresini kullanır. |
shareAccessTier | Dosya paylaşımı için erişim katmanı | Genel amaçlı v2 hesabı (varsayılan), Hot ve Cool arasında TransactionOptimized seçim yapabilir. Yalnızca dosya paylaşımları için premium depolama hesabı türü. |
Hayır | Boş. Farklı depolama hesabı türleri için varsayılan ayarı kullanın. |
shareName | Azure dosya paylaşımı adını belirtin. | Mevcut veya yeni Azure dosya paylaşımı adı. | Hayır | Sürücü boşsa bir Azure dosya paylaşımı adı oluşturur. |
shareNamePrefix | Sürücü tarafından oluşturulan Azure dosya paylaşımı adı ön ekini belirtin. | Paylaşım adı yalnızca küçük harf, sayı, kısa çizgi içerebilir ve uzunluk 21 karakterden az olmalıdır. | Hayır | |
skuName | Azure Dosyalar depolama hesabı türü (diğer ad: storageAccountType ) |
Standard_LRS , , Standard_ZRS Standard_GRS , Standard_RAGRS , Standard_RAGZRS ,Premium_LRS ,Premium_ZRS |
Hayır | StandardSSD_LRS Premium hesap türü için en düşük dosya paylaşımı boyutu 100 GB'tır. ZRS hesap türü sınırlı bölgelerde desteklenir. NFS dosya paylaşımı yalnızca Premium hesap türünü destekler. |
storageAccount | Bir Azure depolama hesabı adı belirtin. | storageAccountName | -Hayır | Belirli bir depolama hesabı adı sağlanmadığında, sürücü aynı kaynak grubundaki hesap ayarlarıyla eşleşen uygun bir depolama hesabı arar. Eşleşen bir depolama hesabı bulamazsa yeni bir depolama hesabı oluşturur. Ancak, bir depolama hesabı adı belirtilirse, depolama hesabının zaten mevcut olması gerekir. |
storageEndpointSuffix | Azure depolama uç noktası son ekini belirtin. | core.windows.net , core.chinacloudapi.cn vb. |
Hayır | Sürücü boşsa, bulut ortamına göre varsayılan depolama uç noktası sonekini kullanır. Örneğin, core.windows.net . |
tags | Etiketler yeni depolama hesabında oluşturulur. | Etiket biçimi: 'foo=aaa,bar=bbb' | Hayır | "" |
--- | Aşağıdaki parametreler yalnızca SMB protokolü içindir | --- | --- | |
subscriptionID | Azure dosya paylaşımının oluşturulduğu Azure abonelik kimliğini belirtin. | Azure abonelik kimliği | Hayır | Boş değilse sağlanmalıdır resourceGroup . |
storeAccountKey | Hesap anahtarının Kubernetes gizli dizisine depolanıp depolamayacağını belirtin. | true veya false false , sürücünün hesap anahtarını almak için kubelet kimliğini kullandığı anlamına gelir. |
Hayır | true |
secretName | Hesap anahtarını depolamak için gizli dizi adını belirtin. | Hayır | ||
secretNamespace | Hesap anahtarını depolamak için gizli dizi ad alanını belirtin. Not: Belirtilmezse secretNamespace , gizli dizi pod ile aynı ad alanında oluşturulur. |
default ,kube-system vb. |
Hayır | PVC ad alanı, örneğin csi.storage.k8s.io/pvc/namespace |
useDataPlaneAPI | Veri düzlemi API'sinin neredeyse hiç sınırı olmadığından, depolama hesabında güvenlik duvarı veya sanal ağ ayarları olduğunda başarısız olacağından SRP API azaltma sorununu çözebilecek dosya paylaşımı oluşturma/silme/yeniden boyutlandırma için veri düzlemi API'sinin kullanılıp kullanılmayacağını belirtin. | true veya false |
Hayır | false |
--- | Aşağıdaki parametreler yalnızca NFS protokolü içindir | --- | --- | |
mountPermissions | Bağlı klasör izinleri. Varsayılan değer: 0777 . olarak ayarlanırsa0 , sürücü bağlamadan sonra çalışmaz chmod |
0777 |
Hayır | |
rootSquashType | Paylaşımda kök sıkıştırma davranışını belirtin. Varsayılan değer: NoRootSquash |
AllSquash , NoRootSquash , RootSquash |
Hayır | |
--- | Aşağıdaki parametreler yalnızca sanal ağ ayarı içindir. Örneğin, NFS, özel bitiş noktası | --- | --- | |
fsGroupChangePolicy | Sürücünün birimin sahipliğini nasıl değiştirdiğini gösterir. Pod securityContext.fsGroupChangePolicy yoksayılır. |
OnRootMismatch (varsayılan), Always , None |
Hayır | OnRootMismatch |
subnetName | Alt ağ adı | Aracı düğümünün mevcut alt ağ adı. | Hayır | Sürücü boşsa Azure bulut yapılandırma dosyasındaki subnetName değerini kullanır. |
vnetName | Sanal ağın adı | Mevcut sanal ağ adı. | Hayır | Sürücü boşsa Azure bulut yapılandırma dosyasındaki vnetName değerini kullanır. |
vnetResourceGroup | Sanal ağın tanımlandığı sanal ağ kaynak grubunu belirtin. | Mevcut kaynak grubu adı. | Hayır | Sürücü boşsa Azure bulut yapılandırma dosyasındaki vnetResourceGroup değerini kullanır. |
Depolama sınıfı oluşturma
Depolama sınıfları, Azure dosya paylaşımının nasıl oluşturulacağını tanımlar. Azure Dosyalar dosya paylaşımını tutmak üzere depolama sınıfıyla kullanılmak üzere düğüm kaynak grubunda otomatik olarak bir depolama hesabı oluşturulur. için skuName
aşağıdaki Azure depolama yedekliliği SKU'larını seçin:
Standard_LRS
: Standart yerel olarak yedekli depolama (LRS)Standard_GRS
: Standart coğrafi olarak yedekli depolama (GRS)Standard_ZRS
: Standart alanlar arası yedekli depolama (ZRS)Standard_RAGRS
: Standart okuma erişimli coğrafi olarak yedekli depolama (RA-GRS)Premium_LRS
: Premium yerel olarak yedekli depolama (LRS)Premium_ZRS
: Premium alanlar arası yedekli depolama (ZRS)
Not
En düşük premium dosya paylaşımı 100 GB'tır.
Azure Dosyalar için Kubernetes depolama sınıfları hakkında daha fazla bilgi için bkz. Kubernetes Depolama Sınıfları.
Adlı
azure-file-sc.yaml
bir dosya oluşturun ve aşağıdaki örnek bildirimde kopyalayın. hakkındamountOptions
daha fazla bilgi için Bağlama seçenekleri bölümüne bakın.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
komutunu kullanarak depolama sınıfını
kubectl apply
oluşturun.kubectl apply -f azure-file-sc.yaml
Kalıcı birim talebi oluşturma
Kalıcı birim talebi (PVC), bir Azure dosya paylaşımını dinamik olarak sağlamak için depolama sınıfı nesnesini kullanır. ReadWriteMany erişimiyle 100 GB boyutunda kalıcı bir birim talebi oluşturmak için aşağıdaki YAML'yi kullanabilirsiniz. Erişim modları hakkında daha fazla bilgi için bkz . Kubernetes kalıcı birimi.
adlı
azure-file-pvc.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın. öğesininstorageClassName
önceki adımda oluşturduğunuz depolama sınıfıyla eşleştiğinden emin olun.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-azurefile spec: accessModes: - ReadWriteMany storageClassName: my-azurefile resources: requests: storage: 100Gi
Not
Depolama sınıfınız için SKU kullanıyorsanız
Premium_LRS
için en düşük değerstorage
olmalıdır100Gi
.komutunu kullanarak
kubectl apply
kalıcı birim talebi oluşturun.kubectl apply -f azure-file-pvc.yaml
Tamamlandıktan sonra dosya paylaşımı oluşturulur. Bağlantı bilgilerini ve kimlik bilgilerini içeren bir Kubernetes gizli dizisi de oluşturulur. PVC'nin
kubectl get
durumunu görüntülemek için komutunu kullanabilirsiniz:kubectl get pvc my-azurefile
Komutun çıkışı aşağıdaki örneğe benzer:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-azurefile Bound pvc-8436e62e-a0d9-11e5-8521-5a8664dc0477 100Gi RWX my-azurefile 5m
Kalıcı birimi kullanma
Aşağıdaki YAML, /mnt/azure yolundaki Azure Dosyalar dosya paylaşımını bağlamak için my-azurefile kalıcı birim talebi kullanan bir pod oluşturur. Windows Server kapsayıcıları için, 'D:' gibi Windows yol kuralını kullanarak bir mountPath
belirtin.
adlı
azure-pvc-files.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın. ÖğesininclaimName
önceki adımda oluşturduğunuz PVC ile eşleştiğinden emin olun.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
komutunu kullanarak pod oluşturun
kubectl apply
.kubectl apply -f azure-pvc-files.yaml
Artık Azure Dosyalar dosya paylaşımınızın /mnt/azure dizinine bağlı olduğu çalışan bir podunuz var. Bu yapılandırma, komutunu kullanarak
kubectl describe
podunuzu incelerken görülebilir. Aşağıdaki daraltılmış örnek çıktı, kapsayıcıya bağlanan birimi gösterir.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 [...]
Bağlama seçenekleri
ve için varsayılan değer, Kubernetes sürüm 1.13.0 ve üzeri için 0777'dir.fileMode
dirMode
Kalıcı birimi bir depolama sınıfıyla dinamik olarak oluşturuyorsanız, depolama sınıfı nesnesinde bağlama seçeneklerini belirtebilirsiniz. Daha fazla bilgi için bkz . Bağlama seçenekleri. Aşağıdaki örnek 0777'yi ayarlar:
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
Azure etiketlerini kullanma
Azure etiketlerini kullanma hakkında daha fazla bilgi için bkz . Azure Kubernetes Service'te (AKS) Azure etiketlerini kullanma.
Birimi statik olarak sağlama
Bu bölüm, bir iş yüküyle kullanmak üzere mevcut bir Azure Dosyalar paylaşımının ayrıntılarını içeren bir veya daha fazla kalıcı birim oluşturmak isteyen küme yöneticileri için rehberlik sağlar.
PersistentVolume için statik sağlama parametreleri
Aşağıdaki tablo, PersistentVolume tanımlamak için kullanabileceğiniz parametreleri içerir.
Veri Akışı Adı | Anlamı | Kullanılabilir Değer | Zorunlu | Default value |
---|---|---|---|---|
volumeAttributes.resourceGroup | Bir Azure kaynak grubu adı belirtin. | myResourceGroup | Hayır | Sürücü boşsa geçerli kümeyle aynı kaynak grubu adını kullanır. |
volumeAttributes.storageAccount | Mevcut bir Azure depolama hesabı adı belirtin. | storageAccountName | Yes | |
volumeAttributes.shareName | Bir Azure dosya paylaşımı adı belirtin. | fileShareName | Yes | |
volumeAttributes.folderName | Azure dosya paylaşımında bir klasör adı belirtin. | folderName | Hayır | Dosya paylaşımında klasör adı yoksa bağlama başarısız olur. |
volumeAttributes.protocol | Dosya paylaşımı protokollerini belirtin. | smb , nfs |
Hayır | smb |
volumeAttributes.server | Azure depolama hesabı sunucu adresini belirtme | Var olan sunucu adresi, örneğin accountname.privatelink.file.core.windows.net . |
Hayır | Sürücü boşsa varsayılan accountname.file.core.windows.net veya diğer bağımsız bulut hesabı adresini kullanır. |
--- | Aşağıdaki parametreler yalnızca SMB protokolü içindir | --- | --- | --- |
volumeAttributes.secretName | Depolama hesabı adını ve anahtarını depolayan bir gizli dizi adı belirtin. | Hayır | ||
volumeAttributes.secretNamespace | Gizli bir ad alanı belirtin. | default ,kube-system vb. |
Hayır | PVC ad alanı (csi.storage.k8s.io/pvc/namespace ) |
nodeStageSecretRef.name | Depolama hesabı adını ve anahtarını depolayan bir gizli dizi adı belirtin. | Var olan gizli dizi adı. | Hayır | Sürücü boşsa, hesap anahtarını almak için kubelet kimliğini kullanır. |
nodeStageSecretRef.namespace | Gizli bir ad alanı belirtin. | Kubernetes ad alanı | Hayır | |
--- | Aşağıdaki parametreler yalnızca NFS protokolü içindir | --- | --- | --- |
volumeAttributes.fsGroupChangePolicy | Sürücünün birimin sahipliğini nasıl değiştirdiğini gösterir. Pod securityContext.fsGroupChangePolicy yoksayılır. |
OnRootMismatch (varsayılan), Always , None |
Hayır | OnRootMismatch |
volumeAttributes.mountPermissions | Bağlı klasör izinlerini belirtin. Varsayılan değer: 0777 |
Hayır |
Azure dosya paylaşımı oluşturma
Azure Dosyalar dosya paylaşımını Kubernetes birimi olarak kullanabilmeniz için önce bir Azure Depolama hesabı ve dosya paylaşımı oluşturmanız gerekir.
parametresiyle
--query nodeResourceGroup
komutunu kullanarakaz aks show
kaynak grubu adını alın.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
Komutun çıkışı aşağıdaki örneğe benzer:
MC_myResourceGroup_myAKSCluster_eastus
parametresiyle
az storage account create
--sku
komutunu kullanarak bir depolama hesabı oluşturun. Aşağıdaki komut, SKU kullanarakStandard_LRS
bir depolama hesabı oluşturur. Aşağıdaki yer tutucuları değiştirdiğinden emin olun:myAKSStorageAccount
depolama hesabının adıylanodeResourceGroupName
aks kümesi düğümlerinin barındırılıyor olduğu kaynak grubunun adıylalocation
içinde kaynağın oluşturulacağı bölgenin adıyla birlikte. AKS küme düğümleri ile aynı bölge olmalıdır.
az storage account create -n myAKSStorageAccount -g nodeResourceGroupName -l location --sku Standard_LRS
Dosya paylaşımını oluşturmak için kullandığınız aşağıdaki komutu kullanarak bağlantı dizesi bir ortam değişkeni olarak dışarı aktarın.
export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string -n storageAccountName -g resourceGroupName -o tsv)
komutunu kullanarak dosya paylaşımını
az storage share create
oluşturun. değerini paylaşım adınız ile değiştirdiğindenshareName
emin olun.az storage share create -n shareName --connection-string $AZURE_STORAGE_CONNECTION_STRING
Aşağıdaki komutu kullanarak depolama hesabı anahtarını ortam değişkeni olarak dışarı aktarın.
STORAGE_KEY=$(az storage account keys list --resource-group nodeResourceGroupName --account-name myAKSStorageAccount --query "[0].value" -o tsv)
Aşağıdaki komutu kullanarak depolama hesabı adını ve anahtarını yankılar. Kubernetes birimini oluştururken bu değerlere ihtiyacınız olduğu için bu bilgileri kopyalayın.
echo Storage account key: $STORAGE_KEY
Kubernetes gizli dizisi oluşturma
Kubernetes'in önceki adımda oluşturulan dosya paylaşımına erişmek için kimlik bilgilerine ihtiyacı vardır. Bu kimlik bilgileri, Kubernetes podunu oluşturduğunuzda başvurulan bir Kubernetes gizli dizisinde depolanır.
komutunu kullanarak gizli diziyi
kubectl create secret
oluşturun. Aşağıdaki örnek azure-secret adlı bir gizli dizi oluşturur ve önceki adımdaki azurestorageaccountname ve azurestorageaccountkey değerlerini doldurur. Mevcut bir Azure depolama hesabını kullanmak için hesap adını ve anahtarını sağlayın.kubectl create secret generic azure-secret --from-literal=azurestorageaccountname=myAKSStorageAccount --from-literal=azurestorageaccountkey=$STORAGE_KEY
Dosya paylaşımını kalıcı birim olarak bağlama
adlı
azurefiles-pv.yaml
yeni bir dosya oluşturun ve aşağıdaki içeriklere kopyalayın. altındacsi
, ,volumeHandle
veshareName
güncelleştirinresourceGroup
. Bağlama seçenekleri için ve için varsayılan değer 0777'dir.fileMode
dirMode
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
komutunu kullanarak
kubectl create
kalıcı birimi oluşturun.kubectl create -f azurefiles-pv.yaml
azurefiles-mount-options-pvc.yaml adlı yeni bir dosya oluşturun ve aşağıdaki içeriği kopyalayın.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azurefile spec: accessModes: - ReadWriteMany storageClassName: azurefile-csi volumeName: azurefile resources: requests: storage: 5Gi
komutunu kullanarak PersistentVolumeClaim'i
kubectl apply
oluşturun.kubectl apply -f azurefiles-mount-options-pvc.yaml
komutunu kullanarak PersistentVolumeClaim'inizin oluşturulduğunu ve PersistentVolume'a
kubectl get
bağlı olduğunu doğrulayın.kubectl get pvc azurefile
Komutun çıkışı aşağıdaki örneğe benzer:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE azurefile Bound azurefile 5Gi RWX azurefile 5s
Kapsayıcı belirtiminizi, PersistentVolumeClaim'inize ve YAML dosyasındaki podunuza başvuracak şekilde güncelleştirin. Örneğin:
... volumes: - name: azure persistentVolumeClaim: claimName: azurefile
Pod belirtimi yerinde güncelleştirilemez, bu nedenle komutunu kullanarak podu
kubectl delete
silin ve komutunu kullanarakkubectl apply
yeniden oluşturun.kubectl delete pod mypod kubectl apply -f azure-files-pod.yaml
Dosya paylaşımını satır içi birim olarak bağlama
Not
Performans sorununu önlemek için, aynı dosya paylaşımına çok sayıda pod erişirken satır içi birim yerine kalıcı birim kullanmanızı öneririz. Satır içi birim yalnızca pod ile aynı ad alanında yer alan gizli dizilere erişebilir. Farklı bir gizli ad alanı belirtmek için kalıcı bir birim kullanın.
Azure Dosyalar dosya paylaşımını podunuza bağlamak için kapsayıcı belirtiminde birimi yapılandırırsınız.
- adlı
azure-files-pod.yaml
yeni bir dosya oluşturun ve aşağıdaki içeriklere kopyalayın. Dosya paylaşımının veya gizli dizi adının adını değiştirdiyseniz vesecretName
'yi güncelleştirinshareName
. Dosya paylaşımının pod'amountPath
bağlandığı yol olan öğesini de güncelleştirebilirsiniz. Windows Server kapsayıcıları için, 'D:' gibi Windows yol kuralını kullanarak birmountPath
belirtin.
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
komutunu kullanarak pod oluşturun
kubectl apply
.kubectl apply -f azure-files-pod.yaml
Artık /mnt/azure konumunda bağlı Azure Dosyalar dosya paylaşımına sahip çalışan bir pod'nuz var. komutunu kullanarak paylaşımın başarıyla bağlandığını
kubectl describe
doğrulayabilirsiniz.kubectl describe pod mypod
Sonraki adımlar
Azure Dosyalar CSI sürücü parametreleri için bkz. CSI sürücü parametreleri.
İlişkili en iyi yöntemler için bkz . AKS'de depolama ve yedeklemeler için en iyi yöntemler.
Azure Kubernetes Service