Toepassingslevenscyclus beheren op een beheerd cluster met behulp van Azure Resource Manager

U hebt meerdere opties voor het implementeren van Azure Service Fabric-toepassingen in uw beheerde Service Fabric-cluster. U wordt aangeraden Azure Resource Manager te gebruiken. Als u Resource Manager gebruikt, kunt u toepassingen en services in JSON beschrijven en deze vervolgens implementeren in dezelfde Resource Manager-sjabloon als uw cluster. In tegenstelling tot het gebruik van PowerShell of Azure CLI voor het implementeren en beheren van toepassingen, hoeft u niet te wachten totdat het cluster gereed is als u Resource Manager gebruikt. toepassingsregistratie, inrichting en implementatie kunnen in één stap plaatsvinden. Het gebruik van Resource Manager is de beste manier om de levenscyclus van de toepassing in uw cluster te beheren. Zie Best practices voor meer informatie: Infrastructuur als code.

Het beheren van uw toepassingen als resources in Resource Manager kan u helpen bij het verbeteren van deze gebieden:

  • Audittrail: Resource Manager controleert elke bewerking en houdt een gedetailleerd activiteitenlogboek bij. Een activiteitenlogboek kan u helpen bij het traceren van wijzigingen in de toepassingen en uw cluster.
  • Op rollen gebaseerd toegangsbeheer: u kunt de toegang tot clusters en toepassingen beheren die op het cluster zijn geïmplementeerd met behulp van dezelfde Resource Manager-sjabloon.
  • Beheerefficiëntie: Met Resource Manager beschikt u over één locatie (Azure Portal) voor het beheren van uw cluster- en kritieke toepassingsimplementaties.

In dit document leert u het volgende:

  • Implementeer service fabric-toepassingsresources met behulp van Resource Manager.
  • Upgrade van service fabric-toepassingsresources met behulp van Resource Manager.
  • Verwijder service fabric-toepassingsresources.

Service Fabric-toepassingsresources implementeren

De stappen op hoog niveau voor het implementeren van een toepassing en de bijbehorende services met behulp van het Resource Manager-toepassingsresourcemodel zijn:

  1. Pak de toepassingscode in.
  2. Upload het pakket.
  3. Verwijs naar de locatie van het pakket in een Resource Manager-sjabloon als toepassingsresource.

Bekijk Een toepassing verpakken voor meer informatie.

Vervolgens maakt u een Resource Manager-sjabloon, werkt u het parameterbestand bij met toepassingsgegevens en implementeert u de sjabloon in het beheerde Service Fabric-cluster. Verken voorbeelden.

Een opslagaccount maken

Als u een toepassing wilt implementeren vanuit een Resource Manager-sjabloon, moet u een opslagaccount hebben. Het opslagaccount wordt gebruikt om de installatiekopieën van de toepassing te fasen.

U kunt een bestaand opslagaccount opnieuw gebruiken of u kunt een nieuw opslagaccount maken voor het faseren van uw toepassingen. Als u een bestaand opslagaccount gebruikt, kunt u deze stap overslaan.

Create a storage account

Let op

Anonieme openbare toegang tot blobgegevens in uw opslagaccount vormt een beveiligingsrisico. Wanneer u een opslagaccount maakt, wordt u aangeraden anonieme openbare toegang tot blobgegevens op accountniveau uit te schakelen door de eigenschap AllowBlobPublicAccess in te stellen op false. Zie Anonieme openbare leestoegang tot blobgegevens herstellen (Azure Resource Manager-implementaties) voor meer informatie.

Uw opslagaccount configureren

Nadat het opslagaccount is gemaakt, maakt u een blobcontainer waarin de toepassingen kunnen worden gefaseerd. Ga in Azure Portal naar het Azure Storage-account waar u uw toepassingen wilt opslaan. Selecteer Blobs>Container toevoegen.

U kunt op een van de volgende manieren toegang verlenen tot de container:

  • U kunt een Azure RBAC-rol toewijzen die machtigingen verleent aan de container aan een beveiligingsprincipaal, zodat deze beveiligingsprincipaal toegang heeft tot gegevens in de container via Microsoft Entra-autorisatie. Zie Toegang tot blobs autoriseren met behulp van Microsoft Entra-id voor meer informatie.
  • U kunt de toegang tot de container delegeren met een Shared Access Signature om een client gedurende een beperkte periode en met specifieke machtigingen toegang te verlenen tot blobs in de container. Zie Beperkte toegang verlenen tot Azure Storage-resources met sas (Shared Access Signatures) voor meer informatie.
  • U kunt de accounttoegangssleutels gebruiken om toegang tot blobgegevens te autoriseren. Deze methode is het minst veilig en wordt daarom niet aanbevolen.

De toepassing faseer in uw opslagaccount

Voordat u een toepassing kunt implementeren, moet u de toepassing faseereren in blobopslag. In deze zelfstudie maken we het toepassingspakket handmatig. Houd er rekening mee dat deze stap kan worden geautomatiseerd. Zie Een toepassing verpakken voor meer informatie.

