Gérer les mises à niveau des clusters Service Fabric

Un cluster Azure Service Fabric est une ressource qui vous appartient, mais qui est en partie gérée par Microsoft. Voici la façon de gérer quand et comment Microsoft met à jour votre cluster Azure Service Fabric.

Pour en savoir plus sur les concepts et processus de mise à niveau du cluster, consultez Mise à niveau et mise à jour des clusters Azure Service Fabric.

Définir le mode de mise à niveau

Vous pouvez définir votre cluster de façon à recevoir automatiquement les mises à niveau de Service Fabric dès qu’elles sont publiées par Microsoft, ou vous pouvez choisir manuellement parmi une liste de versions actuellement prises en charge en définissant le mode de mise à niveau de votre cluster. Pour ce faire, vous pouvez utiliser le contrôle Mode de mise à niveau de Fabric dans Portail Azure ou le paramètre upgradeMode dans le modèle de déploiement de votre cluster.

Portail Azure

À l’aide de Portail Azure, vous choisirez des mises à niveau automatiques ou manuelles lors de la création d’un cluster Service Fabric.

Choisissez entre les mises à niveau automatiques ou manuelles lors de la création d’un nouveau cluster dans Portail Azure à partir des options « Avancées ».

Vous pouvez également basculer entre les mises à niveau automatiques ou manuelles à partir de la section Mises à niveau de Fabric d’une ressource de cluster existante.

Sélectionnez des mises à niveau Automatiques ou Manuelles dans la section « Mises à niveau de Fabric » de votre ressource de cluster dans Portail Azure.

Mises à jour manuelles avec Portail Azure

Quand vous sélectionnez l’option de mise à niveau manuelle, il suffit de sélectionner une version dans la liste déroulante des versions disponibles, puis d’enregistrer. À partir de là, la mise à niveau du cluster est immédiatement lancée.

Les stratégies d’intégrité des clusters (combinaison de l’intégrité des nœuds et de l’intégrité de toutes les applications exécutées dans le cluster) sont respectées pendant la mise à niveau. Si les stratégies d’intégrité des clusters ne sont pas respectées, la mise à niveau est annulée.

Une fois que vous avez corrigé les problèmes entraînant la restauration, vous devez initier à nouveau la mise à niveau en suivant la procédure décrite précédemment.

Modèle Resource Manager

Pour modifier le mode de mise à niveau de votre cluster à l’aide d’un modèle Resource Manager, spécifiez Automatic ou Manual pour la propriété upgradeMode de la définition de ressource Microsoft.ServiceFabric/clusters. Si vous choisissez des mises à niveau manuelles, définissez également clusterCodeVersion sur une version de Fabric actuellement prise en charge.

Capture d’écran montrant un modèle, qui est mis en retrait en texte clair pour refléter la structure. Les propriétés « clusterCodeVersion » et « upgradeMode » sont mis en évidence.

Une fois le déploiement du modèle réussi, les modifications apportées au mode de mise à niveau du cluster seront appliquées. Si votre cluster est en mode manuel, la mise à niveau du cluster démarre automatiquement.

Les stratégies d’intégrité des clusters (combinaison de l’intégrité des nœuds et de l’intégrité de toutes les applications exécutées dans le cluster) sont respectées pendant la mise à niveau. Si les stratégies d’intégrité des clusters ne sont pas respectées, la mise à niveau est annulée.

Une fois que vous avez corrigé les problèmes entraînant la restauration, vous devez initier à nouveau la mise à niveau en suivant la procédure décrite précédemment.

Déploiement par vagues pour les mises à niveau automatiques

En mode de mise à niveau automatique, vous avez la possibilité d’activer votre cluster pour le déploiement par vagues. Avec le déploiement par vagues, vous pouvez créer un pipeline pour mettre à niveau vos clusters de test, de préproduction et de production en séquence, séparés par un « temps de cuisson » intégré pour valider les prochaines versions de Service Fabric avant que vos clusters de production ne soient mis à jour.

Activer le déploiement par vagues

Notes

Le déploiement par vagues requiert la version d’API 2020-12-01-preview (ou ultérieure) pour votre ressource Microsoft.ServiceFabric/clusters.

Pour activer le déploiement par vagues pour la mise à niveau automatique, déterminez d’abord la vague à attribuer à votre cluster :

  • Vaque 0 (Wave0) : Les clusters sont mis à jour dès qu’une nouvelle build de Service Fabric est publiée. Destinée aux clusters de test/développement.
  • Vague 1 (Wave1) : Les clusters sont mis à jour une semaine (sept jours) après la publication d’une nouvelle build. Destinée aux clusters de préproduction et intermédiaires.
  • Vague 2 (Wave2) : Les clusters sont mis à jour 2 semaines (14 jours) après la publication d’une nouvelle build. Destinée aux clusters de production.

Ensuite, ajoutez simplement une propriété upgradeWave à votre modèle de ressource de cluster avec l’une des valeurs de vague indiquées ci-dessus. Assurez-vous que la version d’API de votre ressource de cluster est 2020-12-01-preview ou une version ultérieure.

