Hızlı Başlangıç: Apache Cassandra için Azure Yönetilen Örneği ile çok bölgeli küme oluşturma

Apache Cassandra için Azure Yönetilen Örneği, yönetilen açık kaynak Apache Cassandra veri merkezleri için otomatik dağıtım ve ölçeklendirme işlemleri sağlar. Bu hizmet hibrit senaryoları hızlandırmanıza ve devam eden bakımı azaltmanıza yardımcı olur.

Bu hızlı başlangıçta, Azure'da çok bölgeli bir küme yapılandırmak için Azure CLI komutlarının nasıl kullanabileceğiniz gösterildi.

Önkoşullar

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Bu makale, Azure CLI 2.30.0 veya daha yeni bir sürümü gerektirir. Azure Cloud Shell kullanıyorsanız, en son sürüm zaten yüklüdür.

  • Şirket içinde barındırılan veya şirket içi ortamınıza bağlantısı olan Azure Sanal Ağı. Şirket içi ortamları Azure'a bağlama hakkında daha fazla bilgi için Bağlan azure ağına bağlanma makalesine bakın.

Ağ ortamını ayarlama

Bu hizmetle sağlanan tüm veri merkezlerinin sanal ağ ekleme kullanılarak ayrılmış alt ağlara dağıtılması gerektiğinden, çok bölgeli kümenizin düzgün çalışmasını sağlamak için dağıtımdan önce uygun ağ eşlemesini yapılandırmanız gerekir. Ayrı bölgelerde iki veri merkezi olan bir küme oluşturuz: Doğu ABD ve Doğu ABD 2. İlk olarak, her bölge için Sanal Ağlar oluşturmamız gerekir.

  1. Azure Portal oturum açın.

  2. "cassandra-mi-multi-region" adlı bir kaynak grubu oluşturma

    az group create -l eastus2 -n cassandra-mi-multi-region
    
  3. Ayrılmış bir alt ağ ile Doğu ABD 2 sanal ağı oluşturun:

    az network vnet create \
      -n vnetEastUs2 \
      -l eastus2 \
      -g cassandra-mi-multi-region \
      --address-prefix 10.0.0.0/16 \
      --subnet-name dedicated-subnet
    
  4. Şimdi ayrılmış bir alt ağ ile Doğu ABD sanal ağı oluşturun:

     az network vnet create \
       -n vnetEastUs \
       -l eastus \
       -g cassandra-mi-multi-region \
       --address-prefix 192.168.0.0/16 \
       --subnet-name dedicated-subnet
    

    Not

    Eşleme sırasında hataya neden olmayan farklı IP adresi aralıklarını açıkça ekleriz.

  5. Şimdi ilk sanal ağı ikinci sanal ağ ile eşlememiz gerekiyor:

    az network vnet peering create \
      -g cassandra-mi-multi-region \
      -n MyVnet1ToMyVnet2 \
      --vnet-name vnetEastUs2 \
      --remote-vnet vnetEastUs \
      --allow-vnet-access \
      --allow-forwarded-traffic
    
  6. İki sanal ağı bağlamak için ikinci sanal ağ ile ilk sanal ağ arasında başka bir eşleme oluşturun:

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

    Not

    Daha fazla bölge eklerse, her sanal ağdan diğer tüm sanal ağlara ve diğer tüm sanal ağlardan buna eşleme gerektirir.

  7. Önceki komutun çıktısını kontrol edin ve "peeringState" değerinin artık "Bağlı" olduğundan emin olun. Aşağıdaki komutu çalıştırarak da bunu kontrol edin:

    az network vnet peering show \
      --name MyVnet1ToMyVnet2 \
      --resource-group cassandra-mi-multi-region \
      --vnet-name vnetEastUs2 \
      --query peeringState
    
  8. Ardından, her iki Sanal Ağ için apache Cassandra için Azure Yönetilen Örneği tarafından gerekli olan bazı özel izinleri de uygulayabilirsiniz. Aşağıdakini çalıştırın ve yerine abonelik <SubscriptionID> kimliğinizi girin:

    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
    

    Not

    Önceki assignee role komutta yer alan ve değerleri sabit değerlerdir, bu değerleri komutta tam olarak belirtildiği gibi girin. Bunu yapmama, küme oluşturulurken hatalara neden olur. Bu komutu yürütürken herhangi bir hatayla karşılaşırsanız çalıştırma izinlerine sahip olamayabilirsiniz, lütfen izinler için yöneticinize ulaşabilirsiniz.

