Tutoriel : Migrer WebSphere Liberty/Open Liberty vers Azure Kubernetes Service (AKS) avec une haute disponibilité et une récupération d’urgence
Ce tutoriel vous montre une manière simple et efficace de mettre en œuvre la haute disponibilité et la récupération d’urgence (HA/DR) pour Java en utilisant WebSphere Liberty/Open Liberty sur Azure Kubernetes Service (AKS). La solution illustre comment atteindre un objectif de temps de récupération (RTO) et un objectif de point de récupération (RPO) faibles en utilisant une simple application Jakarta EE basée sur une base de données, exécutée sur WebSphere Liberty/Open Liberty.
La HA/DR est un sujet complexe, avec de nombreuses solutions possibles. La meilleure solution dépend de vos exigences spécifiques. Pour d’autres façons de mettre en œuvre la HA/DR, veuillez consulter les ressources à la fin de cet article.
Dans ce tutoriel, vous allez apprendre à :
- Utilisez les bonnes pratiques optimisées pour Azure pour atteindre la haute disponibilité et la récupération d’urgence.
- Configurez un groupe de basculement de base de données SQL Azure dans des régions appairées.
- Configurer le cluster WebSphere Liberty/Open Liberty principal sur AKS.
- Configurer la récupération d’urgence pour le cluster en utilisant Azure Backup.
- Configurer le cluster AKS secondaire.
- Configurez un Azure Traffic Manager
- Testez le basculement du principal au secondaire
Le schéma suivant illustre l’architecture que vous construisez :
Azure Traffic Manager vérifie la santé de vos régions et dirige le trafic en conséquence vers le niveau d’application. Les régions primaire et secondaire ont toutes deux un déploiement complet du cluster Liberty. Cependant, seule la région primaire gère activement les demandes réseau des utilisateurs. La région secondaire est passive et est activée pour recevoir du trafic uniquement lorsque la région primaire subit une interruption de service. Azure Traffic Manager utilise la fonctionnalité de vérification d’intégrité de l’Azure Application Gateway pour mettre en œuvre ce routage conditionnel. Le cluster primaire est en fonctionnement et le cluster secondaire est arrêté. Le RTO de basculement géographique de la couche applicative dépend du temps de démarrage des machines virtuelles (VM) et de l’exécution du cluster secondaire. Le RPO dépend de l’Azure SQL Database, car les données sont persistantes et répliquées dans le groupe de basculement d’Azure SQL Database.
Le niveau de la base de données se compose d’un groupe de basculement de base de données SQL Azure avec un serveur principal et un serveur secondaire. Le point d’écoute de lecture/écriture pointe toujours vers le serveur primaire et est connecté à un cluster WebSphere Liberty/Open Liberty dans chaque région. Un géobasculement bascule toutes les bases de données secondaires du groupe dans le rôle principal. Pour le RPO et le RTO de basculement géographique d’Azure SQL Database, veuillez consulter la section Vue d’ensemble de la continuité des activités avec Azure SQL Database.
Ce tutoriel a été rédigé avec les services Azure Backup et Azure SQL Database car il repose sur les fonctionnalités de haute disponibilité de ces services. D’autres choix de bases de données sont possibles, mais vous devez tenir compte des fonctionnalités de haute disponibilité de la base de données que vous choisissez.
Prérequis
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Vérifiez que vous êtes affecté au rôle
Owner
ou aux rôlesContributor
etUser Access Administrator
dans l’abonnement. Vous pouvez vérifier l’affectation en suivant les étapes de la section Liste des affectations de rôles Azure en utilisant le portail Azure. - Préparez une machine locale avec Windows, Linux ou macOS installé.
- Installer Azure CLI 2.62.0 ou version ultérieure pour exécuter des commandes Azure CLI.
- Connectez-vous avec Azure CLI à l’aide de la commande az login. Pour terminer le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez Connectez-vous à Azure avec Azure CLI.
- Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec l’interface de ligne de commande Azure.
- Exécutez version az pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Installez et configurez Git.
- Installez une implémentation de Java SE, version 17 ou ultérieure - par exemple, la build Microsoft d’OpenJDK.
- Installez Maven, version 3.9.3 ou une version ultérieure.
Configurez un groupe de basculement de base de données SQL Azure dans des régions appairées
Dans cette section, vous créez un groupe de basculement Azure SQL Database dans des régions appariées pour l’utiliser avec vos clusters et applications WebSphere Liberty/Open Liberty. Dans une section ultérieure, vous configurez WebSphere Liberty/Open Liberty pour stocker ses données de session dans cette base de données. Cette pratique fait référence à la section Créer une table pour la persistance de session.
Tout d’abord, créez la base de données SQL Azure principale en suivant les étapes du portail Azure dans la section Prise en main rapide : Créer une base de données unique - Azure SQL Database. Suivez les étapes jusqu’à, mais sans inclure, la section « Nettoyer les ressources ». Suivez les instructions suivantes en parcourant l’article, puis revenez à cet article après avoir créé et configuré Azure SQL Database.
Lorsque vous atteignez la section Créer une base de données unique, utilisez les étapes suivantes :
- À l’étape 4 pour la création d’un nouveau groupe de ressources, mettez de côté la valeur Nom du groupe de ressources, par exemple
myResourceGroup
. - À l’étape 5 pour le nom de la base de données, enregistrez la valeur Nom de la base de données, par exemple
mySampleDatabase
. - À l’étape 6 pour la création du serveur, utilisez les étapes suivantes :
- Entrez un nom de serveur unique comme
sqlserverprimary-mjg032524
. - Pour Emplacement, sélectionnez (États-Unis) USA Est.
- Pour la Méthode d’authentification, sélectionnez Utiliser l’authentification SQL.
- Mettez de côté la valeur Login de l’administrateur du serveur, par exemple
azureuser
. - Mettez de côté la valeur Mot de passe.
- Entrez un nom de serveur unique comme
- À l’étape 8, pour l’Environnement de travail, sélectionnez Développement. Regardez la description et envisagez d’autres options pour votre charge de travail.
- À l’étape 11, pour la Redondance du stockage de sauvegarde, sélectionnez Stockage de sauvegarde localement redondant. Envisagez d’autres options pour vos sauvegardes. Pour plus d’informations, veuillez consulter la section Redondance du stockage de sauvegarde de la rubrique Sauvegardes automatisées dans Azure SQL Database.
- À l’étape 14, dans la configuration des Règles du pare-feu, pour Permettre aux services et ressources Azure d’accéder à ce serveur, sélectionnez Oui.
Puis créez un groupe de basculement de base de données SQL Azure en suivant les étapes du portail Azure dans la section Configurer un groupe de basculement pour Azure SQL Database. Vous n’avez besoin que des sections suivantes : Créer un groupe de basculement et Tester le basculement planifié. Utilisez les étapes suivantes pendant que vous suivez l’article, puis revenez à cet article après avoir créé et configuré le groupe de basculement de la base de données SQL Azure :
Lorsque vous atteignez la section Créer un groupe de basculement, procédez comme suit :
- À l’étape 5 pour la création du groupe de basculement, entrez et enregistrez le nom unique du groupe de basculement comme
failovergroup-mjg032524
. - À l’étape 5 pour la configuration du serveur, sélectionnez l’option pour créer un nouveau serveur secondaire, puis procédez comme suit :
- Entrez un nom de serveur unique comme
sqlserversecondary-mjg032524
. - Entrez le même administrateur de serveur et mot de passe que pour votre serveur principal.
- Pour Emplacement, sélectionnez (US) USA Ouest.
- Assurez-vous que Autoriser les services Azure à accéder au serveur est sélectionné.
- Entrez un nom de serveur unique comme
- À l’étape 5 pour la configuration des Bases de données dans le groupe, sélectionnez la base de données que vous avez créée dans le serveur principal, par exemple
mySampleDatabase
.
- À l’étape 5 pour la création du groupe de basculement, entrez et enregistrez le nom unique du groupe de basculement comme
Après avoir terminé toutes les étapes de la section Tester le basculement planifié, laissez la page du groupe de basculement ouverte et utilisez-la pour le test de basculement des clusters WebSphere Liberty/Open Liberty plus tard.
Remarque
Cet article vous guide pour créer une base de données unique Azure SQL Database avec l’authentification SQL par souci de simplicité, car la configuration de haute disponibilité/récupération d’urgence sur laquelle cet article se concentre est déjà très complexe. Une pratique plus sécurisée consiste à utiliser authentification Microsoft Entra pour Azure SQL pour authentifier la connexion du serveur de base de données. Pour plus d’informations sur la configuration de la connexion de base de données avec l’authentification Microsoft Entra, consultez Déployer une application Java avec Open Liberty ou WebSphere Liberty sur un cluster Azure Kubernetes Service (AKS).
Configurer le cluster WebSphere Liberty/Open Liberty principal sur AKS
Dans cette section, vous créez le cluster WebSphere Liberty/Open Liberty principal sur AKS en utilisant l’offre IBM WebSphere Liberty et Open Liberty sur Azure Kubernetes Service. Le cluster secondaire est restauré à partir du cluster principal lors du basculement en utilisant Azure Backup plus tard.
Déployer le cluster WebSphere Liberty/Open Liberty principal
Procédez comme suit pour déployer le cluster principal :
Ouvrez l’offre IBM WebSphere Liberty et Open Liberty sur Azure Kubernetes Service dans votre navigateur et sélectionnez Créer. Vous devriez voir le volet Informations de base de l’offre.
Utilisez les étapes suivantes pour remplir le volet Informations de base :
- Assurez-vous que la valeur affichée pour Abonnement est la même que celle qui contient les rôles listés dans la section des prérequis.
- Vous devez déployer l’offre dans un groupe de ressources vide. Dans le champ Groupe de ressources, sélectionnez Créer nouveau et remplissez une valeur unique pour le groupe de ressources comme
liberty-aks-eastus-mjg032524
. - Sous Détails de l’instance, pour Région, sélectionnez USA Est.
- Sélectionnez Suivant pour passer au volet AKS.
Patientez un moment. Vous devriez voir tous les champs pré-remplis avec les valeurs par défaut dans le volet AKS. Sélectionnez Suivant pour passer au volet Équilibrage de charge.
Utilisez les étapes suivantes pour remplir le volet Équilibrage de charge :
- Pour Se connecter à Azure Application Gateway ?, sélectionnez Oui.
- Laissez les paramètres par défaut pour les autres champs.
- Sélectionnez Suivant pour passer au volet Opérateur et application.
Procédez comme suit pour remplir le volet Opérateur et application :
Laissez les valeurs par défaut pour tous les champs.
Remarque
Ce tutoriel déploie Open Liberty Operator en utilisant les valeurs par défaut. Vous pouvez éventuellement déployer WebSphere Liberty Operator en sélectionnant Oui pour IBM pris en charge ?.
Sélectionnez Revoir + créer.
Attendez que Exécution de la validation finale... soit terminée avec succès, puis sélectionnez Créer.
Après un moment, vous devriez voir la page Déploiement où Le déploiement est en cours est affiché.
Remarque
Si vous rencontrez des problèmes lors de l’exécution de la validation finale..., corrigez-les et essayez à nouveau.
Selon les conditions réseau et d’autres activités dans la région sélectionnée, le déploiement peut prendre jusqu’à environ 30 minutes. Après cela, le texte Votre déploiement a été effectué doit s’afficher dans la page de déploiement.
Vérifier le déploiement du cluster
Vous avez déployé un cluster AKS, une instance Azure Container Registry (ACR) et une Azure Application Gateway dans la région principale. Le cluster AKS est la plateforme de calcul cible où votre application est déployée et exécutée. L’instance ACR stocke l’image de l’application que AKS tire pendant le déploiement de l’application. Azure Application Gateway agit en tant qu’équilibreur de charge pour l’application déployée sur le cluster AKS.
Utilisez les étapes suivantes pour vérifier ces composants clés avant de passer à l’étape suivante :
Revenez à la page Déploiement, puis sélectionnez Sorties.
Copiez la valeur de la propriété cmdToConnectToCluster. Ouvrez un terminal, collez la commande copiée et appuyez sur Entrée pour exécuter. Vous devriez voir un message similaire à l’exemple suivant inclus dans la sortie :
Merged "cluster3984d1-admin" as current context in <your-user>\.kube\config
Enregistrez la commande afin de pouvoir l’utiliser pour vous connecter au cluster plus tard.
Exécutez
kubectl get pod --all-namespaces
dans le terminal pour lister tous les pods en cours d’exécution sur le cluster AKS. Vous devez obtenir une sortie similaire à la suivante :NAMESPACE NAME READY STATUS RESTARTS AGE cert-manager cert-manager-66bc9756fd-255pk 1/1 Running 0 8m55s cert-manager cert-manager-cainjector-669c9fb694-k4q88 1/1 Running 0 8m55s cert-manager cert-manager-webhook-84967d556d-vj4lp 1/1 Running 0 8m55s kube-system azure-ip-masq-agent-dgzkt 1/1 Running 0 29m kube-system cloud-node-manager-6x7bp 1/1 Running 0 29m kube-system coredns-789789675-6b7dh 1/1 Running 0 28m kube-system coredns-789789675-n68wt 1/1 Running 0 29m kube-system coredns-autoscaler-649b947bbd-zhdbn 1/1 Running 0 29m kube-system csi-azuredisk-node-h9p7m 3/3 Running 0 29m kube-system csi-azurefile-node-jnllw 3/3 Running 0 29m kube-system ingress-appgw-deployment-69944d8fb9-v9btr 1/1 Running 5 (12m ago) 17m kube-system konnectivity-agent-94878f88c-hfqng 1/1 Running 0 29m kube-system konnectivity-agent-94878f88c-ln2vp 1/1 Running 0 29m kube-system kube-proxy-28lkg 1/1 Running 0 29m kube-system metrics-server-5fffcb8954-549xl 2/2 Running 0 28m kube-system metrics-server-5fffcb8954-fn56g 2/2 Running 0 28m open-liberty olo-controller-manager-7954d76cf8-qhmxw 1/1 Running 0 8m40s
Exécutez
kubectl get secret
dans le terminal pour lister tous les secrets installés sur le cluster AKS. Vous devriez voir un secret dans la sortie, comme indiqué dans l’exemple suivant :NAME TYPE DATA AGE secret3984d1 kubernetes.io/tls 2 24m
Ce secret est un secret TLS qui inclut les données de certificat et de clé pour le trafic TLS. Copiez et enregistrez le nom du secret, par exemple
secret3984d1
, vous l’utiliserez lors du déploiement de l’application plus tard.Revenez à la page Sorties. Copiez la valeur de la propriété cmdToLoginInRegistry. Collez la commande copiée dans le terminal et appuyez sur Entrée pour exécuter. Vous devriez voir Connexion réussie dans la sortie. Laissez le terminal ouvert et utilisez-le pour d’autres configurations du cluster WebSphere Liberty/Open Liberty plus tard.
Procédez comme suit pour obtenir le nom et le nom DNS de l’adresse IP publique de l’Azure Application Gateway. Vous les utiliserez pour le déploiement de l’application et la configuration d’Azure Traffic Manager plus tard.
- Dans le portail Azure, dans la zone de recherche, entrez Groupes de ressources et sélectionnez Groupes de ressources dans les résultats de la recherche.
- Sélectionnez le nom du groupe de ressources pour votre région principale, par exemple
liberty-aks-eastus-mjg032524
. - Trouvez la ressource Adresse IP publique préfixée par
gwip
, puis copiez et enregistrez son nom. - Sélectionnez la ressource Adresse IP publique, puis copiez et enregistrez le Nom DNS, par exemple
olgw3984d1.eastus.cloudapp.azure.com
.
Activer les géo-réplications pour l’instance ACR
L’instance ACR est conçue pour stocker les images d’application pour les clusters principal et secondaire. Procédez comme suit pour activer les géo-réplications pour l’instance ACR :
Dans le portail Azure, dans la zone de recherche, entrez Groupes de ressources et sélectionnez Groupes de ressources dans les résultats de la recherche.
Sélectionnez le nom du groupe de ressources pour votre région principale, par exemple
liberty-aks-eastus-mjg032524
.Trouvez la ressource Registre de conteneurs préfixée par
acr
, puis sélectionnez-la pour l’ouvrir.Sélectionnez Propriétés. Pour Plan tarifaire, sélectionnez Premium, puis sélectionnez Enregistrer. Patientez jusqu'à la fin.
Sélectionnez Géoréplications, puis sélectionnez Ajouter. Pour Emplacement, sélectionnez USA Ouest, puis sélectionnez Créer. Patientez jusqu'à la fin.
Attendez un moment, sélectionnez Actualiser. Répétez l’opération jusqu’à ce que vous voyiez deux emplacements répertoriés et que le Statut soit Prêt.
Utilisez les étapes suivantes pour obtenir les identifiants de connexion à l’ACR. Vous les utiliserez pour le déploiement de l’application plus tard.
Sélectionnez Clés d’accès.
Copiez et enregistrez les valeurs pour nom du Registre et serveur de connexion.
Remarque
Cet article utilise la commande
az acr build
pour générer et envoyer (push) l’image Docker au registre de conteneurs, sans utiliserusername
etpassword
du registre de conteneurs. Il est toujours possible d’utiliser le nom d’utilisateur et le mot de passe avecdocker login
etdocker push
. L’utilisation du nom d’utilisateur et du mot de passe est moins sécurisée que l’authentification sans mot de passe.
Déployer un exemple d’application
Procédez comme suit pour déployer et exécuter une application Java/Jakarta EE CRUD de démonstration sur le cluster WebSphere Liberty/Open Liberty pour le test de basculement de récupération d’urgence plus tard :
Téléchargez l’exemple en utilisant les commandes suivantes :
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git cd open-liberty-on-aks export BASE_DIR=$PWD git checkout 20240325
L’application configure une source de données jdbc/JavaEECafeDB qui se connecte à l’Azure SQL Database que vous avez déployée précédemment. La source de données est utilisée pour stocker les données de session HTTP, ce qui permet le basculement et l’équilibrage de charge sur un cluster de serveurs WebSphere Liberty/Open Liberty. L’application de démonstration configure également un schéma de persistance pour persister les données de l’application
coffee
dans la même source de données. Notez que le contexte racine de l’exemple est configuré comme / dans le fichier server.xml.Utilisez les commandes suivantes pour définir des variables d’environnement avec les valeurs que vous avez enregistrées précédemment :
export DB_SERVER_NAME=<failover-group-name>.database.windows.net export DB_NAME=mySampleDatabase export DB_USER=azureuser@<failover-group-name> export DB_PASSWORD='<SQL-Server-admin-login-password>' export REGISTRY_NAME=<ACR-registry-name> export LOGIN_SERVER=<ACR-login-server> export INGRESS_TLS_SECRET=<TLS-secret-name>
Utilisez la commande
az acr build
pour générer et envoyer (push) l’image Docker à Container Registry, comme illustré dans l’exemple suivant :cd $BASE_DIR/java-app mvn clean install cd $BASE_DIR/java-app/target # If you deployed WebSphere Liberty Operator previously, use "Dockerfile-wlp" instead of "Dockerfile" az acr build \ --registry ${REGISTRY_NAME} \ --image javaee-cafe:v1 \ --file Dockerfile \ .
Utilisez les commandes suivantes pour déployer l’exemple d’application sur le cluster AKS :
cd $BASE_DIR/java-app/target kubectl apply -f db-secret.yaml # If you deployed WebSphere Liberty Operator previously, use "webspherelibertyapplication-agic.yaml" instead of "openlibertyapplication-agic.yaml" kubectl apply -f openlibertyapplication-agic.yaml
Exécutez la commande suivante pour obtenir l’application de démonstration que vous avez déployée :
# If you deployed WebSphere Liberty Operator previously, use "WebSphereLibertyApplication" instead of "OpenLibertyApplication" kubectl get OpenLibertyApplication
Vous devriez voir une application PRÊTE dans la sortie :
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY AGE javaee-cafe-cluster-agic acr3984d1.azurecr.io/javaee-cafe:v1 True True True 45s
Exécutez la commande suivante pour obtenir le statut des pods créés lors du déploiement :
kubectl get pods
L’exemple suivant indique que tous les pods sont en cours d’exécution. Si vous ne voyez pas de sortie similaire, attendez un moment et répétez l’opération.
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-6bbb8d6f5c-2xjc4 1/1 Running 0 1m javaee-cafe-cluster-agic-6bbb8d6f5c-4f449 1/1 Running 0 1m javaee-cafe-cluster-agic-6bbb8d6f5c-m2wg6 1/1 Running 0 1m
Utilisez les étapes suivantes pour vérifier que l’application fonctionne comme prévu :
Dans un nouvel onglet de navigateur, ouvrez le nom DNS de l’adresse IP publique de l’Azure Application Gateway que vous avez enregistrée précédemment. Utilisez le protocole
https
, par exemplehttps://olgw3984d1.eastus.cloudapp.azure.com
. Vous devriez voir la page d’accueil de l’application de démonstration.Créez un nouveau café avec un nom et un prix, par exemple Café 1 avec un prix de 10, qui est enregistré dans la table des données de l’application et la table des sessions de la base de données. L’interface utilisateur que vous voyez devrait ressembler à la capture d’écran suivante :
Si votre interface utilisateur ne ressemble pas à cela, identifiez et résolvez le problème avant de continuer.
Configurer la récupération d’urgence pour le cluster en utilisant Azure Backup
Dans cette section, vous configurez la récupération d’urgence pour le cluster AKS dans la région principale en utilisant Azure Backup.
Créez un compte de stockage.
La sauvegarde AKS utilise un conteneur blob pour contenir les ressources du cluster AKS. Vous créez un autre conteneur blob comme emplacement de transit à utiliser lors de la restauration inter-régions.
Utilisez les étapes suivantes pour créer un compte de stockage et deux conteneurs. Certaines de ces étapes vous renvoient à d’autres guides.
- Connectez-vous au portail Azure.
- Créez un compte de stockage en suivant les étapes décrites dans la section Créer un compte de stockage. Vous n’avez pas besoin de faire toutes les étapes de l’article. Remplissez les champs comme indiqué dans le volet Paramètres de base, en procédant comme suit :
- Pour Groupe de ressources, sélectionnez le groupe de ressources existant où le cluster principal est déployé, par exemple
liberty-aks-eastus-mjg032524
. - Pour Nom du compte de stockage, entrez un nom unique, par exemple
storageeastusmjg032524
. - Pour Région, sélectionnez USA Est.
- Sélectionnez Revoir + créer pour accepter les options par défaut.
- Passez à la validation et à la création du compte, puis revenez à cet article.
- Pour Groupe de ressources, sélectionnez le groupe de ressources existant où le cluster principal est déployé, par exemple
- Créez un conteneur de stockage pour l’extension de sauvegarde AKS en suivant les étapes dans la section Créer un conteneur de stockage. Ce guide utilise
aks-backup-ext
comme nom du conteneur. - Créez un autre conteneur de stockage comme emplacement de transit à utiliser lors de la restauration. Ce guide utilise
staging
comme nom du conteneur.
Activer l’extension AKS Backup
Avant de continuer, utilisez les étapes suivantes pour installer l’extension de sauvegarde AKS sur le cluster dans la région principale :
Activez les pilotes CSI et les instantanés pour votre cluster. Pour la commande
az aks update
suivante, mettez à jour la valeur de la variable BashRG_NAME
avec le nom de votre groupe de ressources, par exempleliberty-aks-eastus-mjg032524
, et exécutez-la dans votre terminal Bash local.export RG_NAME=<your-aks-cluster-resource-group> export AKS_NAME=$(az aks list \ --resource-group ${RG_NAME} \ --query "[0].name" \ --output tsv | tr -d '\r') az aks update \ --resource-group ${RG_NAME} \ --name ${AKS_NAME} \ --enable-disk-driver \ --enable-file-driver \ --enable-blob-driver \ --enable-snapshot-controller --yes
L’activation des pilotes prend environ 5 minutes. Assurez-vous que les commandes s’exécutent sans erreur avant de continuer.
Ouvrez le groupe de ressources où AKS est déployé, par exemple
liberty-aks-eastus-mjg032524
. Sélectionnez le cluster AKS dans la liste des ressources.Sous Paramètres de la page d’accueil AKS, sélectionnez Sauvegarde, puis sélectionnez Installer l’extension.
Dans la page Installer l’extension de sauvegarde AKS, sélectionnez Suivant. Sélectionnez le compte de stockage
storageeastusmjg032524
et le conteneur blobaks-backup-ext
créés dans le même groupe de ressources. Sélectionnez Suivant, puis sélectionnez Créer. Compléter cette étape prend environ cinq minutes.
Sauvegarder le cluster AKS
Utilisez les étapes suivantes pour sauvegarder le cluster AKS :
Dans le portail Azure, dans la zone de recherche, recherchez Backup vaults. Vous le voyez répertorié sous Services. Sélectionnez-le.
Suivez les étapes de la section Sauvegarder Azure Kubernetes Service en utilisant Azure Backup pour activer la sauvegarde AKS pour le cluster principal. Exécutez les étapes jusqu’à, mais sans inclure, la section Utiliser des hooks lors de la sauvegarde AKS, et utilisez le reste des étapes de cette section pour faire des ajustements au fur et à mesure.
Lorsque vous atteignez la section Créer un coffre de sauvegarde, utilisez les étapes suivantes :
Pour l’étape 1, pour Groupe de ressources, sélectionnez le groupe de ressources existant où le cluster principal est déployé, par exemple
liberty-aks-eastus-mjg032524
.Pour Nom du coffre de sauvegarde, entrez une valeur unique, par exemple
aks-backup-vault-eastus-mjg032524
.Pour Région, sélectionnez USA Est.
Pour Redondance de stockage de sauvegarde, sélectionnez Globally-Redundant.
Pour l’étape 2, pour Restauration inter-régions, sélectionnez Activer.
Lorsque vous atteignez la section Créer une stratégie de sauvegarde, procédez comme suit :
Pour l’étape 3, entrez un nom pour la stratégie de sauvegarde, par exemple
aksbackuppolicy
.Sélectionnez le coffre de sauvegarde que vous avez créé dans le même groupe de ressources, par exemple
aks-backup-vault-eastus-mjg032524
.Pour l’étape 4, ajoutez une règle de rétention où Vault-standard est sélectionné.
Sélectionnez Ajouter.
Dans la section Configurer les sauvegardes, procédez comme suit :
Ignorez les étapes 1-5, qui concernent l’installation de l’extension AKS. Commencez à partir de l’étape 6 pour le cluster AKS dans la région principale.
À l’étape 7, pour Coffre (Vault), sélectionnez le coffre de sauvegarde que vous avez créé dans le même groupe de ressources, par exemple
aks-backup-vault-eastus-mjg032524
. Si vous rencontrez des erreurs de permission, sélectionnez Accorder les permissions pour continuer. Après la fin du déploiement des permissions, si l’erreur persiste, sélectionnez Revalider pour actualiser les affectations de rôle.À l’étape 10, trouvez Sélectionner les ressources à sauvegarder. Pour Nom de l’instance de sauvegarde, remplissez un nom unique, par exemple
akseastusmjg032524
. Pour Autres options, sélectionnez toutes les options. Assurez-vous que Inclure les secrets est sélectionné.À l’étape 11, vous rencontrez une erreur d’attribution de rôle. Suivez les étapes 12-14 pour atténuer l’erreur.
Après avoir sélectionné Configurer la sauvegarde à l’étape 15, vous revenez à la page Sauvegarde. Attendez un moment, puis sélectionnez Actualiser. Répétez l’opération jusqu’à ce que vous voyiez que l’instance de sauvegarde est répertoriée et que son Statut de protection est Protection configurée.
Attendez qu’une sauvegarde Vault-standard ait lieu
Dans AKS, la catégorie Vault-standard est la seule catégorie qui prend en charge la Géoredondance et la restauration interrégionale. Comme indiqué dans Quelle catégorie de stockage de sauvegarde prend en charge la sauvegarde AKS ?, « Un seul point de récupération programmé par jour est déplacé vers la catégorie Vault » Vous devez attendre qu’une sauvegarde Vault-standard ait lieu. Un bon seuil inférieur est d’attendre au maximum 24 heures après avoir terminé l’étape précédente avant de restaurer.
Procédez comme suit pour vérifier qu’une sauvegarde Vault-standard est disponible :
Sur la page Sauvegarde du cluster AKS principal, sélectionnez l’instance de sauvegarde.
Attendez un moment, puis sélectionnez Actualiser. Répétez l’opération jusqu’à ce que vous voyiez qu’au moins un Point de restauration opérationnel et Vault-standard est répertorié dans la section POINTS DE RESTAURATION.
Configurer le cluster AKS secondaire
En attendant qu’une sauvegarde Vault-standard pour le cluster AKS principal ait lieu, configurez votre cluster AKS secondaire pour la restauration ultérieure.
Procédez comme dans la section Déployer le cluster WebSphere Liberty/Open Liberty principal pour configurer le cluster AKS secondaire dans la région secondaire, à l’exception des différences suivantes :
Dans le volet Informations de base, procédez comme suit :
- Dans le champ Groupe de ressources, sélectionnez Créer un nouveau et remplissez une valeur unique différente pour le groupe de ressources, par exemple
liberty-aks-westus-mjg032524
. - Sous Détails de l’instance, pour Région, sélectionnez USA Ouest.
- Dans le champ Groupe de ressources, sélectionnez Créer un nouveau et remplissez une valeur unique différente pour le groupe de ressources, par exemple
Dans le volet AKS, procédez comme suit :
Utilisez les mêmes étapes de la section Vérifier le déploiement du cluster pour vérifier le déploiement dans la région secondaire, à l’exception des différences suivantes :
- Vous n’avez pas besoin de copier et d’enregistrer le nom du secret TLS. Le secret TLS est restauré à partir de la sauvegarde du cluster AKS principal.
- Utilisez le groupe de ressources du cluster secondaire, par exemple
liberty-aks-westus-mjg032524
, lorsque vous recherchez le nom et le nom DNS de l’adresse IP publique de l’Azure Application Gateway déployé dans la région secondaire.
Procédez comme dans la section Créer un compte de stockage pour créer un compte de stockage dans la région secondaire, à l’exception des différences suivantes :
- Pour le champ Groupe de ressources, sélectionnez le groupe de ressources existant où le cluster secondaire est déployé, par exemple
liberty-aks-westus-mjg032524
. - Pour Nom du compte de stockage, entrez un nom unique, par exemple
storagewestusmjg032524
. - Pour Région, sélectionnez USA Ouest.
Utilisez les mêmes étapes de la section Activer l’extension de sauvegarde AKS pour installer l’extension de sauvegarde AKS pour le cluster dans la région secondaire, à l’exception des différences suivantes :
- À l’étape 1 pour l’activation des pilotes CSI et des instantanés pour votre cluster secondaire, mettez à jour la valeur de la variable Bash
RG_NAME
avec le groupe de ressources dans la région secondaire, par exempleliberty-aks-westus-mjg032524
. - À l’étape 2, sélectionnez le cluster AKS à partir du groupe de ressources dans la région secondaire, par exemple
liberty-aks-westus-mjg032524
. - À l’étape 4 pour installer l’extension de sauvegarde AKS pour votre cluster secondaire, sélectionnez le compte de stockage que vous avez créé dans le même groupe de ressources de la région secondaire, par exemple
storagewestusmjg032524
.
Pour économiser, arrêtez le cluster AKS dans la région secondaire en suivant les étapes de la section Arrêter et démarrer un cluster Azure Kubernetes Service (AKS). Vous devez le démarrer avant de restaurer le cluster plus tard.
Configurez un Azure Traffic Manager
La sauvegarde Vault-standard a été mentionnée dans la section Attendre qu’une sauvegarde Vault-standard ait lieu. Après avoir vu qu’une sauvegarde Vault-standard est disponible, vous pouvez créer un Azure Traffic Manager pour distribuer le trafic vers vos applications accessibles publiquement à travers les régions Azure mondiales. Le point de terminaison principal pointe vers l’adresse IP publique de l’Azure Application Gateway dans la région principale. Le point de terminaison secondaire pointe vers l’adresse IP publique de l’Azure Application Gateway dans la région secondaire.
Créez un profil Azure Traffic Manager en suivant les étapes de la section Prise en main rapide : Créer un profil Traffic Manager à l’aide du portail Azure. Vous avez juste besoin des sections suivantes : Créer un profil Traffic Manager et Ajouter des points de terminaison Traffic Manager. Procédez comme suit pendant ces sections, puis revenez à cet article après avoir créé et configuré le Traffic Manager Azure :
Lorsque vous arrivez à la section Créer un profil Traffic Manager, à l’étape 2, pour Créer un profil Traffic Manager, procédez comme suit :
- Pour Nom, entrez un nom de profil Traffic Manager unique comme
tmprofile-mjg032524
. - Pour Méthode de routage, sélectionnez Priorité.
- Pour Groupe de ressources, entrez et enregistrez le nom du nouveau groupe de ressources comme
myResourceGroupTM1
.
- Pour Nom, entrez un nom de profil Traffic Manager unique comme
Lorsque vous atteignez la section Ajouter des points de terminaison Traffic Manager, procédez comme suit :
- Après avoir ouvert le profil Traffic Manager à l’étape 2, sur la page Configuration, procédez comme suit :
- Pour Durée de vie du DNS (TTL), entrez 10.
- Sous Paramètres de surveillance du point de terminaison, pour Protocole, sélectionnez https, et pour Port, entrez 443.
- Sous Paramètres de basculement rapide du point de terminaison, utilisez les valeurs suivantes :
- Pour Intervalle de sondage, sélectionnez 10.
- Pour Nombre toléré d’échecs, entrez 3.
- Pour Délai d’attente du sondage, entrez 5.
- Cliquez sur Enregistrer. Attendez que cela soit terminé.
- À l’étape 4 pour l’ajout du point de terminaison principal
myPrimaryEndpoint
, procédez comme suit :- Pour Type de ressource cible, sélectionnez Adresse IP publique.
- Sélectionnez la liste déroulante Choisir une adresse IP publique et entrez le nom de l’adresse IP publique de l’Azure Application Gateway dans la région Est des États-Unis que vous avez enregistrée précédemment. Vous devriez voir une entrée correspondante. Sélectionnez-la pour Adresse IP publique.
- À l’étape 6 pour ajouter un point de terminaison de basculement/secondaire
myFailoverEndpoint
, procédez comme suit :- Pour Type de ressource cible, sélectionnez Adresse IP publique.
- Sélectionnez la liste déroulante Choisir une adresse IP publique et entrez le nom de l’adresse IP publique de l’Azure Application Gateway dans la région USA Ouest que vous avez enregistrée précédemment. Vous devriez voir une entrée correspondante. Sélectionnez-la pour Adresse IP publique.
- Patientez un moment. Sélectionnez Actualiser jusqu’à ce que le Statut de la surveillance du point de terminaison
myPrimaryEndpoint
soit En ligne et que le Statut de la surveillance du point de terminaisonmyFailoverEndpoint
soit Dégradé.
- Après avoir ouvert le profil Traffic Manager à l’étape 2, sur la page Configuration, procédez comme suit :
Ensuite, procédez comme suit pour vérifier que l’application de démonstration déployée sur le cluster principal est accessible depuis le profil Traffic Manager :
Sélectionnez Aperçu du profil Traffic Manager que vous avez créé.
Vérifiez et notez le nom DNS du profil Traffic Manager, en remplaçant le protocole
http
parhttps
. Par exemple :https://tmprofile-mjg032524.trafficmanager.net
.Ouvrez l’URL dans un nouvel onglet de navigateur. Vous devriez voir que le café que vous avez créé précédemment est répertorié sur la page.
Créez un autre café avec un nom et un prix différents, par exemple Café 2 avec un prix de 20, qui est enregistré dans la table des données de l’application et la table des sessions de la base de données. L’interface utilisateur que vous voyez devrait ressembler à la capture d’écran suivante :
Si votre interface utilisateur ne ressemble pas à cela, identifiez et résolvez le problème avant de continuer. Gardez la console ouverte et utilisez-la pour le test de basculement plus tard.
Vous avez terminé la configuration du profil Traffic Manager. Gardez la page ouverte et utilisez-la pour surveiller le changement de statut du point de terminaison lors d’un événement de basculement plus tard.
Testez le basculement du principal au secondaire
Dans cette section, pour tester le basculement, vous effectuez manuellement le basculement de votre serveur Azure SQL Database et restaurez la sauvegarde de votre cluster AKS, puis vous effectuez un retour arrière en utilisant le portail Azure.
Basculer vers le site secondaire
Pour simuler une panne de la région principale, arrêtez le cluster AKS principal en suivant les étapes de la section Arrêter et démarrer un cluster Azure Kubernetes Service (AKS).
Ensuite, démarrez le cluster AKS secondaire afin qu’il puisse être restauré à partir de la sauvegarde du cluster principal.
Remarque
Si vous avez des applications WebSphere Liberty/Open Liberty en cours d’exécution sur le cluster cible de la restauration, pour éviter les conflits, procédez comme suit pour nettoyer les applications WebSphere Liberty/Open Liberty :
Connectez-vous au cluster cible en exécutant la commande pour
cmdToConnectToCluster
que vous avez enregistrée précédemment.Pour les applications Open Liberty, exécutez la commande suivante :
kubectl delete OpenLibertyApplication --all --all-namespaces
Pour les applications WebSphere Liberty, exécutez la commande suivante :
kubectl delete WebSphereLibertyApplication --all --all-namespaces
Ensuite, revenez à l’onglet de navigateur de votre profil Traffic Manager, et vérifiez que le Statut de la surveillance pour les deux points de terminaison myPrimaryEndpoint
et myFailoverEndpoint
est Dégradé.
Maintenant, procédez comme suit pour basculer Azure SQL Database du serveur principal vers le serveur secondaire :
- Revenez à l’onglet de navigateur de votre groupe de basculement Azure SQL Database, par exemple
failovergroup-mjg032524
. - Sélectionnez Basculer, puis sélectionnez Oui.
- Attendez que cela soit terminé.
Ensuite, procédez comme suit pour restaurer la sauvegarde du cluster AKS principal sur le cluster AKS secondaire :
Dans le portail Azure, dans la zone de recherche, entrez Centre de sauvegarde et sélectionnez Centre de sauvegarde dans les résultats de la recherche.
Sous Gérer, sélectionnez Instances de sauvegarde. Filtrez par type de source de données Services Kubernetes. Trouvez l’instance de sauvegarde que vous avez créée dans la section précédente, par exemple
<aks-cluster-name>\akseastusmjg032524
.Sélectionnez l’instance de sauvegarde.
Sélectionnez Restaurer.
Sur la page Restaurer, le volet par défaut est Point de restauration. Sélectionnez Précédent pour passer au volet Informations de base. Pour Région de restauration, sélectionnez Région secondaire, puis sélectionnez Suivant : Point de restauration.
Dans le volet Point de restauration, le dernier point de restauration Opérationnel et Vault-standard est sélectionné. Gardez les valeurs par défaut et sélectionnez Suivant : Paramètres de restauration.
Sur le volet Paramètres de restauration, procédez comme suit :
Pour Sélectionner le cluster cible, sélectionnez le cluster AKS secondaire que vous avez créé dans la région USA Ouest. Vous rencontrez un problème de permission comme indiqué dans la capture d’écran suivante. Sélectionnez Accorder la permission pour corriger les erreurs.
Pour Emplacement de mise en scène de la sauvegarde, sélectionnez le compte de stockage que vous avez créé dans la région USA Ouest. Vous rencontrez un problème de permission comme indiqué dans la capture d’écran suivante. Sélectionnez Attribuer les rôles manquants pour corriger les erreurs.
Si les erreurs persistent après la fin des attributions de rôles, sélectionnez Revalider pour actualiser les permissions.
Lors de l’octroi des permissions manquantes, si vous êtes invité à spécifier une Étendue, acceptez la valeur par défaut.
Sélectionnez Valider. Le message,
Validation completed successfully
, doit s’afficher. Sinon, dépannez et résolvez le problème avant de continuer.
Sélectionnez Suivant : Vérifier + restaurer. Sélectionnez ensuite Restaurer. Il faut environ 10 minutes pour restaurer le cluster.
Vous pouvez surveiller le processus de restauration à partir de Centre de sauvegarde>Surveillance + rapports>Tâches de sauvegarde, comme indiqué dans la capture d’écran suivante :
Attendez un moment, puis sélectionnez Actualiser. Répétez l’opération jusqu’à ce que Statut devienne Terminé.
Ensuite, procédez comme suit pour vérifier que la restauration fonctionne comme prévu :
Revenez au terminal où vous vous êtes connecté au cluster AKS secondaire.
Exécutez la commande suivante pour obtenir l’application de démonstration restaurée à partir de la sauvegarde :
kubectl get OpenLibertyApplication
Vous devriez voir une application PRÊTE dans la sortie :
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY AGE javaee-cafe-cluster-agic acr3984d1.azurecr.io/javaee-cafe:v1 True True True 3m
Exécutez la commande suivante pour obtenir le statut des pods créés lors du déploiement :
kubectl get pods
Vous devriez voir trois pods En cours d’exécution dans la sortie :
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-7bb57dd945-6ljll 1/1 Running 0 3m javaee-cafe-cluster-agic-7bb57dd945-h2xdf 1/1 Running 0 3m javaee-cafe-cluster-agic-7bb57dd945-k744w 1/1 Running 0 3m
Revenez à l’onglet de navigateur de votre profil Traffic Manager, puis actualisez la page jusqu’à ce que vous voyiez que le Statut de la surveillance pour le point de terminaison
myFailoverEndpoint
est En ligne et que le Statut de la surveillance pour le point de terminaisonmyPrimaryEndpoint
est Dégradé.Revenez à l’onglet du navigateur avec le nom DNS du profil Traffic Manager, par exemple
https://tmprofile-mjg032524.trafficmanager.net
. Actualisez la page et vous devriez voir les mêmes données persistées dans la table des données de l’application et la table des sessions affichées. L’interface utilisateur que vous voyez devrait ressembler à la capture d’écran suivante :Si vous n’observez pas ce comportement, cela peut être dû au fait que Traffic Manager prend du temps pour mettre à jour le DNS pour pointer vers le site de basculement. Le problème pourrait également être que votre navigateur a mis en cache le résultat de la résolution DNS qui pointe vers le site en échec. Attendez un moment et actualisez à nouveau la page.
Remarque
L’application configure timeout de session à 1 heure. Selon le temps qu’il a fallu pour basculer, il se peut que vous ne voyiez pas les données de session affichées dans la section Nouveau café de l’interface utilisateur de l’application de démonstration si elles ont expiré il y a plus d’une heure.
Re-protéger le site de basculement
Maintenant que la région secondaire est le site de basculement et qu’elle est active, vous devez la reprotéger avec Azure Backup.
Tout d’abord, suivez les mêmes étapes de la section Sauvegarder le cluster AKS pour sauvegarder le cluster AKS secondaire, à l’exception des différences suivantes :
- Pour Créer un coffre de sauvegarde, procédez comme suit :
- Pour Groupe de ressources, sélectionnez le groupe de ressources existant déployé dans la région secondaire, par exemple
liberty-aks-westus-mjg032524
. - Pour Nom du coffre de sauvegarde, entrez une valeur unique, par exemple
aks-backup-vault-westus-mjg032524
. - Pour Région, sélectionnez USA Ouest.
- Pour Groupe de ressources, sélectionnez le groupe de ressources existant déployé dans la région secondaire, par exemple
- Pour Créer une stratégie de sauvegarde, procédez comme suit :
- Sélectionnez le coffre de sauvegarde que vous avez créé dans la région secondaire comme
aks-backup-vault-westus-mjg032524
.
- Sélectionnez le coffre de sauvegarde que vous avez créé dans la région secondaire comme
- Pour Configurer les sauvegardes, procédez comme suit :
- Sélectionnez le coffre de sauvegarde que vous avez créé dans la région secondaire comme
aks-backup-vault-westus-mjg032524
. - Pour Nom de l’Instance de sauvegarde, remplissez un nom unique, par exemple
akswestusmjg032524
.
- Sélectionnez le coffre de sauvegarde que vous avez créé dans la région secondaire comme
Ensuite, suivez la même procédure de la section Attendre qu’une sauvegarde Vault-standard ait lieu pour attendre qu’une sauvegarde Vault-standard du cluster AKS secondaire soit disponible, sauf que vous devez sélectionner l’instance de sauvegarde depuis la page Sauvegarde du cluster AKS secondaire.
Retour au site principal
Utilisez la même procédure que dans la section Basculement vers le site secondaire pour effectuer un retour arrière vers le site principal, y compris le serveur de base de données et le cluster AKS, sauf pour les différences suivantes :
Lorsque vous préparez le retour arrière, procédez comme suit :
- Arrêtez le cluster AKS secondaire pour simuler une panne de la région secondaire.
- Démarrez le cluster AKS principal.
- Connectez-vous au cluster AKS principal et nettoyez les applications WebSphere Liberty/Open Liberty.
Lorsque vous restaurez la sauvegarde du cluster AKS secondaire sur le cluster AKS principal, procédez comme suit :
- Sélectionnez l’instance de sauvegarde dans la région secondaire, par exemple
<aks-cluster-name>\akswestusmjg032524
. - Dans le volet Paramètres de restauration, procédez comme suit :
- Pour Sélectionner le cluster cible, sélectionnez le cluster AKS principal que vous avez créé dans la région USA Est.
- Pour Emplacement de mise en scène de la sauvegarde, sélectionnez le compte de stockage que vous avez créé dans la région USA Est.
- Sélectionnez l’instance de sauvegarde dans la région secondaire, par exemple
Lorsque vous vérifiez que la restauration fonctionne comme prévu, procédez comme suit :
- Revenez au terminal où vous vous êtes connecté au cluster AKS principal, et vérifiez que l’application est restaurée avec succès.
- Revenez à l’onglet de navigateur de votre profil Traffic Manager, puis actualisez la page jusqu’à ce que vous voyiez que le Statut de la surveillance pour le point de terminaison
myPrimaryEndpoint
est En ligne et que le Statut de la surveillance pour le point de terminaisonmyFailoverEndpoint
est Dégradé.
Nettoyer les ressources
Si vous ne continuez pas à utiliser les clusters WebSphere Liberty/Open Liberty et les autres composants, procédez comme suit pour supprimer les groupes de ressources afin de nettoyer les ressources utilisées dans ce tutoriel :
- Dans le portail Azure, dans la zone de recherche, entrez le nom du groupe de ressources des serveurs Azure SQL Database, par exemple
myResourceGroup
, et sélectionnez le groupe de ressources correspondant dans les résultats de la recherche. - Sélectionnez Supprimer le groupe de ressources.
- Dans Entrez le nom du groupe de ressources pour confirmer la suppression, entrez le nom du groupe de ressources.
- Sélectionnez Supprimer.
- Répétez les étapes 1 à 4 pour le groupe de ressources du Traffic Manager, par exemple
myResourceGroupTM1
. - Dans le portail Azure, dans la zone de recherche, entrez Coffres de sauvegarde et sélectionnez Coffres de sauvegarde dans les résultats de la recherche. Vous devriez voir deux coffres de sauvegarde répertoriés, par exemple
aks-backup-vault-eastus-mjg032524
etaks-backup-vault-westus-mjg032524
. Pour chacun d’entre eux, procédez comme suit :- Sélectionnez pour ouvrir le coffre de sauvegarde.
- Sélectionnez Gérer>Propriétés>Suppression douce>Mettre à jour. À côté de Activer la suppression réversible, désélectionnez la case, puis sélectionnez Mettre à jour.
- Sélectionnez Gérer>Instances de sauvegarde. Filtrez par type de source de données Services Kubernetes. Sélectionnez l’instance que vous avez créée, puis supprimez-la.
- Attendez que les deux instances de sauvegarde soient supprimées.
- Répétez les étapes 1-4 pour le groupe de ressources du cluster principal, par exemple
liberty-aks-eastus-mjg032524
. - Répétez les étapes 1-4 pour le groupe de ressources du cluster secondaire, par exemple
liberty-aks-westus-mjg032524
.
Étapes suivantes
Dans ce tutoriel, vous avez configuré une solution HA/DR WebSphere Liberty/Open Liberty composée d’une couche d’infrastructure applicative active-passive avec une couche de base de données active-passive, et dans laquelle les deux couches couvrent deux sites géographiquement distincts. Sur le premier site, la couche d’infrastructure applicative et la couche de base de données sont toutes deux actives. Sur le deuxième site, le domaine secondaire est restauré avec Azure Backup, et la base de données secondaire est en attente.
Continuez à explorer les références suivantes pour plus d’options pour construire des solutions HA/DR et exécuter WebSphere sur Azure :