Udostępnij za pośrednictwem


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, co pozwala na maksymalną elastyczność i kontrolę w razie potrzeby.

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.

  • Usługa Azure Virtual Network z łącznością ze środowiskiem własnym lub lokalnym. Aby uzyskać więcej informacji na temat łączenia środowisk lokalnych z platformą Azure, zobacz artykuł Łączenie sieci lokalnej z platformą Azure .

Konfigurowanie środowiska sieciowego

Ponieważ wszystkie centra danych aprowizowane za pomocą tej usługi muszą być wdrażane w dedykowanych podsieciach przy użyciu iniekcji sieci wirtualnej, należy skonfigurować odpowiednią komunikację równorzędną 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ą sieć wirtualną w regionie Wschodnie stany USA 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 stany USA 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
    

    Uwaga

    Jawnie dodajemy różne zakresy adresów IP, aby zapewnić brak błędów podczas komunikacji równorzędnej.

  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 kolejną komunikację równorzędną 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
    

    Uwaga

    Jeśli dodasz więcej regionów, każda sieć wirtualna wymaga komunikacji równorzędnej z niej do wszystkich innych sieci wirtualnych i wszystkich innych sieci wirtualnych.

  7. Sprawdź dane wyjściowe poprzedniego polecenia. Upewnij się, że wartość "peeringState" ma teraz wartość "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
    

    Uwaga

    Wartości assignee i role w poprzednim poleceniu są stałymi wartościami. Wprowadź te wartości dokładnie tak, jak 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 pięciu 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> ciąg 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
    

    Uwaga

    Wartość dla --sku programu można wybrać z następujących dostępnych jednostek SKU:

    • 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 tę opcję na true. Strefy dostępności zwiększają dostępność umowy SLA usługi. Aby uzyskać więcej informacji, zobacz Sla for Azure Managed Instance for Apache Cassandra (Umowa SLA dla usługi Azure Managed Instance dla usługi Apache Cassandra).

    Ostrzeżenie

    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 danym regionie. Wdrożenia mogą zakończyć się niepowodzeniem, jeśli wybrana jednostka SKU lub pojemność nie jest dostępna we wszystkich strefach.

  4. Po utworzeniu drugiego centrum danych pobierz stan węzła, aby sprawdzić, czy wszystkie węzły cassandra zostały pomyślnie wyświetlone:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster status\
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Następnie nawiąż połączenie z klastrem przy użyciu protokołu CQLSH i 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 zostaną zaktualizowane automatycznie):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    
  6. Na koniec, jeśli dodasz centrum danych do klastra, w którym znajdują się już dane, musisz uruchomić rebuild polecenie w celu replikowania danych historycznych. W tym przypadku przyjmiemy, że dc-eastus2 centrum danych zawiera już dane. W interfejsie wiersza polecenia platformy Azure uruchom poniższe polecenie, aby wykonać polecenie nodetool rebuild w każdym węźle w nowym dc-eastus centrum danych, zastępując element <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"=""
    

    Ostrzeżenie

    Nie należy zezwalać klientom aplikacji na zapisywanie w nowym centrum danych do momentu zastosowania zmian replikacji przestrzeni kluczy. W przeciwnym razie ponowne kompilowanie nie będzie działać i musisz utworzyć wniosek o pomoc techniczną, aby nasz zespół mógł działać repair w Twoim imieniu.

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ć nie można odnaleźć użytkownika lub jednostki usługi w grafowej bazie danych "e5007d2c-4b13-4a74-9b6a-605d99f03501". Aby uzyskać więcej informacji, zobacz Dodawanie jednostki usługi Azure Cosmos DB przy użyciu witryny Azure Portal.

Uwaga

Przypisanie roli usługi Azure Cosmos DB jest używane tylko do celów wdrażania. Wystąpienie zarządzane platformy Azure dla usługi Apache Cassandra nie ma zależności zaplecza w usłudze Azure Cosmos DB.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal używać tego klastra wystąpień zarządzanych, usuń go, wykonując następujące czynności:

  1. W menu po lewej stronie witryny Azure Portal wybierz pozycję Grupy zasobów.
  2. Z listy wybierz grupę zasobów utworzoną na potrzeby tego przewodnika Szybki start.
  3. W okienku Przegląd grupy zasobów wybierz pozycję Usuń grupę zasobów.
  4. W następnym oknie wprowadź nazwę grupy zasobów do usunięcia, a następnie wybierz pozycję Usuń.

Następne kroki

W tym przewodniku Szybki start przedstawiono sposób tworzenia klastra 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.