Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku vytvoříte třídu StorageClass pro Azure Red Hat OpenShift 4, která dynamicky zřizuje úložiště ReadWriteMany (RWX) pomocí služby Azure Files. Naučíte se:
- Nastavení požadovaných součástí a instalace potřebných nástrojů
- Vytvoření třídy Azure Red Hat OpenShift 4 StorageClass pomocí zřizovacího nástroje Azure File
Pokud se rozhodnete nainstalovat a používat rozhraní příkazového řádku místně, musíte mít Azure CLI verze 2.6.0 nebo novější. Verzi najdete spuštěním az --version příkazu. Pokud potřebujete instalovat nebo upgradovat, podívejte se na Install Azure CLI.
Než začnete
Nasazení clusteru Azure Red Hat OpenShift 4 do vašeho předplatného najdete v tématu Vytvoření clusteru Azure Red Hat OpenShift 4.
Nastavení účtu úložiště Azure
Tento krok vytvoří skupinu prostředků mimo skupinu prostředků clusteru Azure Red Hat OpenShift. Tato skupina prostředků obsahuje sdílené složky Azure Files, které vytvořily dynamický zřizovací nástroj 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
Nastavení oprávnění
Nastavení oprávnění skupiny prostředků
Služební objekt vyžaduje listKeys oprávnění ke skupině prostředků nového účtu úložiště Azure. Přiřaďte roli přispěvatel.
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
Nastavení oprávnění clusteru
Účet služby Trvalé pořadače svazků OpenShift vyžaduje schopnost číst tajné kódy. Vytvořte a přiřaďte roli clusteru 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
Vytvoření třídy StorageClass pomocí zřizovacího nástroje Azure Files
Tento krok vytvoří třídu StorageClass se zřizovacím nástrojem azure Files. V manifestu StorageClass se vyžadují podrobnosti o účtu úložiště, aby cluster věděl, že se podívá na účet úložiště mimo aktuální skupinu prostředků.
Během zřizování úložiště se pro přihlašovací údaje připojení vytvoří tajný klíč pojmenovaný secretName. V kontextu s více tenanty doporučujeme explicitně nastavit hodnotu pro secretNamespace, jinak mohou přihlašovací údaje k účtu úložiště číst jiní uživatelé.
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
Možnosti připojení pro Azure Files budou obecně závislé na úloze, kterou nasazujete, a na požadavcích aplikace. Konkrétně pro soubory Azure existují další parametry, které byste měli zvážit.
Povinné parametry:
-
mfsymlinksmapování symlinků na formulář, který může klient použít -
nopermzakázání kontrol oprávnění na straně klienta
Doporučené parametry:
-
nossharesockzakázání opakovaného připojení soketů, pokud je klient již připojen přes existující přípojný bod -
actimeo=30(nebo vyšší), aby se zvýšil čas, kdy klient CIFS ukládá soubory a atributy adresáře do mezipaměti -
nobrlpro zakázání odesílání žádostí o uzamčení rozsahu bajtů na server a pro aplikace, které mají problémy se zámky POSIX.
Změna výchozí třídy StorageClass (volitelné)
Výchozí třída StorageClass se nazývá managed-premium a používá zřizovací nástroj azure-disk. Toto nastavení můžete změnit tak, že vydáte příkazy oprav pro manifesty 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"}}}'
Ověření třídy Azure File StorageClass (volitelné)
Vytvořte novou aplikaci a přiřaďte k ní úložiště.
Poznámka:
Pokud chcete šablonu httpd-example použít, musíte cluster nasadit s povoleným pull secret. Další informace najdete v tématu Získání tajného kódu pro přijetí změn z Red Hatu.
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
Soubor test.txt se zobrazí prostřednictvím Průzkumníka služby Storage na webu Azure Portal.
Další kroky
V tomto článku jste vytvořili dynamické trvalé úložiště pomocí služby Microsoft Azure Files a Azure Red Hat OpenShift 4. Naučili jste se:
- Vytvoření účtu úložiště
- Konfigurace třídy StorageClass v clusteru Azure Red Hat OpenShift 4 pomocí zřizovacího nástroje Azure Files
V dalším článku se dozvíte o podporovaných prostředcích Azure Red Hat OpenShift 4.