Hızlı Başlangıç: Azure CLI kullanarak Apache Cassandra kümesi için Azure Yönetilen Örneği 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, Apache Cassandra için Azure Yönetilen Örneği ile küme oluşturmak üzere Azure CLI komutlarının nasıl kullanılacağı gösterilmektedir. Ayrıca bir veri merkezi oluşturma ve veri merkezi içinde düğümlerin ölçeğini artırma veya azaltma gösterilir.
Ö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.
Ş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.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önemli
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.
Yönetilen örnek kümesi oluşturma
Azure portalda oturum açma
Azure CLI'da abonelik kimliğinizi ayarlayın:
az account set -s <Subscription_ID>
Ardından, kaynak grubunuzda ayrılmış bir alt ağ ile bir Sanal Ağ oluşturun:
az network vnet create -n <VNet_Name> -l eastus2 -g <Resource_Group_Name> --subnet-name <Subnet Name>
Not
Apache Cassandra için Azure Yönetilen Örneği dağıtımı için İnternet erişimi gerekir. İnternet erişiminin kısıtlandığı ortamlarda dağıtım başarısız olur. Yönetilen Cassandra'nın düzgün çalışması için gerekli olan aşağıdaki önemli Azure hizmetlerine sanal ağınızdaki erişimi engellemediğinizden emin olun:
- Azure Storage
- Azure KeyVault
- Azure Sanal Makine Ölçek Kümeleri
- Azure İzleme
- Microsoft Entra Kimlik
- Azure Güvenlik
yönetilen örneğin gerektirdiği bazı özel izinleri Sanal Ağ uygulayın.
az role assignment create
komutunu kullanarak ,<resourceGroupName>
ve<vnetName>
değerlerini uygun değerlerle değiştirin<subscriptionID>
: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
assignee
Önceki komuttaki verole
değerleri sabit değerlerdir, bu değerleri tam olarak komutta belirtildiği gibi girin. Bunun yapılmaması kümeyi oluştururken hatalara neden olur. Bu komutu yürütürken herhangi bir hatayla karşılaşırsanız, çalıştırma izniniz olmayabilir, izinler için lütfen yöneticinize ulaşın.Ardından az managed-cassandra cluster create komutunu kullanarak yeni oluşturduğunuz Sanal Ağ kümeyi oluşturun. Değişkenin değerini
delegatedManagementSubnetId
aşağıdaki komutu çalıştırın:Not
Aşağıda sağlanacak değişkenin
delegatedManagementSubnetId
değeri, yukarıdaki komutta sağladığınız değerle--scope
tam olarak aynıdır:resourceGroupName='<Resource_Group_Name>' clusterName='<Cluster_Name>' location='eastus2' delegatedManagementSubnetId='/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/<VNet name>/subnets/<subnet name>' initialCassandraAdminPassword='myPassword' cassandraVersion='3.11' # set to 4.0 for a Cassandra 4.0 cluster az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --initial-cassandra-admin-password $initialCassandraAdminPassword \ --cassandra-version $cassandraVersion \ --debug
Son olarak, az managed-cassandra datacenter create komutunu kullanarak her düğüm için 4 P30 disk ekli standart D8s v4 VM SKU olmak üzere üç düğüm içeren küme için bir veri merkezi oluşturun :
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 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. Diğer ayrıntılar için burada SLA ayrıntılarının tamamını gözden geçirin.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 buraya bakın. 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.
Veri merkezi oluşturulduktan sonra, veri merkezinde düğümlerin ölçeğini büyütmek veya küçültmek istiyorsanız az managed-cassandra datacenter update komutunu çalıştırın. parametresinin
node-count
değerini istenen değerle değiştirin:resourceGroupName='<Resource_Group_Name>' clusterName='<Cluster Name>' dataCenterName='dc1' dataCenterLocation='eastus2' az managed-cassandra datacenter update \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterName \ --node-count 9
Kümenize bağlanma
Apache Cassandra için Azure Yönetilen Örneği, genel IP adreslerine sahip düğümler oluşturmaz. Yeni oluşturduğunuz Cassandra kümenize bağlanmak için sanal ağ içinde başka bir kaynak oluşturmanız gerekir. Bu kaynak bir uygulama veya Apache'nin açık kaynak sorgu aracı CQLSH'nin yüklü olduğu bir sanal makine olabilir. Ubuntu sanal makinesi dağıtmak için Resource Manager şablonu kullanabilirsiniz.
CQLSH'den bağlanma
Sanal makine dağıtıldıktan sonra SSH kullanarak makineye bağlanın ve aşağıdaki komutlarda gösterildiği gibi CQLSH'yi yükleyin:
# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre
# Install the Cassandra libraries in order to get CQLSH:
echo "deb http://archive.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -
sudo apt-get update
sudo apt-get install cassandra
# Export the SSL variables:
export SSL_VERSION=TLSv1_2
export SSL_VALIDATE=false
# Connect to CQLSH (replace <IP> with the private IP addresses of a node in your Datacenter):
host=("<IP>")
initial_admin_password="Password provided when creating the cluster"
cqlsh $host 9042 -u cassandra -p $initial_admin_password --ssl
Bir uygulamadan bağlanma
CQLSH'de olduğu gibi, desteklenen Apache Cassandra istemci sürücülerinden birini kullanarak bir uygulamadan bağlanmak için SSL şifrelemesinin etkinleştirilmesi ve sertifika doğrulamasının devre dışı bırakılması gerekir. Java, .NET, Node.js ve Python kullanarak Apache Cassandra için Azure Yönetilen Örneği'ne bağlanma örneklerine bakın.
Küme düğümlerinizin I.P adreslerini uygun etki alanıyla eşlemediğiniz sürece sertifika doğrulaması çalışmayacağından sertifika doğrulamayı devre dışı bırakmanız önerilir. Herhangi bir uygulama için SSL sertifika doğrulaması yapmanızı zorunlu kılan bir iç ilkeniz varsa, her düğüm için konak dosyanızda gibi 10.0.1.5 host1.managedcassandra.cosmos.azure.com
girdiler ekleyerek bunu kolaylaştırabilirsiniz. Bu yaklaşımı benimsediğinizde, düğümleri her ölçeklendirdiğinizde yeni girdiler eklemeniz de gerekir.
Java için, uygulamaların kuyruk gecikmesine duyarlı olduğu kurgusal yürütme ilkesini etkinleştirmenizi kesinlikle öneririz. Bunun nasıl çalıştığını ve ilkeyi nasıl etkinleştirebileceğinizi gösteren bir tanıtımı burada bulabilirsiniz.
Not
Çoğu durumda Apache Cassandra için Azure Yönetilen Örneği'ne bağlanmak için sertifikaların (rootCA, düğüm veya istemci, güven depoları vb.) yapılandırılması veya yüklenmesi gerekli olmamalıdır. SSL şifrelemesi, istemci tarafından kullanılan çalışma zamanının varsayılan güven deposu ve parolası kullanılarak etkinleştirilebilir (bkz . Java, .NET, Node.js ve Python örnekleri), çünkü Apache Cassandra sertifikaları için Azure Yönetilen Örneği bu ortam tarafından güvenilir olacaktır. Nadir durumlarda, sertifikaya güvenilmiyorsa, sertifikayı güven deposuna eklemeniz gerekebilir.
İstemci sertifikalarını yapılandırma (isteğe bağlı)
İstemci sertifikalarının yapılandırılması isteğe bağlıdır. Yukarıdaki adımlar uygulandığı sürece bir istemci uygulaması Apache Cassandra için Azure Yönetilen Örneği'ne bağlanabilir. Ancak tercih ederseniz, ayrıca kimlik doğrulaması için istemci sertifikaları oluşturabilir ve yapılandırabilirsiniz. Genel olarak, sertifika oluşturmanı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.
- Sertifika yetkilisi tarafından imzalanan sertifikalar. Bu otomatik olarak imzalanan bir CA, hatta genel bir CA olabilir. Bu durumda kök CA sertifikasına (SSL sertifikalarını üretim için hazırlama yönergelerine bakın) ve tüm aracılara (varsa) ihtiyacımız vardır.
İstemciden düğüme sertifika kimlik doğrulamasını veya karşılıklı Aktarım Katmanı Güvenliği'ni (mTLS) uygulamak istiyorsanız, sertifikaları Azure CLI aracılığıyla sağlamanız gerekir. Aşağıdaki komut, istemci sertifikalarınızı Cassandra Yönetilen Örnek kümeniz için güven deposuna yükler ve uygular (ayarları düzenlemeniz cassandra.yaml
gerekmez). Uygulandıktan sonra, kümeniz bir istemci bağlandığında cassandra'nın sertifikaları doğrulamasını gerektirir (bkz require_client_auth: true
. Cassandra client_encryption_options).
resourceGroupName='<Resource_Group_Name>'
clusterName='<Cluster Name>'
az managed-cassandra cluster update \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--client-certificates /usr/csuser/clouddrive/rootCert.pem /usr/csuser/clouddrive/intermediateCert.pem
Sorun giderme
Azure CLI kullanarak Sanal Ağ izin uygularken 'e5007d2c-4b13-4a74-9b6a-605d99f03501' için graf veritabanında kullanıcı veya hizmet sorumlusu bulunamıyor gibi bir hatayla karşılaşırsanız, Aynı izni Azure portalından el ile uygulayabilirsiniz. Bunun nasıl yapıldığını burada öğ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 Cosmos DB'de arka uç bağımlılığı yoktur.
Kaynakları temizleme
Artık gerekli olmadığında komutunu kullanarak az group delete
kaynak grubunu, yönetilen örneği ve tüm ilgili kaynakları kaldırabilirsiniz:
az group delete --name <Resource_Group_Name>
Sonraki adımlar
Bu hızlı başlangıçta, Azure CLI kullanarak Apache Cassandra için Azure Yönetilen Örneği oluşturmayı öğrendiniz. Artık kümeyle çalışmaya başlayabilirsiniz: