Rychlý start: Konfigurace hybridního clusteru se službou Azure Managed Instance pro Apache Cassandra

Spravovaná instance Azure pro Apache Cassandra poskytuje automatizované operace nasazení a škálování pro spravovaná datacentra Apache Cassandra s otevřeným zdrojem. Tato služba pomáhá zrychlit hybridní scénáře a omezit průběžnou údržbu.

Tento rychlý start ukazuje použití příkazů Azure CLI ke konfiguraci hybridního clusteru. Pokud máte existující datacentra v místním nebo místním prostředí, můžete spravovanou instanci Azure pro Apache Cassandra použít k přidání dalších datacenter do tohoto clusteru a jejich údržbě.

Požadavky

  • V nástroji použijte prostředí Bash Azure Cloud Shell.

    Spuštění služby Cloud Shell v novém okně

  • Pokud tomu dáváte přednost, můžete nainstalovat Azure CLI a spouštět referenční příkazy CLI.

    • Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení jsou popsané v tématu Přihlášení pomocí Azure CLI.

    • Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.

    • Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.

  • Tento článek vyžaduje Azure CLI verze 2.30.0 nebo novější. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

  • Azure Virtual Network s připojením k místnímu nebo místnímu prostředí. Další informace o připojení místních prostředí k Azure najdete v článku Připojení připojení místní sítě k Azure.

