Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel maakt u een StorageClass voor Azure Red Hat OpenShift 4 waarmee readWriteMany-opslag (RWX) dynamisch wordt ingericht met behulp van Azure Files. U leert het volgende:
- De vereisten instellen en de benodigde hulpprogramma's installeren
- Een Azure Red Hat OpenShift 4 StorageClass maken met de Azure File-inrichting
Als u ervoor kiest om CLI lokaal te installeren en gebruiken, moet u Azure CLI versie 2.6.0 of hoger gebruiken voor deze zelfstudie. Voer de az --version opdracht uit om de versie te vinden. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.
Voordat u begint
Implementeer een Azure Red Hat OpenShift 4-cluster in uw abonnement, zie Een Azure Red Hat OpenShift 4-cluster maken.
Azure Storage-account instellen
Met deze stap maakt u een resourcegroep buiten de resourcegroep van het Azure Red Hat OpenShift-cluster. Deze resourcegroep bevat de Azure Files-shares die zijn aangemaakt door de dynamische provisioner van Azure Red Hat OpenShift.
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
Machtigingen instellen
Machtigingen voor resourcegroepen instellen
De service-principal heeft listKeys permissies nodig op de nieuwe resourcegroep van het Azure-opslagaccount. Wijs de rol Bijdrager toe.
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
Clustermachtigingen instellen
Het openShift permanente volumebindingsserviceaccount vereist de mogelijkheid om geheimen te lezen. Een OpenShift-clusterrol maken en toewijzen.
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
StorageClass maken met Azure Files-inrichting
Met deze stap maakt u een StorageClass met een Azure Files-inrichting. Binnen het StorageClass-manifest zijn de details van het opslagaccount vereist, zodat het cluster weet een opslagaccount buiten de huidige resourcegroep te bekijken.
Tijdens het inrichten van de opslag wordt een geheim met de naam secretName gemaakt voor de koppelingsreferenties. In een context met meerdere tenants is het raadzaam om de waarde secretNamespace expliciet in te stellen, anders kunnen de referenties van het opslagaccount worden gelezen door andere gebruikers.
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
Koppelingsopties voor Azure Files zijn over het algemeen afhankelijk van de workload die u implementeert en de vereisten van de toepassing. Specifiek voor Azure-bestanden zijn er andere parameters die u moet gebruiken.
Verplichte parameters:
-
mfsymlinkssymlinks in kaart brengen naar een vorm die de client kan gebruiken -
nopermom machtigingscontroles aan de clientzijde uit te schakelen
Aanbevolen parameters:
-
nossharesockopnieuw gebruiken van sockets uitschakelen als de client al is verbonden via een bestaand koppelpunt -
actimeo=30(of hoger) om de tijd te verhogen dat de CIFS-client bestands- en mapkenmerken in de cache opneemt -
nobrlom het verzenden van bytebereikvergrendelingsaanvragen naar de server uit te schakelen en voor toepassingen die problemen hebben met posix-vergrendelingen
De standaardopslagklasse wijzigen (optioneel)
De standaardopslagklasse op Azure wordt managed-premium genoemd en maakt gebruik van de azure-disk voorziening. Wijzig deze instelling door patchopdrachten uit te geven voor de StorageClass-manifesten.
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 File StorageClass controleren (optioneel)
Maak een nieuwe toepassing en wijs er opslag aan toe.
Opmerking
Als u de httpd-example sjabloon wilt gebruiken, moet u uw cluster implementeren met het pull-geheim ingeschakeld. Zie Een Red Hat-pull-geheim ophalen voor meer informatie.
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
Het test.txt-bestand is zichtbaar via Storage Explorer in Azure Portal.
Volgende stappen
In dit artikel hebt u dynamische permanente opslag gemaakt met Behulp van Microsoft Azure Files en Azure Red Hat OpenShift 4. U hebt geleerd hoe u het volgende kunt doen:
- Een opslagaccount maken
- Een StorageClass configureren op een Azure Red Hat OpenShift 4-cluster met behulp van de Azure Files-inrichting
Ga naar het volgende artikel voor meer informatie over door Azure Red Hat OpenShift 4 ondersteunde resources.