Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Azure Managed Instance pour Apache Cassandra est un service complètement managé pour les clusters Apache Cassandra open source purs. Le service permet également aux configurations d’être remplacées, en fonction des besoins spécifiques de chaque charge de travail, pour une flexibilité et un contrôle maximum.
Ce guide de démarrage rapide montre comment utiliser les commandes Azure CLI pour configurer un cluster multirégion dans Azure.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Quand vous y êtes invité, installez l’extension Azure CLI à la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version 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.
- Cet article nécessite Azure CLI version 2.30.0 ou ultérieure. Si vous utilisez Azure Cloud Shell, sachez que la version la plus récente est déjà installée.
- Utilisez un réseau virtuel Azure avec une connectivité à votre environnement auto-hébergé ou local. Pour plus d’informations sur la connexion d’environnements locaux à Azure, consultez Connecter un réseau local à Azure.
Configurer l’environnement réseau
Étant donné que tous les centres de données approvisionnés avec ce service doivent être déployés dans des sous-réseaux dédiés à l’aide de l’injection de réseau virtuel, configurez le peering réseau approprié avant le déploiement. Pour ce guide de démarrage rapide, créez un cluster avec deux centres de données dans des régions distinctes : USA Est et USA Est 2. Tout d’abord, créez les réseaux virtuels pour chaque région.
Connectez-vous au portail Azure.
Créez un groupe de ressources nommé
cassandra-mi-multi-region:az group create --location eastus2 --name cassandra-mi-multi-regionCréez le premier réseau virtuel dans USA Est 2 avec un sous-réseau dédié :
az network vnet create \ --name vnetEastUs2 \ --location eastus2 \ --resource-group cassandra-mi-multi-region \ --address-prefix 10.0.0.0/16 \ --subnet-name dedicated-subnetCréez le deuxième réseau virtuel aux États-Unis Est, également avec un sous-réseau dédié :
az network vnet create \ --name vnetEastUs \ --location eastus \ --resource-group cassandra-mi-multi-region \ --address-prefix 192.168.0.0/16 \ --subnet-name dedicated-subnetNous ajoutons explicitement différentes plages d’adresses IP pour garantir qu’il n’y a aucune erreur avec le peering.
Appairez le premier réseau virtuel au deuxième réseau virtuel :
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet1ToMyVnet2 \ --vnet-name vnetEastUs2 \ --remote-vnet vnetEastUs \ --allow-vnet-access \ --allow-forwarded-trafficPour connecter les deux réseaux virtuels, créez un autre peering entre le deuxième réseau virtuel et le premier :
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet2ToMyVnet1 \ --vnet-name vnetEastUs \ --remote-vnet vnetEastUs2 \ --allow-vnet-access \ --allow-forwarded-trafficSi vous ajoutez d’autres régions, chaque réseau virtuel nécessite un peering à partir de celui-ci vers tous les autres réseaux virtuels et de tous les autres réseaux virtuels vers celui-ci.
Vérifiez le résultat de la commande précédente. Assurez-vous que la valeur de
peeringStateest maintenantConnected. Vous pouvez aussi vérifier ce résultat en exécutant la commande suivante :az network vnet peering show \ --name MyVnet1ToMyVnet2 \ --resource-group cassandra-mi-multi-region \ --vnet-name vnetEastUs2 \ --query peeringStateAppliquez des autorisations spéciales aux deux réseaux virtuels. Azure Managed Instance pour Apache Cassandra nécessite ces autorisations. Exécutez la commande suivante : Remplacez
<SubscriptionID>par votre ID d’abonnement :az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2 az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUsLes valeurs
assigneeetrolede la commande précédente sont des valeurs fixes. Entrez ces valeurs exactement comme indiqué dans la commande.
Si vous rencontrez des erreurs quand vous exécutez az role assignment create, vous ne disposez peut-être pas des autorisations nécessaires. Vérifiez vos autorisations auprès de votre administrateur.
Créer un cluster multirégional
Déployez la ressource de cluster. Remplacez
<Subscription ID>par votre ID d’abonnement. Le déploiement peut prendre 5 à 10 minutes.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' location='eastus2' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet' initialCassandraAdminPassword='myPassword' az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --initial-cassandra-admin-password $initialCassandraAdminPassword \ --debugUne fois la ressource de cluster créée, vous êtes prêt à créer un centre de données. Commencez par créer un centre de données dans la région USA Est 2. Remplacez
<SubscriptionID>par votre ID d’abonnement. Cette action peut prendre jusqu’à 10 minutes.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' dataCenterName='dc-eastus2' dataCenterLocation='eastus2' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet' az managed-cassandra datacenter create \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterName \ --data-center-location $dataCenterLocation \ --delegated-subnet-id $delegatedManagementSubnetId \ --node-count 3Créez un centre de données dans la région USA Est. Remplacez
<SubscriptionID>par votre ID d’abonnement :resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' dataCenterName='dc-eastus' dataCenterLocation='eastus' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs/subnets/dedicated-subnet' virtualMachineSKU='Standard_D8s_v4' noOfDisksPerNode=4 az managed-cassandra datacenter create \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterName \ --data-center-location $dataCenterLocation \ --delegated-subnet-id $delegatedManagementSubnetId \ --node-count 3 --sku $virtualMachineSKU \ --disk-capacity $noOfDisksPerNode \ --availability-zone falseVous pouvez choisir la valeur parmi les niveaux de produit disponibles suivants pour
--sku.- Standard_E8s_v4
- Standard_E16s_v4
- Standard_E20s_v4
- Standard_E32s_v4
- Standard_DS13_v2
- Standard_DS14_v2
- Standard_D8s_v4
- Standard_D16s_v4
- Standard_D32s_v4
Vous pouvez également voir que le paramètre
--availability-zoneest défini surfalse. Pour activer les zones de disponibilité, définissez-la surtrue. Les zones de disponibilité augmentent le contrat de niveau de service de disponibilité (SLA) du service. Pour plus d’informations, consultez Les contrats de niveau de service pour Azure Managed Instance pour Apache Cassandra.Les zones de disponibilité ne sont pas prises en charge dans toutes les régions. Les déploiements échouent si vous sélectionnez une région où les zones de disponibilité ne sont pas prises en charge. Pour obtenir la liste des régions compatibles, consultez Régions Azure avec zones de disponibilité.
Le déploiement réussi des zones de disponibilité est également soumis à la disponibilité des ressources de calcul dans toutes les zones de la région spécifique. Les déploiements peuvent échouer si le niveau de produit que vous avez sélectionné, ou la capacité, n’est pas disponible dans toutes les zones.
Une fois que le deuxième centre de données est opérationnel, vérifiez l'état des nœuds pour vous assurer que tous les nœuds Cassandra ont démarré avec succès.
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster status\ --cluster-name $clusterName \ --resource-group $resourceGroupNameUtilisez ensuite CQLSH pour vous connecter à votre cluster. Utilisez la requête CQL suivante pour mettre à jour la stratégie de réplication dans chaque espace de clés pour inclure tous les centres de données du cluster (les tables système sont mises à jour automatiquement) :
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};Enfin, si vous ajoutez un centre de données à un cluster qui contient déjà des données, vous devez exécuter
rebuildpour répliquer les données historiques. Dans ce cas, supposons que ledc-eastus2centre de données possède déjà des données. Dans l'interface de ligne de commande Azure (Azure CLI), exécutez la commande suivante pour exécuternodetool rebuildsur chaque nœud de votre nouveau datacenterdc-eastus. Remplacez<ip address>par l’adresse IP du nœud :az managed-cassandra cluster invoke-command \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --host <ip address> \ --command-name nodetool --arguments rebuild="" "dc-eastus2"=""N’autorisez pas les clients d’application à écrire dans le nouveau centre de données tant que vous n’avez pas appliqué les modifications de réplication d’espace de clés. Sinon, la reconstruction ne fonctionne pas. Ensuite, vous devez créer une demande de support pour que notre équipe puisse vous exécuter
repair.
Dépannage
Si vous rencontrez une erreur lorsque vous appliquez des autorisations à votre réseau virtuel à l’aide d’Azure CLI, vous pouvez appliquer la même autorisation manuellement à partir du portail Azure. Un exemple d’erreur peut être « Impossible de trouver l’utilisateur ou le principal de service dans la base de données graphe pour e5007d2c-4b13-4a74-9b6a-605d99f03501». Pour plus d’informations, consultez Utiliser le portail Azure pour ajouter un principal de service Azure Cosmos DB.
L’attribution de rôle Azure Cosmos DB est utilisée à des fins de déploiement uniquement. Azure Managed Instanced pour Apache Cassandra n’a aucune dépendance back-end sur Azure Cosmos DB.
Nettoyer les ressources
Si vous ne souhaitez pas continuer à utiliser ce cluster d’instances managées, procédez comme suit pour le supprimer :
- Dans le menu de gauche du portail Azure, sélectionnez Groupes de ressources.
- Dans la liste, sélectionnez le groupe de ressources que vous avez créé pour ce guide de démarrage rapide.
- Dans le volet Vue d’ensemble du groupe de ressources, sélectionnez Supprimer un groupe de ressources.
- Dans le volet suivant, entrez le nom du groupe de ressources à supprimer, puis sélectionnez Supprimer.
Étape suivante
Dans ce guide de démarrage rapide, vous avez appris à créer un cluster multirégion à l’aide d’Azure CLI et d’Azure Managed Instance pour Apache Cassandra. Vous pouvez maintenant commencer à utiliser le cluster.