In deze zelfstudie gebruiken we de voorbeeldtoepassing Voting.

  1. Klik in Visual Studio met de rechtermuisknop op het stemproject en selecteer Vervolgens Pakket.

    Package Application

  2. Ga naar de map .\service-fabric-dotnet-quickstart\Voting\pkg\Debug . Zip de inhoud in een bestand met de naam Voting.zip. Het bestand ApplicationManifest.xml moet zich in de hoofdmap van het zip-bestand.

    Zip Application

  3. Wijzig de naam van het bestand om de extensie te wijzigen van .zip in .sfpkg.

  4. Selecteer In Azure Portal in de app-container voor uw opslagaccount de optie Uploaden en upload vervolgens Voting.sfpkg.

    Upload App Package

Nu is de toepassing gefaseerd en kunt u de Resource Manager-sjabloon maken om de toepassing te implementeren.

Het Resource Manager-sjabloon maken

De voorbeeldtoepassing bevat Azure Resource Manager-sjablonen die u kunt gebruiken om de toepassing te implementeren. De namen van sjabloonbestanden zijn UserApp.json en UserApp.Parameters.json.

Notitie

Het bestand UserApp.Parameters.json moet worden bijgewerkt met de naam van uw cluster.

Parameter Omschrijving Voorbeeld Opmerkingen
clusterName De naam van het cluster waarnaar u implementeert sf-cluster123
toepassing De naam van de toepassing Stemmen
version De resource-id, het toepassingstype en de versie van de app. /providers/Microsoft.ServiceFabric/managedClusters/sf-cluster-123/applicationTypes/VotingType/versions/1.0.0 Moet overeenkomen met ApplicationManifest.xml
Servicenaam De naam van de service VotingWeb Moet de indeling ServiceType hebben
serviceTypeName De typenaam van de service VotingWebType Moet overeenkomen met ServiceManifest.xml
appPackageUrl De BLOB Storage-URL van de toepassing https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg De URL van het toepassingspakket in blobopslag (de procedure voor het instellen van de URL wordt verderop in het artikel beschreven)
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applications",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applicationTypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applicationTypes/versions",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applications/services",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
    "location": "[variables('clusterLocation')]"
}

De Service Fabric-toepassing implementeren

Voer de cmdlet New-AzResourceGroupDeployment uit om de toepassing te implementeren in de resourcegroep die uw cluster bevat:

New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose

De Service Fabric-toepassing upgraden met behulp van Resource Manager

Belangrijk

Elke service die wordt geïmplementeerd via een ARM-sjabloon (Azure Resource Manager), moet worden verwijderd uit de sectie DefaultServices van het bijbehorende ApplicationManifest.xml-bestand.

U kunt om een van deze redenen een upgrade uitvoeren van een toepassing die al is geïmplementeerd in een Service Fabric-cluster:

  • Er wordt een nieuwe service toegevoegd aan de toepassing. Er moet een servicedefinitie worden toegevoegd aan service-manifest.xml - en application-manifest.xml-bestanden wanneer een service wordt toegevoegd aan de toepassing. Als u een nieuwe versie van een toepassing wilt weergeven, moet u ook de versie van het toepassingstype wijzigen van 1.0.0 in 1.0.1 in UserApp.Parameters.json:

    "applicationTypeVersion": {
        "value": "1.0.1"
    },
    "serviceName2": {
        "value": "VotingData"
    },
    "serviceTypeName2": {
        "value": "VotingDataType"
    }
    
  • Er wordt een nieuwe versie van een bestaande service toegevoegd aan de toepassing. Voorbeelden hiervan zijn wijzigingen in toepassingscode en updates voor de versie en naam van het app-type. Werk voor deze upgrade UserApp.Parameters.json als volgt bij:

     "applicationTypeVersion": {
        "value": "1.0.1"
    }
    

Service Fabric-toepassingsresources verwijderen

Notitie

Toepassingen mogen niet worden verwijderd via een ARM-sjabloon (Azure Resource Manager), omdat er geen declaratieve manier is om afzonderlijke resources op te ruimen

Een Service Fabric-toepassing verwijderen die is geïmplementeerd met behulp van het toepassingsresourcemodel in Resource Manager:

  1. Gebruik de cmdlet Get-AzResource om de resource-id voor de toepassing op te halen:

    Get-AzResource  -Name <String> | f1
    
  2. Gebruik de cmdlet Remove-AzServiceFabricApplication om de toepassingsbronnen te verwijderen:

    Remove-AzServiceFabricApplication -ResourceId <String> [-Force]
    

Migratie van klassiek naar beheerde clusters

Als u toepassingen migreert van klassiek naar beheerde clusters, moet u controleren of typen juist zijn opgegeven of er fouten optreden.

De volgende items worden specifiek genoemd vanwege de frequentie van het gebruik, maar niet bedoeld om een exclusieve lijst met verschillen te zijn.

  • upgradeReplicaSetCheckTimeout is nu een geheel getal voor beheerd, maar een tekenreeks op klassieke SFRP.

Zie resourcetypen voor beheerde clusters voor een volledige lijst met eigenschappen en typen

Volgende stappen

Meer informatie over de implementatie van beheerde clustertoepassingen: