Snabbstart: Skapa en Hanterad Azure-instans för Apache Cassandra-kluster med Hjälp av Azure CLI

Azure Managed Instance för Apache Cassandra tillhandahåller automatiserade distributioner och skalningsåtgärder för hanterade Apache Cassandra-datacenter med öppen källkod. Den här tjänsten hjälper dig att påskynda hybridscenarier och minska pågående underhåll.

Den här snabbstarten visar hur du använder Azure CLI-kommandon för att skapa ett kluster med Azure Managed Instance för Apache Cassandra. Den visar också hur du skapar ett datacenter och skalar noder uppåt eller nedåt i datacentret.

Förutsättningar

  • Använd bash-miljön i Azure Cloud Shell.

    Starta Cloud Shell i ett nytt fönster

  • Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.

    • Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.

    • Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.

Viktigt

Den här artikeln kräver Azure CLI version 2.30.0 eller senare. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.

Skapa ett hanterat instanskluster

  1. Logga in på Azure-portalen

  2. Ange ditt prenumerations-ID i Azure CLI:

    az account set -s <Subscription_ID>
    
  3. Skapa sedan en Virtual Network med ett dedikerat undernät i resursgruppen:

    az network vnet create -n <VNet_Name> -l eastus2 -g <Resource_Group_Name> --subnet-name <Subnet Name>
    

    Anteckning

    Distributionen av en Hanterad Azure-instans för Apache Cassandra kräver Internetåtkomst. Distributionen misslyckas i miljöer där Internetåtkomsten är begränsad. Kontrollera att du inte blockerar åtkomsten i ditt VNet till följande viktiga Azure-tjänster som krävs för att Managed Cassandra ska fungera korrekt:

    • Azure Storage
    • Azure KeyVault
    • Azure Virtual Machine Scale Sets
    • Azure Monitoring
    • Azure Active Directory
    • Säkerhet i Azure
  4. Tillämpa vissa särskilda behörigheter på Virtual Network som krävs av den hanterade instansen. Använd kommandot az role assignment create och ersätt , och med lämpliga <subscriptionID> <resourceGroupName> <vnetName> värden:

    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>
    

    Anteckning

    Värdena assignee och i föregående kommando är fasta role värden. Ange dessa värden exakt som det anges i kommandot. Om du inte gör det uppstår fel när klustret skapas. Om du stöter på fel när du kör det här kommandot kanske du inte har behörighet att köra det. Kontakta administratören om behörighet.

  5. Skapa sedan klustret i den nya Virtual Network med kommandot az managed-cassandra cluster create. Kör följande kommando värdet för delegatedManagementSubnetId variabeln:

    Anteckning

    Värdet för delegatedManagementSubnetId variabeln som du kommer att ange nedan är exakt samma som värdet --scope för som du angav i kommandot ovan:

    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'
    
    az managed-cassandra cluster create \
      --cluster-name $clusterName \
      --resource-group $resourceGroupName \
      --location $location \
      --delegated-management-subnet-id $delegatedManagementSubnetId \
      --initial-cassandra-admin-password $initialCassandraAdminPassword \
      --debug
    
  6. Skapa slutligen ett datacenter för klustret med tre noder, Standard D8s v4 VM SKU, med 4 P30 diskar anslutna för varje nod med kommandot az managed-cassandra datacenter create:

    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
    

    Anteckning

    Värdet för kan --sku väljas från följande tillgängliga SKU:er:

    • 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

    Observera också att --availability-zone är inställt på false . Om du vill aktivera tillgänglighetszoner anger du detta till true . Tillgänglighetszoner ökar tjänstens tillgänglighets-SLA. Mer information finns i den fullständiga SLA-informationen här.

    Varning

    Tillgänglighetszoner stöds inte i alla regioner. Distributioner misslyckas om du väljer en region där tillgänglighetszoner inte stöds. Se här för regioner som stöds. En lyckad distribution av tillgänglighetszoner beror också på tillgängligheten av beräkningsresurser i alla zoner i den angivna regionen. Distributioner kan misslyckas om den SKU som du har valt, eller kapaciteten, inte är tillgänglig i alla zoner.

  7. Om du vill skala upp eller skala ned noderna i datacentret när datacentret har skapats kör du kommandot az managed-cassandra datacenter update. Ändra värdet för node-count parametern till önskat värde:

    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 
    

Anslut till klustret

Azure Managed Instance för Apache Cassandra skapar inte noder med offentliga IP-adresser. Om du vill ansluta till ditt nyligen skapade Cassandra-kluster måste du skapa en annan resurs i det virtuella nätverket. Den här resursen kan vara ett program eller en virtuell dator med Apaches frågeverktyg med öppen källkod CQLSH installerat. Du kan använda en Resource Manager för att distribuera en virtuell Ubuntu-dator. När den har distribuerats använder du SSH för att ansluta till datorn och installera CQLSH enligt följande kommandon:

# 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://www.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 the nodes in your Datacenter):
host=("<IP>" "<IP>" "<IP>")
cqlsh $host 9042 -u cassandra -p cassandra --ssl

Felsökning

Om du stöter på ett fel när du tillämpar behörigheter på din Virtual Network med Hjälp av Azure CLI, till exempel Det går inte att hitta användarens eller tjänstens huvudnamn i grafdatabasen för "e5007d2c-4b13-4a74-9b6a-605d99f03501" kan du tillämpa samma behörighet manuellt från Azure Portal. Lär dig hur du gör detta här.

Anteckning

Den Azure Cosmos DB rolltilldelningen används endast i distributionssyfte. Azure Managed Instanced för Apache Cassandra har inga backend-beroenden på Azure Cosmos DB.

Rensa resurser

När den inte längre behövs kan du använda kommandot az group delete för att ta bort resursgruppen, den hanterade instansen och alla relaterade resurser:

az group delete --name <Resource_Group_Name>

Nästa steg

I den här snabbstarten har du lärt dig hur du skapar en Azure Managed Instance för Apache Cassandra-kluster med Hjälp av Azure CLI. Nu kan du börja arbeta med klustret: