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.

Ö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

  1. Azure portalda oturum açma

  2. Azure CLI'da abonelik kimliğinizi ayarlayın:

    az account set -s <Subscription_ID>
    
  3. 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
  4. 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 ve role 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.

  5. 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
    
  6. 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ı falseda unutmayın. Kullanılabilirlik alanlarını etkinleştirmek için bunu olarak trueayarlayı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.

  7. 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: