Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Container Storage egy felhőalapú kötetkezelési, üzembe helyezési és vezénylési szolgáltatás, amely natív módon készült tárolókhoz. Ez a cikk bemutatja, hogyan konfigurálhatja az Azure Container Storage-t úgy, hogy az Azure Elastic SAN-t használja háttértárként a Kubernetes számítási feladataihoz.
Fontos
Ez a cikk az Azure Container Storage-ra (2.x.x-es verzió) vonatkozik, amely támogatja a helyi NVMe lemezt és az Azure Elastic SAN-t háttértároló-típusokként. A korábbi verziók részleteiért tekintse meg az Azure Container Storage (1.x.x verzió) dokumentációját.
Mi az Az Azure Elastic SAN?
Az Azure Elastic SAN egy felügyelt, megosztott blokktároló szolgáltatás. Központi tárolókapacitást és teljesítményt biztosít, beleértve az IOPS-t és az átviteli sebességet. Ebből a készletből több kötetet hozhat létre, és számos számítási erőforráshoz csatolhatja őket. Az egyes számítási feladatokhoz tartozó különálló lemezek kiépítése és finomhangolása helyett az Elastic SAN egyetlen kapacitáskészletből foglalja le a tárolót, és elosztja a teljesítményt a csatlakoztatott kötetek között. Ez a megközelítés megfelel a számos dinamikus számítási feladattal rendelkező környezeteknek, ahol az igény idővel változik, és az egyik kötet nem használt teljesítménye más köteteket is kiszolgál. A rugalmas SAN-t általában sok kötet vagy csomópont megosztott, méretezhető blokktárolóihoz használják. Emellett támogatja a gyorsabb kötet csatolását és leválasztását az vezényléses számítási feladatokhoz, a csomópontonkénti nagyobb kötetsűrűséghez, valamint a tárolókapacitás és a teljesítmény központosított kiépítéséhez és felügyeletéhez.
A rugalmas san kapacitásának az Azure Container Storage-on keresztüli bővítése jelenleg nem támogatott. Az Elastic SAN-t átméretezheti közvetlenül az Azure Portalról vagy az Azure CLI használatával.
Előfeltételek
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Ez a cikk az Azure CLI 2.83.0-s vagy újabb verzióját igényli. További információ: Az Azure CLI telepítése. Tiltsa le a bővítményeket, például
aks-previewha problémák lépnek fel. Szükség szerint telepítse vagy frissítse a bővítményeket:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(Csak rugalmas SAN)
Szüksége van a Kubernetes parancssori ügyfélre.
kubectlAz Azure Cloud Shell használata esetén már telepítve van. Aaz aks install-cliparancs futtatásával telepítheti helyileg.Ellenőrizze, hogy a célrégió támogatott-e az Azure Container Storage-régiókban.
Tekintse át a telepítési utasításokat , és győződjön meg arról, hogy az Azure Container Storage megfelelően van telepítve.
Ha először használja az Elastic SAN-t az előfizetésben, futtassa ezt az egyszeri regisztrációs parancsot:
az provider register --namespace Microsoft.ElasticSanHa a ZRS újonnan engedélyezve van egy régióban, előfordulhat, hogy regisztrálnia kell egy előfizetésszintű funkciójelzőt, hogy az Azure Container Storage üzembe helyezhesse a SAN-célokat:
az feature register \ --namespace Microsoft.ElasticSan \ --name EnableElasticSANTargetDeployment
Engedélyek beállítása
Ahhoz, hogy az Azure Container Storage rugalmas tárolóhálózatot helyezzen üzembe, hozzá kell rendelnie az Azure Container Storage Operator szerepkört az AKS által felügyelt identitáshoz. Ehhez a lépéshez Azure Container Storage-tulajdonosi vagy Azure Container Storage-közreműködői szerepkörre van szüksége az Azure-előfizetéshez.
Futtassa az alábbi parancsokat az Azure Container Storage Operátor szerepkör hozzárendeléséhez az AKS felügyelt identitásához. Ne felejtse el lecserélni a <resource-group>, <cluster-name> és <Azure-subscription-id> helyén a saját értékeire. A hatókört az erőforráscsoportra is szűkítheti, például /subscriptions/<Azure-subscription-id>/resourceGroups/<resource-group>.
export AKS_MI_OBJECT_ID=$(az aks show --name <cluster-name> --resource-group <resource-group> --query "identityProfile.kubeletidentity.objectId" -o tsv)
az role assignment create --assignee $AKS_MI_OBJECT_ID --role "Azure Container Storage Operator" --scope "/subscriptions/<azure-subscription-id>"
Kiépítési modell kiválasztása
Az Azure Container Storage három módszert támogat az Elastic SAN és az Azure Kubernetes Service (AKS) használatára:
- Dinamikus kiépítés: Az Azure Container Storage igény szerint létrehozza a rugalmas SAN-kötetcsoportokat és -köteteket.
- Előre kiosztott rugalmas san és kötetcsoport: Először az Elastic SAN és a kötetcsoportot hozza létre, majd az Azure Container Storage kiosztja a köteteket a meglévő erőforrásokon belül.
- Statikus kiépítés: Először létre kell hoznia az Elastic SAN-t, a kötetcsoportot és a kötetet, majd statikus állandó kötetként (PV) elérhetővé kell tenni a kötetet a Kubernetes számára.
Az alábbi szakaszok bemutatják, hogyan konfigurálhat tárolási osztályt az egyes modellekhez.
Rugalmas san dinamikus kiépítése
Alapértelmezett tárolási osztály létrehozása
Hozzon létre egy YAML-jegyzékfájlt, például storageclass.yaml, majd használja az alábbi specifikációt.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: azuresan
provisioner: san.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
Az ezzel a tárolási osztálysal kiosztott alapértelmezett rugalmas SAN-kapacitás 1 TiB.
Másik lehetőségként létrehozhatja a tárolási osztályt a Terraform használatával.
A Terraform használatával kezelheti a tárolási osztályt az alábbihoz
main.tfhasonló konfiguráció létrehozásával. Frissítse a szolgáltató verzióját vagy a kubeconfig elérési útját a környezethez szükséges módon.terraform { required_version = ">= 1.5.0" required_providers { kubernetes = { source = "hashicorp/kubernetes" version = "~> 3.0" } } } provider "kubernetes" { config_path = "~/.kube/config" } resource "kubernetes_storage_class_v1" "azuresan" { metadata { name = "azuresan" } storage_provisioner = "san.csi.azure.com" reclaim_policy = "Delete" volume_binding_mode = "Immediate" allow_volume_expansion = true }Inicializálja és alkalmazza a konfigurációt.
terraform init terraform apply
Tárosztály létrehozása egyéni rugalmas SAN-kapacitással
Ha az alapértelmezett 1 TiB-nál eltérő kezdeti kapacitásra van szüksége, állítsa be a paramétert initialStorageTiB a tárolási osztályban.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: azuresan
provisioner: san.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
parameters:
initialStorageTiB: "10"
Előre kiosztott rugalmas SAN- és kötetcsoportok
Előre létrehozhat egy Elastic SAN-t vagy egy Elastic SAN és kötetcsoportot, majd hivatkozhat ezekre az erőforrásokra a tárolási osztályban.
Tárosztály létrehozása előre kiépített rugalmas san-hoz
Ha még nincs telepítve az Azure Container Storage, telepítse.
Azonosítsa az AKS-fürt felügyelt erőforráscsoportját.
kubectl get node -o jsonpath={range .items[*]}{.spec.providerID}{"\n"}{end}A csomópont erőforráscsoportja a szolgáltatóazonosító után
/resourceGroup/jelenik meg.Rugalmas san létrehozása a felügyelt erőforráscsoportban.
az elastic-san create --resource-group <node-resource-group> --name <san-name> --location <node-region> --sku "{name:Premium_LRS,tier:Premium}" --base-size-tib 1 --extended-capacity-size-tib 1Hozzon létre egy tárosztályt, amely az Elastic SAN-ra hivatkozik:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azuresan provisioner: san.csi.azure.com reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true parameters: san: <san-name> # replace with the name of your precreated Elastic SAN
Tárolóosztály létrehozása előre kiosztott rugalmas SAN és kötetcsoporthoz
Hozzon létre egy rugalmas tárolóhálózatot a felügyelt erőforráscsoportban az előre kiosztott rugalmas tárolóhálózat tárolási osztályának létrehozása című témakörben leírt lépésekkel.
Hozzon létre egy kötetcsoportot.
Virtuális hálózat (VNet) adatainak lekérése.
az network vnet list -g <node-resource-group> --query [].name -o tsvAlhálózati információk lekérése.
az network vnet subnet list -g <node-resource-group> --vnet-name <vnet-name> --query [].name -o tsvFrissítse a szolgáltatásvégpontot.
az network vnet subnet update -g <node-resource-group> --vnet-name <vnet-name> --name <subnet-name> --service-endpoints "Microsoft.Storage"Fontos
Ha az AKS-fürt több csomópontkészletet használ különböző alhálózatokban, akkor bele kell foglalni az összes alhálózat-azonosítót a csomópontkészletekhez az Elastic SAN kötetcsoport hálózati ACL-jeibe. A rugalmas SAN-kötetcsoportok csak a kötetcsoport szabályaiban kifejezetten engedélyezett virtuális hálózati alhálózatokról engedélyezik a hozzáférést, és a többi alhálózattól érkező kérések alapértelmezés szerint le vannak tiltva.
Hozza létre a kötetcsoportot.
az elastic-san volume-group create --resource-group <node-resource-group> --elastic-san-name <san-name> --name <volume-group-name> --network-acls '{"virtual-network-rules":[{"id":"<subnet-id>","action":"Allow"}]}'Hozzon létre egy tárolási osztályt, amely az Elastic SAN-ra és a kötetcsoportra hivatkozik:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azuresan provisioner: san.csi.azure.com reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true parameters: san: <san-name> # replace with the name of your precreated Elastic SAN volumegroup: <volume-group-name> # replace with the name of your precreated volume group
A jegyzék alkalmazása és a tárosztály létrehozásának ellenőrzése
A manifeszt alkalmazása:
kubectl apply -f storageclass.yaml
Ellenőrizze, hogy létrejött-e a tárolási osztály:
kubectl get storageclass azuresan
A következőhöz hasonló kimenetnek kell megjelennie:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
azuresan san.csi.azure.com Delete Immediate true 10s
Állandó mennyiségi jogcím létrehozása
Az állandó tárolási igény (PVC) automatikusan rendelkezésre bocsát tárolót egy tárolási osztály alapján. Az alábbi lépéseket követve hozzon létre egy PVC-t az új tárolási osztály használatával.
Hozzon létre egy YAML-jegyzékfájlt, például
acstor-pvc.yaml.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: managedpvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: azuresanAlkalmazza a manifestet a PVC létrehozásához.
kubectl apply -f acstor-pvc.yamlA következőhöz hasonló kimenetnek kell megjelennie:
persistentvolumeclaim/managedpvc created
A PVC állapotát az alábbi parancs futtatásával ellenőrizheti:
kubectl describe pvc managedpvc
A PVC létrehozásakor készen áll a pod általi használatra.
Pod telepítése és állandó kötet hozzácsatolása
Hozzon létre egy podot rugalmas I/O-teszterrel (fio) a teljesítményméréshez és a számítási feladatok szimulációhoz, és adja meg az állandó kötet csatlakoztatási útvonalát. A(z) claimName esetén használja azt a névértéket, amelyet a PVC létrehozásakor használt.
Hozzon létre egy YAML-jegyzékfájlt, például
acstor-pod.yaml.apiVersion: v1 kind: Pod metadata: name: fiopod spec: containers: - name: fio image: mayadata/fio args: ["sleep", "1000000"] volumeMounts: - mountPath: "/volume" name: iscsi-volume volumes: - name: iscsi-volume persistentVolumeClaim: claimName: managedpvcAlkalmazza a manifesztumot a pod üzembe helyezéséhez.
kubectl apply -f acstor-pod.yamlA következő példához hasonló kimenetnek kell megjelennie:
pod/fiopod createdEllenőrizze, hogy a pod fut-e, és hogy a PVC meg van-e kötve:
kubectl describe pod fiopod kubectl describe pvc managedpvcEllenőrizze a fio-tesztelést az aktuális állapot megtekintéséhez:
kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
Most már rendelkezik egy podgal, amely rugalmas SAN-t használ a tároláshoz.
Rugalmas SAN-kötet statikus kiépítése
Előre létrehozhatja a kötetet az Elastic SAN-ban, és statikus PV-ként jelenítheti meg a Kubernetes számára. Az Elastic SAN és a kötetcsoport létrehozásához használja a Tárolóosztály létrehozása előre kiosztott rugalmas SAN és kötetcsoport számára című témakörben leírt lépéseket. Ezeket a lépéseket az Azure Portalon is végrehajthatja az Elastic SAN szolgáltatáspanel használatával.
Alapértelmezett rugalmas SAN-tárolóosztály létrehozása
Az alábbi YAML-jegyzék használatával hozzon létre egy alapértelmezett rugalmas SAN-tárolási osztályt:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: azuresan
provisioner: san.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
Alkalmazza a jegyzékfájlt a tárolási osztály létrehozásához:
kubectl apply -f storageclass.yaml
Ellenőrizze a tárolási osztályt:
kubectl get storageclass azuresan
Rugalmas SAN-kötet létrehozása
az elastic-san volume create -g <node-resource-group> -e <san-name> -v <volume-group-name> -n <volume-name> --size-gib 5
Jegyezze fel a rugalmas SAN-kötet Azure Resource Manager (ARM) azonosítóját. Használja az volumeHandle értékhez az állandó kötet YAML fájlban.
Kérje le az iSCSI minősített nevét (IQN) és targetPortal a rugalmas SAN-kötet értékeit:
az elastic-san volume show --name <volume-name> --resource-group <rg-name> --elastic-san-name <san-name>
Állandó kötet létrehozása
Hozzon létre egy YAML-jegyzékfájlt, például pv_static.yaml.
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-san
annotations:
pv.kubernetes.io/provisioned-by: san.csi.azure.com
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: azuresan
csi:
driver: san.csi.azure.com
volumeHandle: #{rg}#{san}#{vg}#{vol}
volumeAttributes:
# iqn: "<retrieved from pre-provisioned volume>"
# targetPortal: "<retrieved from pre-provisioned volume>"
numsessions: "8"
Alkalmazza a jegyzékfájlt az állandó kötet létrehozásához.
kubectl apply -f pv_static.yaml
Statikus állandó kötet jogcímének létrehozása
Hozzon létre egy YAML-jegyzékfájlt, például pvc_static.yaml.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-san
spec:
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
volumeName: pv-san
storageClassName: azuresan
Alkalmazza a manifestet a PVC létrehozásához.
kubectl apply -f pvc_static.yaml
Statikus kötetet használó pod létrehozása
Hozzon létre egy YAML-jegyzékfájlt, például pod.yaml.
apiVersion: v1
kind: Pod
metadata:
name: pod-san-static
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- image: mcr.microsoft.com/oss/nginx/nginx:1.19.5
name: nginx
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- mountPath: /var/www
name: iscsi-volume
volumes:
- name: iscsi-volume
persistentVolumeClaim:
claimName: pvc-san
Alkalmazza a manifestet a pod létrehozásához.
kubectl apply -f pod.yaml
Lásd még
- Mi az Azure Container Storage?
- Mi az Azure Elastic SAN?
- Az Azure Container Storage telepítése az AKS-sel
- Zónaredundáns tárolás engedélyezése az Azure Container Storage használatával
- Titkosítás konfigurálása Azure Elastic SAN-kötetekhez
- Állandó kötetek átméretezése
- Kötet pillanatképek Azure Elastic SAN kötetekkel
- Gyakori kérdések az Azure Container Storage-ról