Az Azure Blob Storage Container Storage Interface (CSI) illesztőprogram használata
Az Azure Blob Storage Container Storage Interface (CSI) illesztő az Azure Kubernetes Service (AKS) által az Azure Blob Storage életciklusának kezeléséhez használt CSI specifikációnak megfelelő illesztőprogram. A CSI egy szabvány, amely tetszőleges blokk- és fájltároló rendszereket tár fel a Kubernetes tárolóalapú számítási feladatai számára.
A CSI alkalmazásával és használatával az AKS mostantól képes beépülő modulok írására, üzembe helyezésére és iterálására a Kubernetes új vagy meglévő tárolórendszereinek elérhetővé tételéhez. A CSI-illesztőprogramok használata az AKS-ben elkerüli, hogy megérintse az alapvető Kubernetes-kódot, és várja meg a kiadási ciklusokat.
Amikor az Azure Blob Storage-t fájlrendszerként csatlakoztatja egy tárolóhoz vagy podhoz, az lehetővé teszi a Blob Storage használatát számos olyan alkalmazással, amelyek nagy mennyiségű strukturálatlan adatot dolgoznak fel. Példa:
- Naplófájladatok
- Képek, dokumentumok és video- vagy hangstreamelés
- Vészhelyreállítási adatok
Az objektumtároló adatai a BlobFuse vagy a Network File System (NFS) 3.0 protokoll használatával érhetők el. Az Azure Blob Storage CSI-illesztőprogram bevezetése előtt az egyetlen lehetőség az volt, hogy manuálisan telepítsen egy nem támogatott illesztőprogramot, hogy hozzáférjen a Blob Storage-hoz az AKS-en futó alkalmazásból. Ha az Azure Blob Storage CSI-illesztőprogram engedélyezve van az AKS-ben, két beépített tárolási osztály létezik: az azureblob-fuse-premium és az azureblob-nfs-premium.
A CSI-illesztőprogramok támogatásával rendelkező AKS-fürt létrehozásához tekintse meg az AKS CSI-illesztőprogramjait. Ha többet szeretne megtudni az egyes Azure-tártípusok NFS protokollal való hozzáférésének különbségeiről, olvassa el az Azure Files, a Blob Storage és az Azure NetApp Files és az NFS közötti hozzáférés összehasonlítása című témakört.
Az Azure Blob Storage CSI illesztőprogram-funkciói
Az Azure Blob Storage CSI-illesztőprogramja a következő funkciókat támogatja:
- BlobFuse és Hálózati fájlrendszer (NFS) 3.0-s verziójú protokoll
Mielőtt elkezdené
Győződjön meg arról, hogy telepítve és konfigurálva van az Azure CLI 2.42-es vagy újabb verziója. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. Ha telepítette az Azure CLI-bővítménytaks-preview
, a hívássalaz extension update --name aks-preview
frissítse a bővítményt a legújabb verzióra.Ha korábban telepítette a CSI Blob Storage nyílt forráskódú illesztőt, végezze el a hivatkozás lépéseit az Azure Blob Storage fürtről való eléréséhez.
Feljegyzés
Ha a blobfuse-proxy nincs engedélyezve a nyílt forráskód illesztőprogram telepítése során, a nyílt forráskód illesztőprogram eltávolítása megzavarja a meglévő blobfuse-csatlakoztatásokat. Az NFS-csatlakoztatások azonban változatlanok maradnak.
CSI-illesztőprogram engedélyezése új vagy meglévő AKS-fürtön
Az Azure CLI használatával engedélyezheti a Blob Storage CSI-illesztőprogramot egy új vagy meglévő AKS-fürtön, mielőtt konfigurálhat egy állandó kötetet a fürt podjai számára.
Ha engedélyezni szeretné az illesztőprogramot egy új fürtön, adja meg a --enable-blob-driver
paramétert a parancshoz az az aks create
alábbi példában látható módon:
az aks create \
--enable-blob-driver \
--name myAKSCluster \
--resource-group myResourceGroup \
--generate-ssh-keys
Az illesztőprogram meglévő fürtön való engedélyezéséhez adja meg a --enable-blob-driver
paramétert a az aks update
következő példában látható paranccsal:
az aks update --enable-blob-driver --name myAKSCluster --resource-group myResourceGroup
A rendszer kéri, hogy győződjön meg arról, hogy nincs telepítve nyílt forráskódú Blob CSI-illesztőprogram. A megerősítés után a művelet végrehajtása több percet is igénybe vehet. Ha elkészült, a kimenetben látnia kell az illesztőprogram fürtön való engedélyezésének állapotát. Az alábbi példa az előző parancs eredményeit jelző szakaszra hasonlít:
"storageProfile": {
"blobCsiDriver": {
"enabled": true
},
CSI-illesztőprogram letiltása meglévő AKS-fürtön
Az Azure CLI használatával letilthatja a Blob Storage CSI-illesztőprogramot egy meglévő AKS-fürtön, miután eltávolította az állandó kötetet a fürtből.
Ha le szeretné tiltani az illesztőprogramot egy meglévő fürtön, adja meg a --disable-blob-driver
paramétert a parancshoz az az aks update
alábbi példában látható módon:
az aks update --disable-blob-driver --name myAKSCluster --resource-group myResourceGroup
Állandó kötet használata az Azure Blob Storage használatával
Az állandó kötet (PV) egy tárterületet jelöl, amely a Kubernetes-podokkal való használatra van kiépítve. A PV-t egy vagy több pod is használhatja, és dinamikusan vagy statikusan kiépítheti. Ha több podnak egyszerre kell hozzáférnie ugyanahhoz a tárkötethez, az Azure Blob Storage használatával csatlakozhat a hálózati fájlrendszer (NFS) vagy a blobfüzérek használatával. Ez a cikk bemutatja, hogyan hozhat létre dinamikusan egy Azure Blob Storage-tárolót egy AKS-fürt több podja számára.
A Kubernetes-kötetekkel kapcsolatos további információkért tekintse meg az AKS-alkalmazások tárolási lehetőségeit.
Azure Blob Storage-beli virtuális gépek dinamikus létrehozása a beépített tárolási osztályok használatával
A tárolóosztály az Azure Blob Storage-tároló létrehozásának módját határozza meg. A rendszer automatikusan létrehoz egy tárfiókot a csomópont erőforráscsoportjában az Azure Blob Storage-tároló tárolására szolgáló tárosztály használatával. Válasszon az alábbi Azure Storage-redundancia termékváltozatok közül az skuName-hoz:
- Standard_LRS: Standard helyileg redundáns tárolás
- Premium_LRS: Helyileg redundáns prémium szintű tárolás
- Standard_ZRS: Standard zónaredundáns tárolás
- Premium_ZRS: Prémium zónaredundáns tárolás
- Standard_GRS: Standard georedundáns tárolás
- Standard_RAGRS: Szabványos olvasási hozzáférésű georedundáns tárolás
Ha tárolóCSI-illesztőprogramokat használ az AKS-en, két további beépített StorageClasses is található, amelyek az Azure Blob CSI storage-illesztőprogramot használják.
A mindkét tárolási osztályra vonatkozó visszaigénylési szabályzat biztosítja, hogy az alapul szolgáló Azure Blob Storage törlődik a megfelelő PV törlésekor. A tárolóosztályok alapértelmezés szerint bővíthetőnek is konfigurálják a tárolót, mivel a set allowVolumeExpansion
paraméter értéke igaz.
Feljegyzés
Az állandó kötetek zsugorítása nem támogatott.
A tárosztályok megtekintéséhez használja a kubectl get sc parancsot. Az alábbi példa az azureblob-fuse-premium
AKS-fürtön elérhető tárolási osztályokat azureblob-nfs-premium
mutatja be:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
azureblob-fuse-premium blob.csi.azure.com Delete Immediate true 23h
azureblob-nfs-premium blob.csi.azure.com Delete Immediate true 23h
Ezeknek a tárolási osztályoknak a használatához hozzon létre egy PVC-t és a megfelelő podot, amely hivatkozik és használja őket. A PVC használatával automatikusan kiépíteni a tárolót egy tárolási osztály alapján. A PVC az egyik előre létrehozott tárolási osztályt vagy felhasználó által definiált tárolási osztályt használhat egy Azure Blob Storage-tároló létrehozásához a kívánt termékváltozathoz, mérethez és protokollhoz a kommunikációhoz. Poddefiníció létrehozásakor a PVC meg van adva a kívánt tároló kéréséhez.
StatefulSet használata
Ha meg szeretné őrizni a tárterületet a számítási feladathoz, használhat StatefulSetet. Ez megkönnyíti a meglévő kötetek egyezését olyan új podokkal, amelyek lecserélik a sikertelen köteteket. Az alábbi példák bemutatják, hogyan állíthat be StatefulSetet Blob Storage-hoz a Blobfuse vagy az NFS protokoll használatával.
Előfeltételek
- Az AKS-fürt vezérlősíkjának identitása (vagyis az AKS-fürt neve) hozzá lesz adva a közreműködői szerepkörhöz a virtuális hálózat és a hálózati biztonsági csoporton.
Hozzon létre egy fájlt,
azure-blob-nfs-ss.yaml
és másolja a következő YAML-fájlba.apiVersion: apps/v1 kind: StatefulSet metadata: name: statefulset-blob-nfs labels: app: nginx spec: serviceName: statefulset-blob-nfs replicas: 1 template: metadata: labels: app: nginx spec: nodeSelector: "kubernetes.io/os": linux containers: - name: statefulset-blob-nfs image: mcr.microsoft.com/oss/nginx/nginx:1.22 volumeMounts: - name: persistent-storage mountPath: /mnt/blob updateStrategy: type: RollingUpdate selector: matchLabels: app: nginx volumeClaimTemplates: - metadata: name: persistent-storage spec: storageClassName: azureblob-nfs-premium accessModes: ["ReadWriteMany"] resources: requests: storage: 100Gi
Hozza létre a StatefulSetet a kubectl create paranccsal:
kubectl create -f azure-blob-nfs-ss.yaml
Következő lépések
- A statikus vagy dinamikus állandó kötetek beállításáról az Azure Blob Storage-kötetek létrehozása és használata című témakörben olvashat.
- Ha tudni szeretné, hogyan használhatja a CSI-illesztőprogramot az Azure Diskshez, olvassa el az Azure Disks használata CSI-illesztőprogrammal című témakört .
- Ha tudni szeretné, hogyan használhatja a CSI-illesztőprogramot az Azure Fileshoz, olvassa el az Azure Files használata CSI-illesztőprogrammal című témakört .
- A tárolási ajánlott eljárásokról további információt az Azure Kubernetes Service tárolási és biztonsági mentési ajánlott eljárásaiban talál.
Azure Kubernetes Service