Çok bölgeli küme oluşturma

  1. Artık uygun ağımız olduğu için küme kaynağını dağıtmaya hazırız (yerine abonelik <Subscription ID> kimliğinizi girin). 5-10 dakika arasında sürebilir:

    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. Küme kaynağı oluşturulduğunda, bir veri merkezi oluşturmak için hazır oluruz. İlk olarak, Doğu ABD 2 (yerine abonelik <SubscriptionID> kimliğinizi girin) bir veri merkezi oluşturun. Bu 10 dakika kadar sürebilir:

    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. Ardından, Doğu ABD (yerine abonelik <SubscriptionID> kimliğinizi girin) bir veri merkezi oluşturun:

    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
    

    Not

    için --sku değer, aşağıdaki kullanılabilir SKUS'lardan seçilebilir:

    • 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

    ayrıca olarak --availability-zone ayarlanmış olduğunu da false unutmayın. Kullanılabilirlik bölgelerini etkinleştirmek için bunu olarak true ayarlayın. Kullanılabilirlik alanları, hizmetin kullanılabilirlik SLA'sı artar. Diğer ayrıntılar için buradaki SLA ayrıntılarının tamamını gözden geçirebilirsiniz.

    Uyarı

    Kullanılabilirlik alanları tüm bölgelerde desteklenmiyor. Kullanılabilirlik alanları'nın destekçisi olmadığını bir bölgeyi seçmeniz dağıtımlar başarısız olur. Desteklenen bölgeler için buraya bakın. Kullanılabilirlik alanlarının başarılı dağıtımı, verilen bölgedeki tüm bölgelerde işlem kaynaklarının kullanılabilirlik durumuna da tabidir. Seçtiğiniz SKU veya kapasite tüm bölgelerde kullanılamıyorsa dağıtımlar başarısız olabilir.

  4. İkinci veri merkezi oluşturulduktan sonra, tüm Cassandra düğümlerinin başarıyla geldiğini doğrulamak için düğüm durumunu alın:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster node-status \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Son olarak, CQLSH kullanarak kümenize bağlanarak aşağıdaki CQL sorgusunu kullanarak her anahtar alanı içinde çoğaltma stratejisini küme genelindeki tüm veri merkezlerini içerecek şekilde güncelleştirin:

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    

    Ayrıca parola tablolarını da güncelleştirmeniz gerekir:

     ALTER KEYSPACE "system_auth" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3}
    

Sorun giderme

Azure CLI kullanarak Sanal Ağınıza izinler uygularken 'e5007d2c-4b13-4a74-9b6a-605d99f03501' için graf veritabanında kullanıcı veya hizmet sorumlusu bulunamaz gibi bir hatayla karşılaşırsanız, aynı izni Azure portal. Bunu burada yapmayı öğrenin.

Not

Azure Cosmos DB rol ataması yalnızca dağıtım amacıyla kullanılır. Apache Cassandra için Azure Yönetilen Örneği'nin Azure veritabanı üzerinde arka uç Cosmos yoktur.

Kaynakları temizleme

Bu yönetilen örnek kümesi kullanmaya devam edecek değilsanız, aşağıdaki adımları kullanarak kümeyi silin:

  1. Kaynak grupları'nın sol menüsünden Azure portal grupları'ı seçin.
  2. Listeden bu hızlı başlangıç için oluşturduğunuz kaynak grubunu seçin.
  3. Kaynak grubuna Genel Bakış bölmesinde Kaynak grubunu sil'i seçin.
  4. Sonraki pencerede, silinecek kaynak grubunun adını girin ve Sil'i seçin.

Sonraki adımlar

Bu hızlı başlangıçta, Azure CLI ve Apache Cassandra için Azure Yönetilen Örneği kullanarak çok bölgeli küme oluşturma hakkında bilgi edindiniz. Artık kümeyle çalışmaya başlayabilirsiniz.