Azure Files-kötetillesztő a Service Fabrichez
Az Azure Files kötetillesztő egy Docker-kötet beépülő modul, amely Azure Files-alapú köteteket biztosít a Docker-tárolókhoz. Service Fabric-alkalmazásként van csomagolva, amely üzembe helyezhető egy Service Fabric-fürtön, hogy köteteket biztosítson a fürt más Service Fabric-tárolóalkalmazásai számára.
Feljegyzés
Az Azure Files kötet beépülő moduljának 6.5.661.9590-es verziója általánosan elérhető.
Előfeltételek
Az Azure Files kötet beépülő modul Windows-verziója csak Windows Server 1709-es, Windows 10 1709-es vagy újabb operációs rendszereken működik.
Az Azure Files kötet beépülő modul Linux-verziója a Service Fabric által támogatott összes operációsrendszer-verzión működik.
Az Azure Files kötet beépülő modul csak a Service Fabric 6.2-es és újabb verzióján működik.
Az Azure Files dokumentációjában található utasításokat követve hozzon létre egy fájlmegosztást a Service Fabric-tárolóalkalmazáshoz kötetként való használatra.
A PowerShellre a Service Fabric modul vagy az SFCTL telepítve lesz.
Hyper-V-tárolók használata esetén az alábbi kódrészleteket az Azure Resource Manager-sablon (Azure-fürt) ClusterManifest (helyi fürt) vagy fabricSettings szakaszában vagy ClusterConfig.json (önálló fürt) kell hozzáadni.
A ClusterManifestben az alábbiakat kell hozzáadni az Üzemeltetés szakaszban. Ebben a példában a kötet neve sfazurefile , a fürtben figyelt port pedig 19100. Cserélje le őket a fürt megfelelő értékeire.
<Section Name="Hosting">
<Parameter Name="VolumePluginPorts" Value="sfazurefile:19100" />
</Section>
Az Azure Resource Manager-sablon fabricSettings szakaszában (Azure-üzemelő példányokhoz) vagy ClusterConfig.json (önálló üzemelő példányokhoz) a következő kódrészletet kell hozzáadni. Cserélje le ismét a kötet nevét és portértékeit a saját értékére.
"fabricSettings": [
{
"name": "Hosting",
"parameters": [
{
"name": "VolumePluginPorts",
"value": "sfazurefile:19100"
}
]
}
]
Mintaalkalmazás üzembe helyezése a Service Fabric Azure Files kötetillesztővel
Az Azure Resource Manager használata a megadott PowerShell-szkripttel (ajánlott)
Ha a fürt az Azure-ban található, javasoljuk, hogy helyezzen üzembe alkalmazásokat az Azure Resource Manager-alkalmazás erőforrásmodelljével a könnyű használat érdekében, és segítsen az infrastruktúra kódként való karbantartásának modellje felé haladni. Ez a megközelítés szükségtelenné teszi az Azure Files-kötetillesztő alkalmazásverziójának nyomon követését. Emellett lehetővé teszi külön Azure Resource Manager-sablonok karbantartását az egyes támogatott operációs rendszerekhez. A szkript feltételezi, hogy az Azure Files-alkalmazás legújabb verzióját telepíti, és az operációs rendszer típusának, a fürt-előfizetés azonosítójának és az erőforráscsoportnak a paramétereit veszi fel. A szkriptet a Service Fabric letöltési webhelyéről töltheti le. Vegye figyelembe, hogy ez automatikusan 19100-ra állítja a ListenPortot, amely az a port, amelyen az Azure Files kötet beépülő modul figyeli a Docker démontól érkező kéréseket. Ezt a "listenPort" nevű paraméter hozzáadásával módosíthatja. Győződjön meg arról, hogy a port nem ütközik a fürt vagy az alkalmazások által használt más portokkal.
Azure Resource Manager üzembe helyezési parancs Windowshoz:
.\DeployAzureFilesVolumeDriver.ps1 -subscriptionId [subscriptionId] -resourceGroupName [resourceGroupName] -clusterName [clusterName] -windows
Azure Resource Manager üzembe helyezési parancs Linuxhoz:
.\DeployAzureFilesVolumeDriver.ps1 -subscriptionId [subscriptionId] -resourceGroupName [resourceGroupName] -clusterName [clusterName] -linux
Miután sikeresen futtatta a szkriptet, továbbléphet az alkalmazás konfigurálására vonatkozó szakaszra.
Manuális üzembe helyezés önálló fürtökhöz
A tárolók köteteit biztosító Service Fabric-alkalmazás letölthető a Service Fabric letöltési webhelyéről. Az alkalmazás PowerShell,CLI vagy FabricClient API-k használatával telepíthető a fürtre.
A parancssor használatával módosítsa a könyvtárat a letöltött alkalmazáscsomag gyökérkönyvtárára.
cd .\AzureFilesVolume\
cd ~/AzureFilesVolume
Ezután másolja az alkalmazáscsomagot a képtárolóba az [ApplicationPackagePath] és az [ImageStoreConnectionString] megfelelő értékeivel:
Copy-ServiceFabricApplicationPackage -ApplicationPackagePath [ApplicationPackagePath] -ImageStoreConnectionString [ImageStoreConnectionString] -ApplicationPackagePathInImageStore AzureFilesVolumePlugin
sfctl cluster select --endpoint https://testcluster.westus.cloudapp.azure.com:19080 --pem test.pem --no-verify sfctl application upload --path [ApplicationPackagePath] --show-progress
Az alkalmazás típusának regisztrálása
Register-ServiceFabricApplicationType -ApplicationPathInImageStore AzureFilesVolumePlugin
sfctl application provision --application-type-build-path [ApplicationPackagePath]
Hozza létre az alkalmazást, különös figyelmet fordítva a ListenPort alkalmazás paraméterértékére. Ez az érték az a port, amelyen az Azure Files kötet beépülő modul figyeli a Docker démontól érkező kéréseket. Győződjön meg arról, hogy az alkalmazásnak biztosított port megegyezik a ClusterManifest VolumePluginPorts portjaival, és nem ütközik a fürt vagy az alkalmazások által használt más portokkal.
New-ServiceFabricApplication -ApplicationName fabric:/AzureFilesVolumePluginApp -ApplicationTypeName AzureFilesVolumePluginType -ApplicationTypeVersion 6.5.661.9590 -ApplicationParameter @{ListenPort='19100'}
sfctl application create --app-name fabric:/AzureFilesVolumePluginApp --app-type AzureFilesVolumePluginType --app-version 6.5.661.9590 --parameter '{"ListenPort":"19100"}'
Feljegyzés
A Windows Server 2016 Datacenter nem támogatja az SMB-csatlakoztatások tárolókhoz való hozzárendelését (ez csak a Windows Server 1709-es verziójában támogatott). Ez a korlátozás megakadályozza a hálózati kötetleképezést és az Azure Files-kötetillesztőket az 1709-nél régebbi verziókon.
Az alkalmazás üzembe helyezése helyi fejlesztési fürtön
Kövesse a fenti 1–3 . lépést.
Az Azure Files-kötet beépülő modulalkalmazás alapértelmezett szolgáltatáspéldány-száma -1, ami azt jelenti, hogy a szolgáltatás egy példánya van üzembe helyezve a fürt minden csomópontjára. Az Azure Files mennyiségi beépülő modulalkalmazás helyi fejlesztői fürtön való üzembe helyezésekor azonban a szolgáltatáspéldányok számát 1-ként kell megadni. Ez az InstanceCount alkalmazásparaméteren keresztül végezhető el. Ezért az Azure Files kötet beépülő modulalkalmazás helyi fejlesztési fürtön való létrehozásához a következő parancsot kell létrehozni:
New-ServiceFabricApplication -ApplicationName fabric:/AzureFilesVolumePluginApp -ApplicationTypeName AzureFilesVolumePluginType -ApplicationTypeVersion 6.5.661.9590 -ApplicationParameter @{ListenPort='19100';InstanceCount='1'}
sfctl application create --app-name fabric:/AzureFilesVolumePluginApp --app-type AzureFilesVolumePluginType --app-version 6.5.661.9590 --parameter '{"ListenPort": "19100","InstanceCount": "1"}'
Alkalmazások konfigurálása a kötet használatára
Az alábbi kódrészlet bemutatja, hogyan adható meg egy Azure Files-alapú kötet az alkalmazás alkalmazásjegyzékfájljában. Az érdeklődés konkrét eleme a Kötetcímke :
?xml version="1.0" encoding="UTF-8"?>
<ApplicationManifest ApplicationTypeName="WinNodeJsApp" ApplicationTypeVersion="1.0" xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
<Description>Calculator Application</Description>
<Parameters>
<Parameter Name="ServiceInstanceCount" DefaultValue="3"></Parameter>
<Parameter Name="MyCpuShares" DefaultValue="3"></Parameter>
<Parameter Name="MyStorageVar" DefaultValue="c:\tmp"></Parameter>
</Parameters>
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="NodeServicePackage" ServiceManifestVersion="1.0"/>
<Policies>
<ContainerHostPolicies CodePackageRef="NodeService.Code" Isolation="hyperv">
<PortBinding ContainerPort="8905" EndpointRef="Endpoint1"/>
<RepositoryCredentials PasswordEncrypted="false" Password="****" AccountName="test"/>
<Volume Source="azfiles" Destination="c:\VolumeTest\Data" Driver="sfazurefile">
<DriverOption Name="shareName" Value="" />
<DriverOption Name="storageAccountName" Value="" />
<DriverOption Name="storageAccountKey" Value="" />
<DriverOption Name="storageAccountFQDN" Value="" />
</Volume>
</ContainerHostPolicies>
</Policies>
</ServiceManifestImport>
<ServiceTemplates>
<StatelessService ServiceTypeName="StatelessNodeService" InstanceCount="5">
<SingletonPartition></SingletonPartition>
</StatelessService>
</ServiceTemplates>
</ApplicationManifest>
Az Azure Files kötet beépülő modul illesztőprogramjának neve sfazurefile. Ez az érték az alkalmazásjegyzék Kötetcímke elemének Illesztőprogram attribútumához van beállítva.
A fenti kódrészlet Kötetcímkéjében az Azure Files kötet beépülő modulja a következő attribútumokat igényli:
- Forrás – Ez a kötet neve. A felhasználó bármilyen nevet választhat a kötetéhez.
- Cél – Ez az attribútum az a hely, ahová a kötet a futó tárolón belül van leképezve. Így a célhely nem lehet olyan hely, amely már létezik a tárolóban
Ahogyan a fenti kódrészlet DriverOption elemeiben látható, az Azure Files kötet beépülő modul a következő illesztőprogram-beállításokat támogatja:
shareName – A tároló kötetét biztosító Azure Files-fájlmegosztás neve.
storageAccountName – Az Azure Files-fájlmegosztást tartalmazó Azure Storage-fiók neve.
storageAccountKey – Az Azure Files-fájlmegosztást tartalmazó Azure Storage-fiók hozzáférési kulcsa.
storageAccountFQDN – A tárfiókhoz társított tartománynév. Ha a storageAccountFQDN nincs megadva, a tartománynév a storageAccountName alapértelmezett utótaggal (.file.core.windows.net) lesz formázva.
- Example1: <DriverOption Name="shareName" Value="myshare1" /> <DriverOption Name="storageAccountName" Value="myaccount1" /> <DriverOption Name="storageAccountKey" Value="mykey1" /> <!-- storageAccountFQDN will be "myaccount1.file.core.windows.net" --> - Example2: <DriverOption Name="shareName" Value="myshare2" /> <DriverOption Name="storageAccountName" Value="myaccount2" /> <DriverOption Name="storageAccountKey" Value="mykey2" /> <DriverOption Name="storageAccountFQDN" Value="myaccount2.file.core.chinacloudapi.cn" />
Saját kötet vagy naplózási illesztőprogram használata
A Service Fabric lehetővé teszi a saját egyéni kötet vagy naplózási illesztőprogramok használatát is. Ha a Docker kötet-/naplózási illesztőprogramja nincs telepítve a fürtön, manuálisan is telepítheti az RDP/SSH protokollok használatával. A telepítést ezekkel a protokollokkal egy virtuálisgép-méretezési csoport indítási szkriptjével vagy egy SetupEntryPoint-szkripttel hajthatja végre.
Az Azure-hoz készült Docker-kötetillesztő telepítéséhez használt szkript például a következő:
docker plugin install --alias azure --grant-all-permissions docker4x/cloudstor:17.09.0-ce-azure1 \
CLOUD_PLATFORM=AZURE \
AZURE_STORAGE_ACCOUNT="[MY-STORAGE-ACCOUNT-NAME]" \
AZURE_STORAGE_ACCOUNT_KEY="[MY-STORAGE-ACCOUNT-KEY]" \
DEBUG=1
Az alkalmazásokban a telepített kötet- vagy naplózási illesztőprogram használatához meg kell adnia a megfelelő értékeket az alkalmazásjegyzék ContainerHostPolicies területén található Kötet és LogConfig elemekben.
<ContainerHostPolicies CodePackageRef="NodeService.Code" Isolation="hyperv">
<PortBinding ContainerPort="8905" EndpointRef="Endpoint1"/>
<RepositoryCredentials PasswordEncrypted="false" Password="****" AccountName="test"/>
<LogConfig Driver="[YOUR_LOG_DRIVER]" >
<DriverOption Name="test" Value="vale"/>
</LogConfig>
<Volume Source="c:\workspace" Destination="c:\testmountlocation1" IsReadOnly="false"></Volume>
<Volume Source="[MyStorageVar]" Destination="c:\testmountlocation2" IsReadOnly="true"> </Volume>
<Volume Source="myvolume1" Destination="c:\testmountlocation2" Driver="[YOUR_VOLUME_DRIVER]" IsReadOnly="true">
<DriverOption Name="[name]" Value="[value]"/>
</Volume>
</ContainerHostPolicies>
Kötet beépülő modul megadásakor a Service Fabric automatikusan létrehozza a kötetet a megadott paraméterekkel. A Kötet elem forráscímkéje a kötet neve, az Illesztőprogram címke pedig a kötetillesztő beépülő modult adja meg. A célcímke az a hely, ahová a forrás a futó tárolón belül van leképezve. Így a célhely nem lehet olyan hely, amely már létezik a tárolóban. A beállítások a DriverOption címkével adhatók meg az alábbiak szerint:
<Volume Source="myvolume1" Destination="c:\testmountlocation4" Driver="azure" IsReadOnly="true">
<DriverOption Name="share" Value="models"/>
</Volume>
Az alkalmazásparaméterek a kötetek esetében támogatottak az előző jegyzékrészletben látható módon (keresse meg MyStorageVar
a példahasználatot).
Ha docker-naplóillesztő van megadva, ügynököket (vagy tárolókat) kell üzembe helyeznie a fürt naplóinak kezeléséhez. A DriverOption címke a naplóillesztő beállításainak megadására használható.
Következő lépések
- A tárolóminták, köztük a kötetillesztő megtekintéséhez látogasson el a Service Fabric-tárolómintákra
- Tárolók Service Fabric-fürtön való üzembe helyezéséhez tekintse meg a Tároló üzembe helyezése a Service Fabricen című cikket