Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule utworzysz klasę StorageClass dla usługi Azure Red Hat OpenShift 4, która dynamicznie aprowizuje magazyn ReadWriteMany (RWX) przy użyciu usługi Azure Files. Uczysz się, jak:
- Konfigurowanie wymagań wstępnych i instalowanie niezbędnych narzędzi
- Tworzenie klasy StorageClass usługi Azure Red Hat OpenShift 4 przy użyciu usługi Azure File Provisioner
Jeśli zdecydujesz się zainstalować interfejs wiersza polecenia i korzystać z niego lokalnie, ten samouczek będzie wymagał interfejsu wiersza polecenia platformy Azure w wersji 2.6.0 lub nowszej. Aby znaleźć wersję, uruchom az --version
polecenie . Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Zanim rozpoczniesz
Wdrażanie klastra usługi Azure Red Hat OpenShift 4 w ramach subskrypcji można znaleźć w temacie Create an Azure Red Hat OpenShift 4 cluster (Tworzenie klastra usługi Azure Red Hat OpenShift 4).
Konfigurowanie konta usługi Azure Storage
W tym kroku zostanie utworzona grupa zasobów spoza grupy zasobów klastra usługi Azure Red Hat OpenShift (ARO). Ta grupa zasobów zawiera udziały usługi Azure Files, które utworzyły dynamiczną aprowizację usługi 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
Ustawianie uprawnień
Ustawianie uprawnień grupy zasobów
Jednostka usługi ARO wymaga listKeys
uprawnień do nowej grupy zasobów konta usługi Azure Storage. Przypisz rolę Współtwórcy.
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
Ustawianie uprawnień klastra usługi ARO
Konto usługi trwałego powiązania woluminów OpenShift wymaga możliwości odczytywania wpisów tajnych. Tworzenie i przypisywanie roli klastra OpenShift.
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
Tworzenie klasy StorageClass przy użyciu usługi Azure Files Provisioner
W tym kroku zostanie utworzona klasa StorageClass z aprowizatorem usługi Azure Files. W manifeście StorageClass wymagane są szczegóły konta magazynu, aby klaster usługi ARO mógł przyjrzeć się kontu magazynu poza bieżącą grupą zasobów.
Podczas aprowizacji magazynu dla instalowania poświadczeń jest tworzony wpis tajny o nazwie secretName. W kontekście wielu dzierżaw zaleca się ustawienie wartości jawnie w secretNamespace
przeciwnym razie poświadczenia konta magazynu mogą być odczytywane przez innych użytkowników.
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
Opcje instalacji usługi Azure Files zwykle zależą od wdrażanego obciążenia i wymagań aplikacji. W szczególności w przypadku usługi Azure Files istnieją inne parametry, których należy rozważyć.
Obowiązkowe parametry:
-
mfsymlinks
aby zamapować symlinki na postać używaną przez klienta -
noperm
aby wyłączyć kontrole uprawnień po stronie klienta
Zalecane parametry:
-
nossharesock
aby wyłączyć ponowne użycie gniazd, jeśli klient jest już połączony za pośrednictwem istniejącego punktu instalacji -
actimeo=30
(lub wyższe) w celu zwiększenia czasu buforowania plików i atrybutów katalogu klienta CIFS -
nobrl
aby wyłączyć wysyłanie żądań blokad zakresu bajtów do serwera i aplikacji, które mają problemy z blokadami posix
Zmienianie domyślnej klasy StorageClass (opcjonalnie)
Domyślna klasa StorageClass w usłudze ARO nosi nazwę managed-premium i używa usługi azure-disk provisioner. Zmień to ustawienie, wydając polecenia poprawek względem manifestów StorageClass.
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"}}}'
Weryfikowanie klasy Azure File StorageClass (opcjonalnie)
Utwórz nową aplikację i przypisz do niej magazyn.
Uwaga / Notatka
Aby użyć szablonu httpd-example
, należy wdrożyć klaster usługi ARO z włączonym wpisem tajnym ściągania. Aby uzyskać więcej informacji, zobacz Get a Red Hat pull secret (Uzyskiwanie wpisu tajnego ściągnięcia red hat).
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
Plik test.txt jest widoczny za pośrednictwem Eksploratora usługi Storage w witrynie Azure Portal.
Dalsze kroki
W tym artykule utworzono dynamiczny magazyn trwały przy użyciu usług Microsoft Azure Files i Azure Red Hat OpenShift 4. Nauczyłeś się, jak:
- Tworzenie konta magazynu
- Konfigurowanie klasy StorageClass w klastrze usługi Azure Red Hat OpenShift 4 przy użyciu usługi Azure Files Provisioner
Przejdź do następnego artykułu, aby dowiedzieć się więcej o obsługiwanych zasobach usługi Azure Red Hat OpenShift 4.