Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Dosyaları kullanarak ReadWriteMany (RWX) depolama alanını dinamik olarak sağlayan bir Azure Red Hat OpenShift 4 için StorageClass oluşturacaksınız. Şunları yapmayı öğreneceksiniz:
- Önkoşulları ayarlama ve gerekli araçları yükleme
- Azure Dosya sağlama ile Azure Red Hat OpenShift 4 StorageClass oluşturma
CLI'yi yerel olarak yükleyip kullanmayı seçerseniz, bu öğretici için Azure CLI 2.6.0 veya sonraki bir sürümünü çalıştırmanız gerekir. Sürümü bulmak için komutunu çalıştırın az --version
. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme.
Başlamadan önce
Azure Red Hat OpenShift 4 kümesini aboneliğinize dağıtma bkz. Azure Red Hat OpenShift 4 kümesi oluşturma.
Azure depolama hesabını ayarlama
Bu adım, Azure Red Hat OpenShift (ARO) kümesinin kaynak grubunun dışında bir kaynak grubu oluşturur. Bu kaynak grubu, Azure Red Hat OpenShift'in dinamik sağlayıcısı tarafından oluşturulan Azure Dosyalar paylaşımlarını içerir.
AZURE_FILES_RESOURCE_GROUP=aro_azure_files
LOCATION=eastus
az group create -l $LOCATION -n $AZURE_FILES_RESOURCE_GROUP
AZURE_STORAGE_ACCOUNT_NAME=aroazurefilessa
az storage account create \
--name $AZURE_STORAGE_ACCOUNT_NAME \
--resource-group $AZURE_FILES_RESOURCE_GROUP \
--kind StorageV2 \
--sku Standard_LRS
İzinleri ayarlama
Kaynak grubu izinlerini ayarlama
ARO hizmet sorumlusu, yeni Azure depolama hesabı kaynak grubu üzerinde izin gerektirir listKeys
. Katkı Sağlayan rolünü atayın.
ARO_RESOURCE_GROUP=aro-rg
CLUSTER=cluster
ARO_SERVICE_PRINCIPAL_ID=$(az aro show -g $ARO_RESOURCE_GROUP -n $CLUSTER --query servicePrincipalProfile.clientId -o tsv)
az role assignment create --role Contributor --scope /subscriptions/mySubscriptionID/resourceGroups/$AZURE_FILES_RESOURCE_GROUP --assignee $ARO_SERVICE_PRINCIPAL_ID
ARO küme izinlerini ayarlama
OpenShift kalıcı birim bağlayıcı hizmeti hesabı gizli dizileri okuyabilmeyi gerektirir. OpenShift kümesi rolü oluşturun ve atayın.
ARO_API_SERVER=$(az aro list --query "[?contains(name,'$CLUSTER')].[apiserverProfile.url]" -o tsv)
oc login -u kubeadmin -p $(az aro list-credentials -g $ARO_RESOURCE_GROUP -n $CLUSTER --query=kubeadminPassword -o tsv) $ARO_API_SERVER
oc create clusterrole azure-secret-reader \
--verb=create,get \
--resource=secrets
oc adm policy add-cluster-role-to-user azure-secret-reader system:serviceaccount:kube-system:persistent-volume-binder
Azure Dosyalar sağlama ile StorageClass oluşturma
Bu adım, Azure Dosyalar sağlama ile bir StorageClass oluşturur. StorageClass bildiriminde, ARO kümesinin geçerli kaynak grubunun dışındaki bir depolama hesabına bakması için depolama hesabının ayrıntıları gereklidir.
Depolama sağlama sırasında, bağlama kimlik bilgileri için secretName adlı bir gizli dizi oluşturulur. Çok kiracılı bir bağlamda, secretNamespace
değerinin açıkça ayarlanması önerilir; aksi takdirde depolama hesabı kimlik bilgileri diğer kullanıcılar tarafından okunabilir.
cat << EOF >> azure-storageclass-azure-file.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: azure-file
provisioner: file.csi.azure.com
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=0
- gid=0
- mfsymlinks
- cache=strict
- actimeo=30
- noperm
parameters:
location: $LOCATION
secretNamespace: kube-system
skuName: Standard_LRS
storageAccount: $AZURE_STORAGE_ACCOUNT_NAME
resourceGroup: $AZURE_FILES_RESOURCE_GROUP
reclaimPolicy: Delete
volumeBindingMode: Immediate
EOF
oc create -f azure-storageclass-azure-file.yaml
Azure Dosyalar bağlama seçenekleri genellikle dağıttığınız iş yüküne ve uygulamanın gereksinimlerine bağlıdır. Özellikle Azure dosyaları için kullanmayı göz önünde bulundurmanız gereken başka parametreler de vardır.
Zorunlu parametreler:
-
mfsymlinks
symlink'leri istemcinin kullanabileceği bir forma eşlemek için -
noperm
istemci tarafında izin denetimlerini devre dışı bırakmak için
Önerilen parametreler:
-
nossharesock
istemci zaten var olan bir bağlama noktası üzerinden bağlıysa yuvaları yeniden kullanma özelliğini devre dışı bırakmak için -
actimeo=30
(veya üzeri), CIFS istemcisinin dosya ve dizin özniteliklerini önbelleğe alma süresini artırmak için -
nobrl
sunucuya bayt aralığı kilit istekleri göndermeyi devre dışı bırakmak ve posix kilitleri ile ilgili zorlukları olan uygulamalar için
Varsayılan StorageClass'ı değiştirme (isteğe bağlı)
ARO'da varsayılan StorageClass, managed-premium olarak adlandırılır ve azure-disk sağlamayı kullanır. StorageClass bildirimlerinde yama komutları kullanarak bu ayarı değiştirin.
oc patch storageclass managed-premium -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
oc patch storageclass azure-file -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Azure Dosya Depolama Sınıfını Doğrulama (isteğe bağlı)
Yeni bir uygulama oluşturun ve buna depolama alanı atayın.
Uyarı
Şablonu kullanmak httpd-example
için ARO kümenizi çekme gizli dizisi etkin olarak dağıtmanız gerekir. Daha fazla bilgi için bkz . Red Hat çekme gizli dizisi alma.
oc new-project azfiletest
oc new-app httpd-example
#Wait for the pod to become Ready
curl $(oc get route httpd-example -n azfiletest -o jsonpath={.spec.host})
#If you have set the storage class by default, you can omit the --claim-class parameter
oc set volume dc/httpd-example --add --name=v1 -t pvc --claim-size=1G -m /data --claim-class='azure-file'
#Wait for the new deployment to rollout
export POD=$(oc get pods --field-selector=status.phase==Running -o jsonpath={.items[].metadata.name})
oc exec $POD -- bash -c "echo 'azure file storage' >> /data/test.txt"
oc exec $POD -- bash -c "cat /data/test.txt"
azure file storage
test.txt dosyası Azure portalındaki Depolama Gezgini aracılığıyla görülebilir.
Sonraki Adımlar
Bu makalede, Microsoft Azure Dosyalar ve Azure Red Hat OpenShift 4 kullanarak dinamik kalıcı depolama oluşturdunuz. Nasıl yapılacağını öğrendinsiniz:
- Depolama Hesabı oluşturma
- Azure Dosyalar sağlamayı kullanarak Azure Red Hat OpenShift 4 kümesinde StorageClass yapılandırma
Azure Red Hat OpenShift 4 tarafından desteklenen kaynaklar hakkında bilgi edinmek için sonraki makaleye geçin.