Megosztás a következőn keresztül:


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

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.

  1. 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
    
  2. 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
    
  3. Az alkalmazás típusának regisztrálása

    Register-ServiceFabricApplicationType -ApplicationPathInImageStore AzureFilesVolumePlugin
    
    sfctl application provision --application-type-build-path [ApplicationPackagePath]
    
  4. 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