Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln skapar du en StorageClass för Azure Red Hat OpenShift 4 som dynamiskt etablerar ReadWriteMany-lagring (RWX) med hjälp av Azure Files. Du lär dig att:
- Konfigurera förutsättningarna och installera nödvändiga verktyg
- Skapa en Azure Red Hat OpenShift 4 StorageClass med Azure File Provisioner
Om du väljer att installera och använda CLI lokalt kräver den här självstudien att du kör Azure CLI version 2.6.0 eller senare. Kör kommandot az --version för att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI.
Innan du börjar
Distribuera ett Azure Red Hat OpenShift 4-kluster till din prenumeration i Skapa ett Azure Red Hat OpenShift 4-kluster.
Konfigurera Azure Storage-konto
Det här steget skapar en resursgrupp utanför Azure Red Hat OpenShift-klustrets resursgrupp. Den här resursgruppen innehåller Azure Files-aktier som skapade Azure Red Hat OpenShifts dynamiska tillhandahållare.
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
Ange behörigheter
Ange behörigheter för resursgrupper
Tjänstens principal kräver listKeys behörighet på den nya Azure-lagringskontots resursgrupp. Tilldela rollen Deltagare.
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
Ange klusterbehörigheter
OpenShift-kontot för beständiga volymbindningstjänst kräver att du kan läsa hemligheter. Skapa och tilldela en OpenShift-klusterroll.
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
Skapa StorageClass med Azure Files Provisioner
Det här steget skapar en StorageClass med en Azure Files-etablerare. I StorageClass-manifestet krävs information om lagringskontot så att klustret vet att det ska titta på ett lagringskonto utanför den aktuella resursgruppen.
Under lagringsetableringen skapas en hemlighet med namnet secretName för autentiseringsuppgifterna för montering. I en miljö med flera användare är rekommendationen att uttryckligen ange värdet för secretNamespace, annars kan autentiseringsuppgifterna för lagringskontot bli åtkomliga för andra användare.
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
Monteringsalternativ för Azure Files är vanligtvis beroende av den arbetsbelastning som du distribuerar och kraven för programmet. Specifikt för Azure-filer finns det andra parametrar som du bör överväga att använda.
Obligatoriska parametrar:
- 
              mfsymlinksför att mappa symlänkar till ett formulär som klienten kan använda
- 
              nopermför att inaktivera behörighetskontroller på klientsidan
Rekommenderade parametrar:
- 
              nossharesockför att inaktivera återanvändning av socketar om klienten redan är ansluten via en befintlig monteringspunkt
- 
              actimeo=30(eller högre) för att öka tiden som CIFS-klienten cachelagrar fil- och katalogattribut
- 
              nobrlför att inaktivera sändning av byteintervalllåsbegäranden till servern och för program som har problem med posixlås
Ändra standardlagringsklassen (valfritt)
Standardlagringsklassen på kallas managed-premium och använder azure-disk provisioner. Ändra den här inställningen genom att utfärda korrigeringskommandon mot 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"}}}'
Verifiera Azure File StorageClass (valfritt)
Skapa ett nytt program och tilldela lagring till det.
Anmärkning
Om du vill använda mallen httpd-example måste du distribuera klustret med pull-hemligheten aktiverad. Mer information finns i Hämta en Red Hat-pullhemlighet.
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
Filen test.txt visas via Storage Explorer i Azure-portalen.
Nästa steg
I den här artikeln har du skapat dynamisk beständig lagring med hjälp av Microsoft Azure Files och Azure Red Hat OpenShift 4. Du har lärt dig att:
- Skapa ett lagringskonto
- Konfigurera en StorageClass på ett Azure Red Hat OpenShift 4-kluster med hjälp av Azure Files-etableringen
Gå vidare till nästa artikel för att lära dig mer om resurser som stöds av Azure Red Hat OpenShift 4.