Konfigurace hybridního clusteru

  1. Přihlaste se k Azure Portal a přejděte ke svému Virtual Network prostředku.

  2. Otevřete kartu Podsítě a vytvořte novou podsíť. Další informace o polích ve formuláři Přidat podsíť najdete v Virtual Network článku:

    Přidejte novou podsíť do Virtual Network.

    Poznámka

    Nasazení spravované instance Azure pro Apache Cassandra vyžaduje přístup k internetu. Nasazení selže v prostředích s omezeným přístupem k internetu. Ujistěte se, že neblokujete přístup ve vaší virtuální síti k následujícím důležitým službám Azure, které jsou nezbytné ke správnému fungování služby Managed Cassandra. Rozsáhlý seznam závislostí IP adres a portů najdete tady.

    • Azure Storage
    • Azure KeyVault
    • Azure Virtual Machine Scale Sets
    • Monitorování Azure
    • Azure Active Directory
    • Zabezpečení Azure
  3. Teď pomocí Azure CLI použijeme několik speciálních oprávnění pro virtuální síť a podsíť, které vyžaduje spravovaná instance Cassandra. Použijte příkaz az role assignment create , a <subscriptionID> <resourceGroupName> nahraďte <vnetName> příslušnými hodnotami:

    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>
    

    Poznámka

    Hodnoty a v předchozím příkazu jsou pevné assignee role intuinály služby a identifikátory rolí v uvedeném pořadí.

  4. V dalším kroku nakonfigurujeme prostředky pro náš hybridní cluster. Vzhledem k tomu, že už cluster máte, bude zde název clusteru pouze logickým zdrojem pro identifikaci názvu existujícího clusteru. Při definování proměnných a v následujícím skriptu nezapomeňte použít clusterName clusterNameOverride název existujícího clusteru.

    Potřebujete také minimálně předimédové uzly z existujícího datacentra a kořenové certifikáty vyžadované pro šifrování mezi uzly. Spravovaná instance Azure pro Apache Cassandra vyžaduje šifrování mezi uzly pro komunikaci mezi datacentry. Pokud ve stávajícím clusteru nemáte implementované šifrování mezi uzly, budete ho muset implementovat – viz dokumentace tady. Měli byste zadat cestu k umístění certifikátů. Každý certifikát by měl být ve formátu PEM, například -----BEGIN CERTIFICATE-----\n...PEM format 1...\n-----END CERTIFICATE----- . Obecně existují dva způsoby implementace certifikátů:

    1. Certifikáty podepsané svým držitelem. To znamená, že privátní a veřejný certifikát (bez certifikační autority) pro každý uzel – v tomto případě potřebujeme všechny veřejné certifikáty.

    2. Certifikáty podepsané certifikační autoritou. Může to být certifikační autorita podepsaná svým držitelem nebo dokonce veřejná. V tomto případě potřebujeme certifikát kořenové certifikační autority (viz pokyny k přípravě certifikátů SSLpro produkci) a všech prostředníků (pokud jsou k dispozici).

    Pokud jste také implementovali certifikáty typu klient-uzel (viz tady),musíte je při vytváření hybridního clusteru zadat také ve stejném formátu. Viz ukázka níže.

    Poznámka

    Hodnota proměnné, kterou budete zadávat níže, je přesně stejná jako hodnota , kterou jste dodali delegatedManagementSubnetId --scope v příkazu výše:

    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_signed 
    

    Poznámka

    Pokud už váš cluster obsahuje šifrování mezi uzly a klient-uzel, měli byste vědět, kde se váš stávající klient a/nebo šifrovací certifikáty SSL uchovávají. Pokud si nejste jisti, měli byste být schopni spustit příkaz a keytool -list -keystore <keystore-path> -rfc -storepass <password> vytisknout certifikáty.

  5. Po vytvoření prostředku clusteru spuštěním následujícího příkazu získejte podrobnosti o nastavení clusteru:

    resourceGroupName='MyResourceGroup'
    clusterName='cassandra-hybrid-cluster'
    
    az managed-cassandra cluster show \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName \
    
  6. Předchozí příkaz vrátí informace o prostředí spravované instance. Budete potřebovat certifikáty Certificates, abyste je mohli nainstalovat do úložiště důvěryhodnosti pro uzly ve stávajícím datacentru. Následující snímek obrazovky ukazuje výstup předchozího příkazu a formát certifikátů:

    Získejte podrobnosti o certifikátu z clusteru.

    Poznámka

    Certifikáty vrácené z výše uvedeného příkazu obsahují konce řádků reprezentované jako text, například \r\n . Před pokusem o import certifikátu do existujícího úložiště důvěryhodnosti datacentra byste měli každý certifikát zkopírovat do souboru a naformátovat ho.

    Tip

    Zkopírujte hodnotu pole uvedenou na výše uvedeném obrázku do souboru a pomocí následujícího skriptu Bash (pro svou platformu byste muset stáhnout a nainstalovat jq) naformátujte certifikáty a vytvořte samostatné soubory pem pro každý z gossipCertificates nich.

    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
    done
    
  7. Dále v hybridním clusteru vytvořte nové datové centrum. Nezapomeňte nahradit hodnoty proměnných podrobnostmi o clusteru:

    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 false
    

    Poznámka

    Hodnotu pro --sku můžete zvolit z následujících dostupných skladové položky:

    • 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

    Všimněte si --availability-zone také, že je nastavená na false . Pokud chcete povolit zóny dostupnosti, nastavte tuto možnost na true . Zóny dostupnosti zvyšují sla dostupnosti služby. Další podrobnosti najdete v úplných podrobnostech o sla tady.

    Upozornění

    Zóny dostupnosti nejsou podporované ve všech oblastech. Pokud vyberete oblast, ve které nejsou zóny dostupnosti podporované, nasazení selžou. Podporované oblasti najdete tady. Úspěšné nasazení zón dostupnosti také závisí na dostupnosti výpočetních prostředků ve všech zónách v dané oblasti. Nasazení selžou, pokud vybraná SKU nebo kapacita není dostupná ve všech zónách.

  8. Teď, když je nové datové centrum vytvořené, spusťte příkaz show datacenter, který zobrazí jeho podrobnosti:

    resourceGroupName='MyResourceGroup'
    clusterName='cassandra-hybrid-cluster'
    dataCenterName='dc1'
    
    az managed-cassandra datacenter show \
      --resource-group $resourceGroupName \
      --cluster-name $clusterName \
      --data-center-name $dataCenterName 
    
  9. Předchozí příkaz vy výstupních uzlů nového datacentra:

    Získání podrobností o datacentru

  10. Teď v souboru cassandra.yaml přidejte do konfigurace výchozího uzlu vašeho stávajícího datacentra nové uzly datacentra. Pomocí příkazu pro každý certifikát nainstalujte certifikáty spravovaná instance, které jste shromáždili dříve, do úložiště důvěryhodnosti pro každý uzel v keytool existujícím clusteru:

    keytool -importcert -keystore generic-server-truststore.jks -alias CassandraMI -file cert1.pem -noprompt -keypass myPass -storepass truststorePass
    

    Poznámka

    Pokud chcete přidat další datacentra, můžete výše uvedené kroky zopakovat, ale potřebujete jenom dosádené uzly.

  11. Nakonec pomocí následujícího dotazu CQL aktualizujte strategii replikace v každém prostoru klíčů tak, aby zahrnovala všechna datacentra v clusteru:

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'on-premise-dc': 3, 'managed-instance-dc': 3};
    

    Musíte také aktualizovat tabulky hesel:

    ALTER KEYSPACE "system_auth" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'on-premise-dc': 3, 'managed-instance-dc': 3}
    

Řešení potíží

Pokud při použití oprávnění pro Virtual Network pomocí Azure CLI dojde k chybě, například V grafové databázi nelze najít uživatele nebo instanční objekt pro e5007d2c-4b13-4a74-9b6a-605d99f03501, můžete stejné oprávnění použít ručně z Azure Portal. Postup najdete tady.

Poznámka

Přiřazení role Azure Cosmos DB se používá pouze pro účely nasazení. Spravovaná instance Azure pro Apache Cassandra nemá žádné back-endové závislosti na Azure Cosmos DB.

Vyčištění prostředků

Pokud tento cluster spravovaných instancí nadále používat nadále, odstraňte ho pomocí následujících kroků:

  1. V nabídce vlevo v části Azure Portal vyberte Skupiny prostředků.
  2. V seznamu vyberte skupinu prostředků, kterou jste vytvořili pro tento rychlý start.
  3. V podokně Přehled skupiny prostředků vyberte Odstranit skupinu prostředků.
  4. V dalším okně zadejte název skupiny prostředků, která se má odstranit, a pak vyberte Odstranit.

Další kroky

V tomto rychlém startu jste zjistili, jak vytvořit hybridní cluster pomocí Azure CLI a spravované instance Azure pro Apache Cassandra. Teď můžete začít pracovat s clusterem.