Hızlı Başlangıç: Apache Cassandra için Azure Yönetilen Örneği ile karma küme yapılandırma
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, hibrit kümeyi yapılandırmak için Azure CLI komutlarının nasıl kullanabileceğiniz gösterildi. Şirket içinde veya şirket içinde barındırılan bir ortamda mevcut veri merkezleriniz varsa, bu kümeye başka veri merkezleri eklemek ve bunları korumak için Apache Cassandra için Azure Yönetilen Örneği'ni kullanabilirsiniz.
Önkoşullar
Azure Cloud Shell'Da Bash ortamını kullanın.
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.
Karma küme yapılandırma
Sanal makinede oturum Azure portal ve Sanal Ağ kaynağınıza gidin.
Alt ağlar sekmesini açın ve yeni bir alt ağ oluşturun. Alt ağ ekle formundaki alanlar hakkında daha fazla bilgi edinmek için Sanal Ağ makalesine bakın:
Not
Apache Cassandra için Azure Yönetilen Örneğinin dağıtımı için İnternet erişimi gerekir. İnternet erişiminin kısıtlanmış olduğu ortamlarda dağıtım başarısız oluyor. Yönetilen Cassandra'nın düzgün çalışması için gerekli olan aşağıdaki önemli Azure hizmetleri için sanal ağ içinde erişimi engellemeyemiyor olun. Ip adresi ve bağlantı noktası bağımlılıklarının kapsamlı bir listesini burada da bulabilirsiniz.
- Azure Storage
- Azure KeyVault
- Azure Sanal Makine Ölçek Kümeleri
- Azure İzleme
- Azure Active Directory
- Azure Güvenlik
Şimdi Azure CLI kullanarak Cassandra Yönetilen Örneği'nin gerektirdiği sanal ağ ve alt ağ için bazı özel izinler uygulayacak. ,
az role assignment createve değerlerini uygun<subscriptionID><resourceGroupName>değerlerle<vnetName>değiştirerek komutunu kullanın:az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>Not
Önceki
assigneerolekomutta yer alan ve değerleri sırasıyla sabit hizmet ilkesi ve rol tanımlayıcılarıdır.Ardından, karma kümemiz için kaynakları yapılandıracağız. Zaten bir kümeniz olduğu için, buradaki küme adı yalnızca mevcut kümenizin adını tanımlamak için bir mantıksal kaynak olur. Aşağıdaki betikte ve değişkenlerini tanımlarken mevcut
clusterNameclusterNameOverridekümenizin adını kullanmaya emin olun.Ayrıca en azından mevcut veri merkezinizin çekirdek düğümlerine ve düğümden düğüme şifreleme için gereken sertifikalara ihtiyacınız vardır. Apache Cassandra için Azure Yönetilen Örneği, veri merkezleri arasındaki iletişim için düğümden düğüme şifreleme gerektirir. Mevcut kümenize düğümden düğüme şifreleme uygulamadıysanız bunu uygulamanız gerekir. Buradaki belgelere bakın. Sertifikaların konumunun yolunu sağlamak gerekir. Her sertifika PEM biçiminde olmalıdır, örneğin
-----BEGIN CERTIFICATE-----\n...PEM format 1...\n-----END CERTIFICATE-----. Genel olarak, sertifikaları uygulamanın iki yolu vardır:Otomatik olarak imzalanan sertifikalar. Bu, her düğüm için özel ve genel (CA olmayan) bir sertifika anlamına gelir; bu durumda tüm genel sertifikalara ihtiyacımız vardır.
CA tarafından imzalanan sertifikalar. Bu otomatik olarak imzalanan BIR CA veya hatta genel bir CA olabilir. Bu durumda kök CA sertifikasına (üretim için SSLsertifikalarını hazırlama yönergelerine bakın) ve tüm aracılara (varsa) ihtiyacımız vardır.
İsteğe bağlı olarak, istemciden düğüme sertifikalar da (buraya bakın) kullandıysanız, karma kümeyi oluştururken bunları aynı biçimde de sağlamış olursanız. Aşağıdaki örneğine bakın.
Not
Aşağıda temin
delegatedManagementSubnetIdedilen değişkenin değeri, yukarıdaki komutta sağlanan--scopedeğeriyle tam olarak aynıdır:resourceGroupName='MyResourceGroup' clusterName='cassandra-hybrid-cluster-legal-name' clusterNameOverride='cassandra-hybrid-cluster-illegal-name' location='eastus2' delegatedManagementSubnetId='/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>' # You can override the cluster name if the original name is not legal for an Azure resource: # overrideClusterName='ClusterNameIllegalForAzureResource' # the default cassandra version will be v3.11 az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --external-seed-nodes 10.52.221.2 10.52.221.3 10.52.221.4 \ --external-gossip-certificates /usr/csuser/clouddrive/rootCa.pem /usr/csuser/clouddrive/gossipKeyStore.crt_signed # optional - add your existing datacenter's client-to-node certificates (if implemented): # --client-certificates /usr/csuser/clouddrive/rootCa.pem /usr/csuser/clouddrive/nodeKeyStore.crt_signedNot
Kümeniz düğümden düğüme ve istemciden düğüme şifrelemeye zaten sahipse, mevcut istemcinizin ve/veya ssl sertifikalarının nerede tutulmakta olduğunu biliyor olun. Kesin değilsanız, sertifikaları yazdırmak için
keytool -list -keystore <keystore-path> -rfc -storepass <password>çalıştırabilirsiniz.Küme kaynağı oluşturulduktan sonra, küme kurulum ayrıntılarını almak için aşağıdaki komutu çalıştırın:
resourceGroupName='MyResourceGroup' clusterName='cassandra-hybrid-cluster' az managed-cassandra cluster show \ --cluster-name $clusterName \ --resource-group $resourceGroupName \Önceki komut yönetilen örnek ortamı hakkında bilgi döndürür. Mevcut veri merkezinize düğümler için güven deposuna yükleyemediklerine sertifikalar gerekir. Aşağıdaki ekran görüntüsünde, önceki komutun çıktısı ve sertifikaların biçimi görüntülenir:
Not
Yukarıdaki komuttan döndürülen sertifikalar metin olarak temsil edilen satır sonlarını içerir, örneğin
\r\n. Mevcut veri merkezinizin güven deposuna aktarmayı denemeden önce her sertifikayı bir dosyaya kopyalamanız ve biçimlendirmeniz gerekir.İpucu
Yukarıdaki ekran görüntüde gösterilen dizi değerini bir dosyaya kopyalayın ve sertifikaları biçimlendirmek ve her biri için ayrı pem dosyaları oluşturmak üzere aşağıdaki bash betiği (platform için jq indirip yüklemeniz
gossipCertificatesgerekir) kullanın.readarray -t cert_array < <(jq -c '.[]' gossipCertificates.txt) # iterate through the certs array, format each cert, write to a numbered file. num=0 filename="" for item in "${cert_array[@]}"; do let num=num+1 filename="cert$num.pem" cert=$(jq '.pem' <<< $item) echo -e $cert >> $filename sed -e '1d' -e '$d' -i $filename doneArdından, karma kümede yeni bir veri merkezi oluşturun. Değişken değerlerini küme ayrıntılarıyla değiştir mutlaka kullanın:
resourceGroupName='MyResourceGroup' clusterName='cassandra-hybrid-cluster' dataCenterName='dc1' dataCenterLocation='eastus2' 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 9 --sku $virtualMachineSKU \ --disk-capacity $noOfDisksPerNode \ --availability-zone falseNot
için
--skudeğ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-zoneayarlanmış olduğunu dafalseunutmayın. Kullanılabilirlik bölgelerini etkinleştirmek için bunu olaraktrueayarlayı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.
Yeni veri merkezi oluşturulduktan sonra, ayrıntılarını görüntülemek için veri merkezi göster komutunu çalıştırın:
resourceGroupName='MyResourceGroup' clusterName='cassandra-hybrid-cluster' dataCenterName='dc1' az managed-cassandra datacenter show \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterNameÖnceki komut, yeni veri merkezi çekirdek düğümlerini çıkış olarak gösterir:
Şimdi yeni veri merkezinizin çekirdek düğümlerini cassandra.yaml dosyasındaki mevcut veri merkezinizin çekirdek düğümü yapılandırmasına ekleyin. Ayrıca, her sertifika için komutunu kullanarak daha önce mevcut kümenizin her düğümü için güven deposuna toplanmış yönetilen örnek
keytoolsertifikalarını yükleyin:keytool -importcert -keystore generic-server-truststore.jks -alias CassandraMI -file cert1.pem -noprompt -keypass myPass -storepass truststorePassNot
Daha fazla veri merkezi eklemek için yukarıdaki adımları yineleebilirsiniz ancak yalnızca çekirdek düğümlerine ihtiyacınız vardır.
Son olarak, her anahtar alanı ç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:
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'on-premise-dc': 3, 'managed-instance-dc': 3};Ayrıca parola tablolarını da güncelleştirmeniz gerekir:
ALTER KEYSPACE "system_auth" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'on-premise-dc': 3, 'managed-instance-dc': 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:
- Kaynak grupları'nın sol menüsünden Azure portal grupları'ı 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 kullanarak karma küme oluşturma hakkında bilgi edindiniz. Artık kümeyle çalışmaya başlayabilirsiniz.