{
    "apiVersion": "2020-12-01-preview",
    "type": "Microsoft.ServiceFabric/clusters",
     ...
        "fabricSettings": [...],
        "managementEndpoint": ...,
        "nodeTypes": [...],
        "provisioningState": ...,
        "reliabilityLevel": ...,
        "upgradeMode": "Automatic",
        "upgradeWave": "Wave1",
       ...

Une fois que vous avez déployé le modèle mis à jour, votre cluster sera inscrit dans la vague spécifiée pour la prochaine période de mise à niveau et après celle-ci.

Vous pouvez vous inscrire aux notifications par e-mail avec des liens pour obtenir de l’aide en cas d’échec d’une mise à niveau du cluster.

Inscription à des notifications

Vous pouvez vous inscrire aux notifications en cas d’échec de la mise à niveau d’un cluster. Un e-mail sera envoyé à vos adresses e-mail désignées avec des détails supplémentaires sur l’échec de la mise à niveau et des liens vers de l’aide supplémentaire.

Notes

L’inscription au déploiement par vagues n’est pas nécessaire pour recevoir des notifications en cas d’échec de la mise à niveau.

Pour vous inscrire aux notifications, ajoutez une section notifications à votre modèle de ressource de cluster et désignez une ou plusieurs adresses e-mail (receivers) pour recevoir les notifications :

    "apiVersion": "2020-12-01-preview",
    "type": "Microsoft.ServiceFabric/clusters",
     ...
        "upgradeMode": "Automatic",
        "upgradeWave": "Wave1",
        "notifications": [
        {
            "isEnabled": true,
            "notificationCategory": "WaveProgress",
            "notificationLevel": "Critical",
            "notificationTargets": [
            {
                "notificationChannel": "EmailUser",
                "receivers": [
                    "devops@contoso.com"
                ]
            }]
        }]

Une fois que vous avez déployé votre modèle mis à jour, vous êtes inscrit aux notifications d’échec de mise à niveau.

Stratégies personnalisées pour les mises à niveau manuelles

Vous pouvez spécifier des stratégies d’intégrité personnalisées pour les mises à niveau manuelles de cluster. Ces stratégies sont appliquées chaque fois que vous sélectionnez une nouvelle version du runtime, ce qui déclenche le lancement de la mise à niveau de votre cluster par le système. Si vous ne remplacez pas les stratégies, les valeurs par défaut sont utilisées.

Vous pouvez spécifier les stratégies d’intégrité personnalisées ou vérifier les paramètres actuels dans la section Mises à niveau de Fabric de votre ressource de cluster dans Portail Azure en sélectionnant l’option Personnalisée pour Stratégie de mise à niveau.

Sélectionnez l’option de stratégie de mise à niveau « Personnalisée » dans la section « Mises à niveau de Fabric » de votre ressource de cluster dans Portail Azure afin de définir des stratégies d’intégrité personnalisées lors de la mise à niveau.

Recherche de versions de cluster prises en charge

Vous pouvez référencer des versions de Service Fabric pour plus d’informations sur les versions et les systèmes d’exploitation pris en charge.

Vous pouvez également utiliser l’API REST Azure pour répertorier toutes les versions du runtime Service Fabric (clusterVersions) disponibles pour l’emplacement spécifié et votre abonnement.

GET https://<endpoint>/subscriptions/{{subscriptionId}}/providers/Microsoft.ServiceFabric/locations/{{location}}/clusterVersions?api-version=2018-02-01

"value": [
  {
    "id": "subscriptions/########-####-####-####-############/providers/Microsoft.ServiceFabric/environments/Windows/clusterVersions/5.0.1427.9490",
    "name": "5.0.1427.9490",
    "type": "Microsoft.ServiceFabric/environments/clusterVersions",
    "properties": {
      "codeVersion": "5.0.1427.9490",
      "supportExpiryUtc": "2016-11-26T23:59:59.9999999",
      "environment": "Windows"
    }
  },
  {
    "id": "subscriptions/########-####-####-####-############/providers/Microsoft.ServiceFabric/environments/Windows/clusterVersions/4.0.1427.9490",
    "name": "5.1.1427.9490",
    "type": " Microsoft.ServiceFabric/environments/clusterVersions",
    "properties": {
      "codeVersion": "5.1.1427.9490",
      "supportExpiryUtc": "9999-12-31T23:59:59.9999999",
      "environment": "Windows"
    }
  },
  {
    "id": "subscriptions/########-####-####-####-############/providers/Microsoft.ServiceFabric/environments/Windows/clusterVersions/4.4.1427.9490",
    "name": "4.4.1427.9490",
    "type": " Microsoft.ServiceFabric/environments/clusterVersions",
    "properties": {
      "codeVersion": "4.4.1427.9490",
      "supportExpiryUtc": "9999-12-31T23:59:59.9999999",
      "environment": "Linux"
    }
  }
]
}

La propriété supportExpiryUtc dans la sortie indique quand une version donnée expire ou a expiré. Les version les plus récentes ne seront pas associées à une date valide, mais plutôt une valeur 9999-12-31T23:59:59.9999999, qui signifie simplement que la date d’expiration n’est pas encore définie.

Rechercher le chemin de mise à niveau pris en charge

Vous pouvez référencer la documentation des versions de Service Fabric pour les chemins de mise à niveau pris en charge et les informations sur les versions associées.

À l’aide des informations de la version cible prise en charge, vous pouvez suivre les étapes PowerShell suivantes pour valider le chemin de mise à niveau pris en charge.

  1. Connexion à Azure

    Login-AzAccount
    
  2. Sélection de l’abonnement

    Set-AzContext -SubscriptionId <your-subscription>
    
  3. Appeler l’API

    $params = @{ "TargetVersion" = "<target version>"}
    Invoke-AzResourceAction -ResourceId <cluster resource id> -Parameters $params -Action listUpgradableVersions -Force
    

    Exemple :

    $params = @{ "TargetVersion" = "8.1.335.9590"}
    Invoke-AzResourceAction -ResourceId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ServiceFabric/clusters/myCluster -Parameters $params -Action listUpgradableVersions -Force
    
    Output
    supportedPath
    -------------
    {8.1.329.9590, 8.1.335.9590}
    

Étapes suivantes