Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sterownik woluminów usługi Azure Files to wtyczka woluminów Docker, która udostępnia woluminy oparte na Azure Files dla kontenerów Docker. Jest ona spakowana jako aplikacja usługi Service Fabric, którą można wdrożyć w klastrze usługi Service Fabric w celu zapewnienia woluminów dla innych aplikacji kontenera usługi Service Fabric w klastrze.
Uwaga
Wersja 6.5.661.9590 wtyczki woluminu usługi Azure Files została wydana w celu zapewnienia ogólnej dostępności.
Wymagania wstępne
Wersja systemu Windows wtyczki woluminu usługi Azure Files działa tylko w systemie Windows Server w wersji 1709, Windows 10 w wersji 1709 lub nowszej.
Wersja systemu Linux wtyczki woluminu usługi Azure Files działa we wszystkich wersjach systemu operacyjnego obsługiwanych przez usługę Service Fabric.
Wtyczka woluminu usługi Azure Files działa tylko w usłudze Service Fabric w wersji 6.2 i nowszej.
Postępuj zgodnie z instrukcjami zawartymi w dokumentacji Azure Files, aby utworzyć udział plików, który aplikacja kontenera Service Fabric będzie używać jako wolumin.
Będziesz potrzebować programu PowerShell z zainstalowanym modułem usługi Service Fabric lub biblioteką SFCTL .
Jeśli używasz kontenerów Hyper-V, następujące fragmenty kodu należy dodać w sekcji ClusterManifest (klaster lokalny), w sekcji fabricSettings w szablonie Azure Resource Manager (klaster platformy Azure) lub w ClusterConfig.json (autonomiczny klaster).
W pliku ClusterManifest należy dodać następujące elementy w sekcji Hosting. W tym przykładzie nazwa woluminu to sfazurefile , a port, na który nasłuchuje w klastrze, to 19100. Zastąp je poprawnymi wartościami dla klastra.
<Section Name="Hosting">
<Parameter Name="VolumePluginPorts" Value="sfazurefile:19100" />
</Section>
W sekcji fabricSettings w szablonie usługi Azure Resource Manager (dla wdrożeń platformy Azure) lub ClusterConfig.json (w przypadku wdrożeń autonomicznych) należy dodać następujący fragment kodu. Ponownie zastąp wartości nazw woluminów i portów własnymi.
"fabricSettings": [
{
"name": "Hosting",
"parameters": [
{
"name": "VolumePluginPorts",
"value": "sfazurefile:19100"
}
]
}
]
Wdrażanie przykładowej aplikacji przy użyciu sterownika woluminu usługi Azure Files w usłudze Service Fabric
Korzystanie z usługi Azure Resource Manager za pośrednictwem dostarczonego skryptu programu PowerShell (zalecane)
Jeśli klaster jest oparty na platformie Azure, zalecamy wdrożenie w nim aplikacji przy użyciu modelu zasobów aplikacji usługi Azure Resource Manager w celu ułatwienia użycia i ułatwienia przechodzenia do modelu utrzymania infrastruktury jako kodu. Takie podejście eliminuje konieczność śledzenia wersji aplikacji dla sterownika woluminu usługi Azure Files. Umożliwia również obsługę oddzielnych szablonów usługi Azure Resource Manager dla każdego obsługiwanego systemu operacyjnego. W skrypcie założono, że wdrażasz najnowszą wersję aplikacji usługi Azure Files i przyjmuje parametry dla typu systemu operacyjnego, identyfikatora subskrypcji klastra i grupy zasobów. Skrypt można pobrać z witryny do pobierania usługi Service Fabric. Należy pamiętać, że automatycznie ustawia się port ListenPort na 19100, na którym wtyczka woluminu usługi Azure Files nasłuchuje żądań pochodzących z demona Docker. Można ją zmienić, dodając parametr o nazwie "listenPort". Upewnij się, że port nie powoduje konfliktu z żadnym innym portem używanym przez klaster lub aplikacje.
Polecenie wdrażania usługi Azure Resource Manager dla systemu Windows:
.\DeployAzureFilesVolumeDriver.ps1 -subscriptionId [subscriptionId] -resourceGroupName [resourceGroupName] -clusterName [clusterName] -windows
Polecenie wdrażania usługi Azure Resource Manager dla systemu Linux:
.\DeployAzureFilesVolumeDriver.ps1 -subscriptionId [subscriptionId] -resourceGroupName [resourceGroupName] -clusterName [clusterName] -linux
Po pomyślnym uruchomieniu skryptu możesz przejść do sekcji konfigurowania aplikacji.
Ręczne wdrażanie klastrów autonomicznych
Aplikację usługi Service Fabric, która udostępnia woluminy dla kontenerów, można pobrać z witryny pobierania usługi Service Fabric. Aplikację można wdrożyć w klastrze za pomocą programu PowerShell, interfejsu wiersza polecenia lub interfejsów API FabricClient.
Za pomocą wiersza polecenia zmień katalog na katalog główny pobranego pakietu aplikacji.
cd .\AzureFilesVolume\
cd ~/AzureFilesVolume
Następnie skopiuj pakiet aplikacji do magazynu obrazów z odpowiednimi wartościami [ApplicationPackagePath] i [ImageStoreConnectionString]:
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
Rejestrowanie typu aplikacji
Register-ServiceFabricApplicationType -ApplicationPathInImageStore AzureFilesVolumePlugin
sfctl application provision --application-type-build-path [ApplicationPackagePath]
Utwórz aplikację, zwracając szczególną uwagę na wartość parametru aplikacji ListenPort . Ta wartość to port, na którym wtyczka woluminu usługi Azure Files nasłuchuje żądań z demona platformy Docker. Upewnij się, że port dostarczony do aplikacji jest zgodny z portami VolumePluginPorts w pliku ClusterManifest i nie powoduje konfliktu z żadnym innym portem używanym przez klaster lub aplikacje.
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"}'
Uwaga
System Windows Server 2016 Datacenter nie obsługuje mapowania instalacji protokołu SMB na kontenery (jest to obsługiwane tylko w systemie Windows Server w wersji 1709). To ograniczenie uniemożliwia mapowanie woluminów sieciowych i sterowniki woluminów usługi Azure Files w wersjach starszych niż 1709.
Wdrażanie aplikacji w lokalnym klastrze deweloperów
Postępuj zgodnie z krokami 1-3 z powyżej .
Domyślna liczba wystąpień usługi dla aplikacji wtyczki woluminu usługi Azure Files wynosi -1, co oznacza, że istnieje wystąpienie usługi wdrożone w każdym węźle w klastrze. Jednak podczas wdrażania aplikacji wtyczki woluminu usługi Azure Files w lokalnym klastrze programistycznym liczba wystąpień usługi powinna być określona jako 1. Można to zrobić za pomocą parametru aplikacji InstanceCount . W związku z tym polecenie tworzenia aplikacji pluginu woluminu Azure Files w lokalnym klastrze programistycznym to:
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"}'
Skonfiguruj swoje aplikacje do korzystania z woluminu
Poniższy fragment kodu pokazuje, jak można określić wolumin oparty na usłudze Azure Files w pliku manifestu aplikacji aplikacji. Konkretnym elementem, który nas interesuje, jest tag Volume.
?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>
Nazwa sterownika wtyczki woluminu usługi Azure Files to sfazurefile. Ta wartość jest ustawiana dla atrybutu Sterownik elementu tagu woluminu w manifeście aplikacji.
W tagu Volume w powyższym fragmencie kodu, wtyczka Azure Files Volume wymaga następujących atrybutów:
- Źródło — jest to nazwa woluminu. Użytkownik może wybrać dowolną nazwę woluminu.
- Miejsce docelowe — ten atrybut to lokalizacja, do którego wolumin jest mapowany w uruchomionym kontenerze. W związku z tym miejsce docelowe nie może być lokalizacją, która już istnieje w kontenerze
Jak pokazano w elementach DriverOption w powyższym fragmencie kodu, wtyczka woluminu usługi Azure Files obsługuje następujące opcje sterowników:
shareName — nazwa udziału plików Azure Files, który zapewnia wolumin dla kontenera.
storageAccountName — nazwa konta usługi Azure Storage, które zawiera udział plików usługi Azure Files.
storageAccountKey — klucz dostępu do konta usługi Azure Storage, używanego do przechowywania udziału plików usługi Azure Files.
storageAccountFQDN — nazwa domeny skojarzona z kontem magazynu. Jeśli nie określono nazwy storageAccountFQDN, nazwa domeny zostanie utworzona przy użyciu sufiksu domyślnego (.file.core.windows.net) z nazwą storageAccountName.
- 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" />
Korzystanie z własnego sterownika woluminu lub rejestrowania
Usługa Service Fabric umożliwia również użycie własnych niestandardowych woluminów lub sterowników rejestrowania . Jeśli sterownik woluminu/rejestrowania platformy Docker nie jest zainstalowany w klastrze, możesz zainstalować go ręcznie przy użyciu protokołów RDP/SSH. Instalację można wykonać za pomocą tych protokołów przy użyciu skryptu uruchamiania zestawu skalowania maszyn wirtualnych lub skryptu SetupEntryPoint.
Przykładowy skrypt do instalacji sterownika woluminu Docker dla Azure jest następujący:
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
W aplikacjach, aby użyć zainstalowanego sterownika woluminu lub rejestrowania, należy określić odpowiednie wartości w elementach Volume oraz LogConfig pod ContainerHostPolicies w manifeście aplikacji.
<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>
Podczas określania wtyczki woluminu usługa Service Fabric automatycznie tworzy wolumin przy użyciu określonych parametrów. Tag Źródło dla elementu Wolumin jest nazwą woluminu, a tag Sterownik określa wtyczkę sterownika wolumenów. Tag Destination to lokalizacja, do której źródło jest mapowane w działającym kontenerze. W związku z tym miejsce docelowe nie może być lokalizacją, która już istnieje w kontenerze. Opcje można określić przy użyciu tagu DriverOption w następujący sposób:
<Volume Source="myvolume1" Destination="c:\testmountlocation4" Driver="azure" IsReadOnly="true">
<DriverOption Name="share" Value="models"/>
</Volume>
Parametry aplikacji są obsługiwane dla woluminów, jak pokazano w poprzednim fragmencie manifestu (spójrz na MyStorageVar
dla przykładowego użycia).
Jeśli określono sterownik dziennika platformy Docker, należy wdrożyć agentów (lub kontenery) w celu obsługi dzienników w klastrze. Tag DriverOption może służyć do określania opcji sterownika dziennika.
Następne kroki
- Aby wyświetlić przykłady kontenerów, w tym sterownik woluminu, odwiedź stronę przykładów kontenera usługi Service Fabric
- Aby wdrożyć kontenery w klastrze usługi Service Fabric, zapoznaj się z artykułem Wdrażanie kontenera w usłudze Service Fabric