Udostępnij za pomocą


Szybki start: tworzenie klastra z wieloma regionami przy użyciu usługi Azure Managed Instance dla usługi Apache Cassandra

Azure Managed Instance for Apache Cassandra to w pełni zarządzana usługa dla czystych klastrów Apache Cassandra typu open source. Usługa umożliwia również zastępowanie konfiguracji w zależności od konkretnych potrzeb każdego obciążenia w celu zapewnienia maksymalnej elastyczności i kontroli.

W tym przewodniku Szybki start pokazano, jak za pomocą poleceń interfejsu wiersza polecenia platformy Azure skonfigurować klaster z wieloma regionami na platformie Azure.

Wymagania wstępne

  • Ten artykuł wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.30.0 lub nowszej. Jeśli używasz usługi Azure Cloud Shell, najnowsza wersja jest już zainstalowana.
  • Użyj sieci wirtualnej platformy Azure z łącznością z własnym środowiskiem lub środowiskiem lokalnym. Aby uzyskać więcej informacji na temat łączenia środowisk lokalnych z platformą Azure, zobacz Łączenie sieci lokalnej z platformą Azure.

Konfigurowanie środowiska sieciowego

Ponieważ wszystkie centra danych udostępniane za pomocą tej usługi muszą być wdrażane w dedykowanych podsieciach przy użyciu wstrzykiwania sieci wirtualnej, należy skonfigurować odpowiednie peering sieci przed wdrożeniem. W tym przewodniku Szybki start utwórz klaster z dwoma centrami danych w oddzielnych regionach: Wschodnie stany USA i Wschodnie stany USA 2. Najpierw utwórz sieci wirtualne dla każdego regionu.

  1. Zaloguj się w witrynie Azure Portal.

  2. Utwórz grupę zasobów o nazwie cassandra-mi-multi-region:

    az group create --location eastus2 --name cassandra-mi-multi-region
    
  3. Utwórz Pierwszą wirtualną sieć w regionie East US 2 z dedykowaną podsiecią.

    az network vnet create \
      --name vnetEastUs2 \
      --location eastus2 \
      --resource-group cassandra-mi-multi-region \
      --address-prefix 10.0.0.0/16 \
      --subnet-name dedicated-subnet
    
  4. Utwórz drugą sieć wirtualną w regionie Wschodnie USA, również z dedykowaną podsiecią.

     az network vnet create \
       --name vnetEastUs \
       --location eastus \
       --resource-group cassandra-mi-multi-region \
       --address-prefix 192.168.0.0/16 \
       --subnet-name dedicated-subnet
    

    Jawnie dodajemy różne zakresy adresów IP, aby upewnić się, że nie ma żadnych błędów związanych z peeringiem.

  5. Należy połączyć pierwszą sieć wirtualną z drugą siecią wirtualną:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet1ToMyVnet2 \
      --vnet-name vnetEastUs2 \
      --remote-vnet vnetEastUs \
      --allow-vnet-access \
      --allow-forwarded-traffic
    
  6. Aby połączyć dwie sieci wirtualne, utwórz kolejne połączenie równorzędne między drugą siecią wirtualną a pierwszą:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet2ToMyVnet1 \
      --vnet-name vnetEastUs \
      --remote-vnet vnetEastUs2 \
      --allow-vnet-access \
      --allow-forwarded-traffic
    

    Jeśli dodasz więcej regionów, każda sieć wirtualna wymaga połączenia równorzędnego z wszystkimi pozostałymi sieciami wirtualnymi oraz z powrotem od wszystkich tych sieci.

  7. Sprawdź dane wyjściowe poprzedniego polecenia. Upewnij się, że wartość parametru peeringState to teraz Connected. Możesz również sprawdzić ten wynik, uruchamiając następujące polecenie:

    az network vnet peering show \
      --name MyVnet1ToMyVnet2 \
      --resource-group cassandra-mi-multi-region \
      --vnet-name vnetEastUs2 \
      --query peeringState
    
  8. Zastosuj pewne specjalne uprawnienia do obu sieci wirtualnych. Wystąpienie zarządzane platformy Azure dla usługi Apache Cassandra wymaga tych uprawnień. Uruchom następujące polecenie. Zastąp <SubscriptionID> element identyfikatorem subskrypcji:

    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/vnetEastUs
    

    Wartości assignee i role w poprzednim poleceniu są stałymi wartościami. Wprowadź te wartości dokładnie tak, jak pokazano w poleceniu .

Jeśli wystąpią błędy podczas uruchamiania az role assignment createpolecenia , być może nie masz uprawnień do jego uruchomienia. Sprawdź się z administratorem, aby uzyskać uprawnienia.

