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, saf açık kaynak Apache Cassandra kümeleri için tam olarak yönetilen bir hizmettir. Hizmet ayrıca her iş yükünün belirli gereksinimlerine bağlı olarak yapılandırmaların geçersiz kılınmasına olanak tanıyarak gerektiğinde maksimum esneklik ve denetim sağlar.
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 kullanılacağı gösterilmektedir.
Önkoşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
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. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısı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 üzeri 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ı ile Azure Sanal Ağ. Şirket içi ortamları Azure'a bağlama hakkında daha fazla bilgi için Şirket içi ağı Azure'a bağlama 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, dağıtım öncesinde uygun ağ eşlemesini yapılandırın. Bu hızlı başlangıç için, ayrı bölgelerde iki veri merkezi olan bir küme oluşturun: Doğu ABD ve Doğu ABD 2. İlk olarak, her bölge için sanal ağları oluşturun.
Azure Portal’ında oturum açın.
cassandra-mi-multi-region adlı bir kaynak grubu oluşturun:
az group create --location eastus2 --name cassandra-mi-multi-region
Ayrılmış bir alt ağ ile Doğu ABD 2'de ilk sanal ağı oluşturun:
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
Ayrılmış bir alt ağ ile doğu ABD'de ikinci sanal ağı oluşturun:
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
Not
Eşleme sırasında hata olmadığından emin olmak için açıkça farklı IP adresi aralıkları ekliyoruz.
İlk sanal ağı ikinci sanal ağa eşler:
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
İ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 \ --resource-group cassandra-mi-multi-region \ --name MyVnet2ToMyVnet1 \ --vnet-name vnetEastUs \ --remote-vnet vnetEastUs2 \ --allow-vnet-access \ --allow-forwarded-traffic
Not
Daha fazla bölge eklerseniz, her sanal ağdan diğer tüm sanal ağlara ve diğer tüm sanal ağlara eşleme gerektirir.
Önceki komutun çıkışını denetleyin. "peeringState" değerinin artık "Bağlı" olduğundan emin olun. Aşağıdaki komutu çalıştırarak da bu sonucu de kontrol edebilirsiniz:
az network vnet peering show \ --name MyVnet1ToMyVnet2 \ --resource-group cassandra-mi-multi-region \ --vnet-name vnetEastUs2 \ --query peeringState
Her iki Sanal Ağ de bazı özel izinler uygulayın. Apache Cassandra için Azure Yönetilen Örneği bu izinleri gerektirir. Aşağıdaki komutu çalıştırın. değerini abonelik kimliğiniz ile değiştirin
<SubscriptionID>
: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
assignee
Önceki komuttaki verole
değerleri sabit değerlerdir. Bu değerleri tam olarak komutunda olduğu gibi girin.
komutunu çalıştırdığınızda az role assignment create
hatalarla karşılaşırsanız, çalıştırma izniniz olmayabilir. İzinler için yöneticinize başvurun.
Çok bölgeli küme oluşturma
Küme kaynağını dağıtın. değerini abonelik kimliğiniz ile değiştirin
<Subscription ID>
. Dağıtım beş ile 10 dakika 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
Küme kaynağı oluşturulduktan sonra bir veri merkezi oluşturmaya hazırsınız demektir. İlk olarak, Doğu ABD 2'de bir veri merkezi oluşturun. değerini abonelik kimliğiniz ile değiştirin
<SubscriptionID>
. Bu eylem 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
Doğu ABD'de bir veri merkezi oluşturun. değerini abonelik kimliğiniz ile değiştirin
<SubscriptionID>
.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 değeri
--sku
aşağıdaki kullanılabilir SKU'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 değerinin
--availability-zone
olarak ayarlandığınıfalse
da unutmayın. Kullanılabilirlik alanlarını etkinleştirmek için bunu olaraktrue
ayarlayın. Kullanılabilirlik alanları, hizmetin kullanılabilirlik SLA'sını artırır. Daha fazla bilgi için bkz . Apache Cassandra için Azure Yönetilen Örneği SLA'sı.Uyarı
Kullanılabilirlik alanları tüm bölgelerde desteklenmez. Kullanılabilirlik alanlarının desteklenmediği bir bölge seçerseniz dağıtımlar başarısız olur. Desteklenen bölgeler için bkz . Kullanılabilirlik alanları olan Azure bölgeleri.
Kullanılabilirlik alanlarının başarılı dağıtımı, belirtilen bölgedeki tüm bölgelerdeki işlem kaynaklarının kullanılabilirliğine de tabidir. Seçtiğiniz SKU veya kapasite tüm bölgelerde kullanılamıyorsa dağıtımlar başarısız olabilir.
İkinci veri merkezi oluşturulduktan sonra, tüm Cassandra düğümlerinin başarıyla oluşturulduğunu doğrulamak için düğüm durumunu alın:
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster status\ --cluster-name $clusterName \ --resource-group $resourceGroupName
Ardından CQLSH kullanarak kümenize bağlanın ve her anahtar alanında çoğaltma stratejisini küme genelindeki tüm veri merkezlerini içerecek şekilde güncelleştirmek için aşağıdaki CQL sorgusunu kullanın (sistem tabloları otomatik olarak güncelleştirilir):
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
Son olarak, verilerin zaten bulunduğu bir kümeye veri merkezi ekliyorsanız, geçmiş verileri çoğaltmak için komutunu çalıştırmanız
rebuild
gerekir. Bu durumda, veri merkezinde zaten veri olduğunudc-eastus2
varsayacağız. Azure CLI'da, yenidc-eastus
veri merkezinizdeki her düğümde yürütmeknodetool rebuild
için aşağıdaki komutu çalıştırın ve yerine düğümün IP adresini yazın<ip address>
:az managed-cassandra cluster invoke-command \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --host <ip address> \ --command-name nodetool --arguments rebuild="" "dc-eastus2"=""
Uyarı
Anahtar alanı çoğaltma değişiklikleri uygulanana kadar uygulama istemcilerinin yeni veri merkezine yazmasına izin vermemelisiniz. Aksi takdirde yeniden derleme çalışmaz ve ekibimizin sizin yerinize çalışabilmesi için bir destek isteği oluşturmanız
repair
gerekir.
Sorun giderme
Azure CLI kullanarak Sanal Ağ izin uygularken hatayla karşılaşırsanız, Azure portalından aynı izni el ile uygulayabilirsiniz. Örnek bir hata, 'e5007d2c-4b13-4a74-9b6a-605d99f03501' için graf veritabanında kullanıcı veya hizmet sorumlusu bulunamıyor olabilir. Daha fazla bilgi için bkz . Azure cosmos DB hizmet sorumlusu eklemek için Azure portalını kullanma.
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 Cosmos DB'de arka uç bağımlılığı yoktur.
Kaynakları temizleme
Bu yönetilen örnek kümesini kullanmaya devam etmeyecekseniz, aşağıdaki adımları izleyerek silin:
- Azure portalının sol tarafındaki menüden Kaynak grupları'nı seçin.
- Listeden bu hızlı başlangıç için oluşturduğunuz kaynak grubunu seçin.
- Kaynak grubuna Genel Bakış bölmesinde Kaynak grubunu sil'i seçin.
- 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'ni kullanarak çok bölgeli küme oluşturmayı öğrendiniz. Artık kümeyle çalışmaya başlayabilirsiniz.