Tworzenie klastra z wieloma regionami

  1. Wdróż zasób klastra. Zastąp <Subscription ID> ciąg identyfikatorem subskrypcji. Wdrożenie może potrwać od 5 do 10 minut.

    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 \
       --debug
    
  2. Po utworzeniu zasobu klastra możesz utworzyć centrum danych. Najpierw utwórz centrum danych w regionie Wschodnie stany USA 2. Zastąp <SubscriptionID> ciąg identyfikatorem subskrypcji. Ta akcja może potrwać do 10 minut.

    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 3
    
  3. Utwórz centrum danych w regionie Wschodnie stany USA. Zastąp <SubscriptionID> element identyfikatorem subskrypcji:

    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 false
    

    Możesz wybrać wartość --sku spośród następujących dostępnych warstw produktów:

    • Standard_E8s_v4
    • Standard_E16s_v4
    • Standard_E20s_v4
    • Standard_E32s_v4
    • Standardowa_DS13_v2
    • Standardowa_DS14_v2
    • Standard_D8s_v4
    • Standard_D16s_v4
    • Standard_D32s_v4

    Należy również pamiętać, że --availability-zone ustawiono wartość false. Aby włączyć strefy dostępności, ustaw ją na true. Strefy dostępności zwiększają dostępność umowy serwisowej (SLA) usługi. Aby uzyskać więcej informacji, zobacz Umowy dotyczące poziomu usług dla wystąpienia zarządzanego platformy Azure dla usługi Apache Cassandra.

    Strefy dostępności nie są obsługiwane we wszystkich regionach. Wdrożenia kończą się niepowodzeniem, jeśli wybierzesz region, w którym strefy dostępności nie są obsługiwane. Aby uzyskać informacje o obsługiwanych regionach, zobacz Regiony platformy Azure ze strefami dostępności.

    Pomyślne wdrożenie stref dostępności podlega również dostępności zasobów obliczeniowych we wszystkich strefach w określonym regionie. Wdrożenia mogą zakończyć się niepowodzeniem, jeśli wybrana warstwa produktu lub pojemność nie jest dostępna we wszystkich strefach.

  4. Po utworzeniu drugiego centrum danych sprawdź stan węzłów, aby upewnić się, że wszystkie węzły Cassandra zostały pomyślnie uruchomione.

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster status\
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Następnie użyj protokołu CQLSH, aby nawiązać połączenie z klastrem. Użyj następującego zapytania CQL, aby zaktualizować strategię replikacji w każdej przestrzeni kluczy, aby uwzględnić wszystkie centra danych w klastrze (tabele systemowe są aktualizowane automatycznie):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    
  6. Na koniec, jeśli dodasz centrum danych do klastra zawierającego już dane, musisz uruchomić polecenie rebuild w celu replikowania danych historycznych. W tym przypadku załóżmy, że dc-eastus2 centrum danych ma już dane. W Azure CLI uruchom następujące polecenie, aby uruchomić nodetool rebuild na każdym węźle w nowym centrum danych dc-eastus. Zastąp <ip address> adresem IP węzła:

    az managed-cassandra cluster invoke-command \
      --resource-group $resourceGroupName \
      --cluster-name $clusterName \
      --host <ip address> \
      --command-name nodetool --arguments rebuild="" "dc-eastus2"=""
    

    Nie zezwalaj klientom aplikacji na zapisywanie w nowym centrum danych do momentu zastosowania zmian replikacji przestrzeni kluczy. W przeciwnym razie ponowne kompilowanie nie działa. Następnie należy utworzyć wniosek o pomoc techniczną , aby nasz zespół mógł uruchomić repair dla Ciebie.

Rozwiązywanie problemów

Jeśli wystąpi błąd podczas stosowania uprawnień do sieci wirtualnej przy użyciu interfejsu wiersza polecenia platformy Azure, możesz ręcznie zastosować to samo uprawnienie w witrynie Azure Portal. Przykładem błędu może być komunikat "Nie można odnaleźć użytkownika lub jednostki usługi w grafowej bazie danych programu e5007d2c-4b13-4a74-9b6a-605d99f03501." Aby uzyskać więcej informacji, zobacz Dodawanie jednostki usługi Azure Cosmos DB za pomocą witryny Azure Portal.

Przypisanie roli usługi Azure Cosmos DB jest używane tylko do celów wdrażania. Zarządzana instancja Azure dla Apache Cassandra nie ma zależności od zaplecza Azure Cosmos DB.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal używać tego klastra wystąpień zarządzanych, wykonaj następujące kroki, aby go usunąć:

  1. W menu po lewej stronie witryny Azure Portal wybierz pozycję Grupy zasobów.
  2. Z listy wybierz grupę zasobów, którą utworzyłeś dla tego Quickstartu.
  3. W okienku Przegląd grupy zasobów wybierz pozycję Usuń grupę zasobów.
  4. W następnym okienku wprowadź nazwę grupy zasobów do usunięcia, a następnie wybierz pozycję Usuń.

Następny krok

W tym szybkim starcie zostało przedstawione, jak utworzyć klaster z wieloma regionami przy użyciu interfejsu wiersza polecenia platformy Azure i wystąpienia zarządzanego platformy Azure dla usługi Apache Cassandra. Teraz możesz rozpocząć pracę z klastrem.