快速入門:從 Azure 入口網站 建立適用於 Apache Cassandra 叢集的 Azure 受控執行個體

適用於 Apache Cassandra 的 Azure 受控執行個體 是純開放原始碼 Apache Cassandra 叢集的完整受控服務。 服務也允許根據每個工作負載的特定需求覆寫組態,允許視需要的最大彈性和控制

本快速入門示範如何使用 Azure 入口網站 來建立適用於Apache Cassandra 叢集的 Azure 受控執行個體。

必要條件

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

建立受控實例叢集

  1. 登入 Azure 入口網站

  2. 從搜尋列中搜尋 apache Cassandra 受控執行個體,然後選取結果。

    搜尋 Apache Cassandra Azure SQL 受控執行個體 的螢幕快照。

  3. 選取 [為 Apache Cassandra 叢集建立 受控執行個體] 按鈕。

    建立叢集。

  4. 從 [建立 Apache Cassandra 受控執行個體] 窗格中,輸入下列詳細數據:

    • 用帳戶 - 從下拉式清單中,選取您的 Azure 訂用帳戶。
    • 資源群組 - 指定您要建立新的資源群組或使用現有的資源群組。 「資源群組」是存放 Azure 解決方案相關資源的容器。 如需詳細資訊,請參閱 Azure 資源群組 概觀一文。
    • 叢集名稱 - 輸入叢集的名稱。
    • 位置 - 將部署叢集的位置。
    • Cassandra 版本 - 將部署的 Apache Cassandra 版本。
    • 範圍 - 將新增的延伸 模組,包括 Cassandra Lucene Index
    • 初始 Cassandra 系統管理員密碼 - 用來建立叢集的密碼。
    • 確認 Cassandra 系統管理員密碼 - 重新輸入您的密碼。
    • 虛擬網絡 - 選取結束 虛擬網絡 和子網,或建立新的。
    • 指派角色 - 虛擬網絡 需要特殊許可權,才能部署受控 Cassandra 叢集。 如果您要建立新的 虛擬網絡,或使用現有的 虛擬網絡 而不套用許可權,請保留此方塊。 如果使用您已部署 Azure SQL 受控執行個體 Cassandra 叢集的虛擬網路,請取消核取此選項。

    填寫建立叢集表單。

    提示

    如果您使用 VPN ,則不需要開啟任何其他連線。

    注意

    部署適用於 Apache Cassandra 的 Azure 受控執行個體 需要因特網存取。 在因特網存取受到限制的環境中,部署失敗。 請確定您不會封鎖 VNet 內對下列重要 Azure 服務進行存取,這是受控 Cassandra 正常運作所需的重要 Azure 服務。 如需詳細資訊,請參閱 必要的輸出網路規則

    • Azure 儲存體
    • Azure KeyVault
    • Azure 虛擬機器擴展集
    • Azure 監視
    • Microsoft Entra ID
    • Azure 安全性
    • 自動復 寫 - 選擇要使用的自動復寫形式。 深入了解
    • 排程事件策略 - 叢集要用於排程事件的策略。

    提示

    • StopANY 表示即使已針對節點排程,也停止任何節點。
    • StopByRack 表示只針對指定的已排程事件,在指定的機架中停止節點,例如,如果同時為不同機架中的節點排程兩個或多個事件,則只會停止一個機架中的節點,而其他機架中的其他節點則會延遲。
  5. 接下來,選取 [ 數據中心] 索引標籤

  6. 輸入下列詳細資料:

    • 數據中心名稱 - 在文字欄位中輸入資料中心名稱。
    • 可用性區域 - 如果您想要啟用可用性區域,請核取此方塊。
    • SKU 大小 - 從可用的虛擬機 SKU 大小中選擇。

    選取 SKU 大小的螢幕快照。

    注意

    我們已透過使用 L 系列 VM SKU 來引進寫入快取(公開預覽)。 此實作旨在將尾端延遲降到最低,並增強讀取效能,特別是針對大量讀取工作負載。 這些特定 SKU 配備本機連結的磁碟,可確保讀取作業的 IOPS 大幅增加,並減少尾延遲。

    重要

    寫入快取處於公開預覽狀態。 此功能在沒有服務等級協議的情況下提供,不建議用於生產工作負載。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

    • 否。 磁碟的 - 選擇要連結至每個 Cassandra 節點的 p30 磁碟數目。
    • 否。 節點的 - 選擇將部署至此資料中心的 Cassandra 節點數目。

    檢閱摘要以建立數據中心。

    警告

    所有區域都不支援可用性區域。 如果您選取不支援可用性區域的區域,部署將會失敗。 如需支持的區域,請參閱 這裡 。 成功部署可用性區域也會受限於指定區域中所有區域的計算資源可用性。 如果您選取的 SKU 或容量無法跨所有區域使用,部署可能會失敗。

  7. 接下來,選取 [檢閱 + 建立]>

    注意

    建立叢集最多可能需要 15 分鐘的時間。

    檢閱摘要以建立叢集。

  8. 部署完成之後,請檢查您的資源群組,以查看新建立的受控實例叢集:

    建立叢集之後的概觀頁面。

  9. 若要流覽叢集節點,請流覽至叢集資源,然後開啟 [資料中心 ] 窗格以檢視它們:

    數據中心節點的螢幕快照。

調整數據中心

既然您已部署具有單一數據中心的叢集,您可以藉由反白顯示數據中心來水準或垂直調整,然後選取 Scale 按鈕:

調整數據中心節點的螢幕快照。

水平縮放比例

若要在節點上相應放大,請將滑桿移至所需的數位,或只編輯值。 完成時,按 Scale

選取資料中心節點數目的螢幕快照。

垂直尺規

若要相應增加至節點功能更強大的 SKU 大小,請從下 Sku Size 拉式清單中選取 。 完成時,按 Scale

選取 [Sku 大小] 的螢幕快照。

注意

調整作業所需的時間長度取決於各種因素,可能需要幾分鐘的時間。 當 Azure 通知您調整作業已完成時,這並不表示所有節點都已加入 Cassandra 通道。 當節點都顯示「狀況良好」時,節點將會完全受委託,而數據中心狀態會顯示「成功」。

新增數據中心

  1. 若要新增另一個資料中心,請按下 [資料中心] 窗格中的 [新增] 按鈕:

    新增資料中心的螢幕快照。

    警告

    如果您要在不同的區域中新增數據中心,則必須選取不同的虛擬網路。 您也必須確定此虛擬網路能夠連線到上面建立的主要區域虛擬網路(以及裝載受控實例叢集中數據中心的任何其他虛擬網路)。 請看這篇文章,瞭解如何使用 Azure 入口網站 對等互連虛擬網路。 您也必須確定您已使用下列 CLI 命令,在嘗試部署受控實例叢集之前,先將適當的角色套用至虛擬網路。

        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>
    
  2. 填入適當的欄位:

    • 數據中心名稱 - 從下拉式清單中選取您的 Azure 訂用帳戶。
    • 可用性區域 - 如果您想要在此資料中心啟用可用性區域,請核取此方塊。
    • 位置 - 將部署數據中心的位置。
    • SKU 大小 - 從可用的虛擬機 SKU 大小中選擇。
    • 否。 磁碟的 - 選擇要連結至每個 Cassandra 節點的 p30 磁碟數目。
    • 否。 節點的 - 選擇將部署至此資料中心的 Cassandra 節點數目。
    • 虛擬網絡 - 選取結束 虛擬網絡 和子網。

    新增數據中心。

    警告

    請注意,新增數據中心時,我們不允許建立新的虛擬網路。 您必須選擇現有的虛擬網路,如上所述,您必須確保目標子網之間有部署數據中心的連線能力。 您也需要將適當的角色套用至 VNet 以允許部署(請參閱上圖)。

  3. 部署資料中心時,您應該能夠在 [資料中心] 窗格中檢視所有資料中心資訊

    檢視叢集資源。

  4. 若要確保數據中心之間的復寫,請連線至 cqlsh ,並使用下列 CQL 查詢來更新每個 Keyspace 中的復寫策略,以包含叢集內的所有數據中心(系統數據表會自動更新):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc': 3, 'dc2': 3};
    
  5. 如果您要將資料中心新增至已經有資料的叢集,您必須執行 rebuild 以復寫歷程記錄數據。 在 Azure CLI 中,執行下列命令以在新資料中心的每個節點上執行nodetool rebuild,並以節點的 IP 位址取代 ,並以<olddc>您現有的數據中心名稱取代 <new dc ip address>

     az managed-cassandra cluster invoke-command \
       --resource-group $resourceGroupName \
       --cluster-name $clusterName \
       --host <new dc ip address> \
       --command-name nodetool --arguments rebuild="" "<olddc>"=""
    

    警告

    在套用keyspace複寫變更之前,您不應該允許應用程式用戶端寫入新的資料中心。 否則,重建將無法運作,而且您必須建立 支援要求 ,以便我們的小組代表您執行 repair

更新 Cassandra 設定

此服務允許透過入口 網站或使用 CLI 命令,更新資料中心上的 Cassandra YAML 設定。 若要更新入口網站中的設定:

  1. 在 [設定] 底下尋找 Cassandra Configuration 。 反白顯示您要變更其設定的數據中心,然後按兩下 [更新]:

    選取要更新組態之數據中心的螢幕快照。

  2. 在開啟的視窗中,以 YAML 格式輸入功能變數名稱,如下所示。 然後按兩下 [更新]。

    更新數據中心 Cassandra 設定的螢幕快照。

  3. 更新完成時,覆寫的值會顯示在 Cassandra Configuration 窗格中:

    已更新 Cassandra 設定的螢幕快照。

    注意

    入口網站中只會顯示覆寫的 Cassandra 組態值。

    重要

    請確定您提供的 Cassandra yaml 設定適用於您已部署的 Cassandra 版本。 如需 Cassandra v3.11 設定,請參閱這裡,如需 v4.0,請參閱這裡。 不允許更新下列 YAML 設定

    • cluster_name
    • seed_provider
    • initial_token
    • autobootstrap
    • client_encryption_options
    • server_encryption_options
    • transparent_data_encryption_options
    • audit_logging_options
    • authenticator
    • 授權者
    • role_manager
    • storage_port
    • ssl_storage_port
    • native_transport_port
    • native_transport_port_ssl
    • listen_address
    • listen_interface
    • broadcast_address
    • hints_directory
    • data_file_directories
    • commitlog_directory
    • cdc_raw_directory
    • saved_caches_directory
    • endpoint_snitch
    • partitioner
    • rpc_address
    • rpc_interface

更新 Cassandra 版本

重要

Cassandra 4.1、5.0 和 Turnkey Version 更新 處於公開預覽狀態。 這些功能在沒有服務等級協議的情況下提供,不建議用於生產工作負載。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

您可以選擇直接從入口網站或透過 Az CLI、Terraform 或 ARM 範本進行就地主要版本升級。

  1. 從 [概觀] 索引 Update 標籤尋找面板

    更新 Cassandra 版本的螢幕快照。

  2. 從下拉式清單中選取 Cassandra 版本。

    警告

    請勿略過版本。 建議只將一個版本更新為另一個範例 3.11 到 4.0、4.0 到 4.1。

    選取 Cassandra 版本的螢幕快照。

  3. 選取 [更新] 以儲存。

周全複寫

Cassandra 5.0 引進了部署多區域叢集的簡化方法,提供增強的便利性和效率。 使用周全複寫功能,設定及管理多區域叢集已變得更容易存取,以便更順暢地跨分散式環境進行整合和作業。 此更新可大幅降低傳統上與部署和維護多區域組態相關聯的複雜度,讓用戶能夠更輕鬆且有效率地使用 Cassandra 的功能。

從下拉式清單中選取 [參考] 選項。

提示

  • 無:自動復寫設定為 none。
  • SystemKeyspaces:自動復寫所有系統 keyspaces (system_auth、system_traces、system_auth)
  • AllKeyspaces:自動復寫所有 keyspaces,並監視是否已建立新的 Keyspace,然後自動套用自動復寫設定。

自動復寫案例

  • 新增數據中心時,Cassandra 中的自動復寫功能會順暢地執行 nodetool rebuild ,以確保跨新增的數據中心成功複寫數據。
  • 拿掉資料中心會觸發從keyspaces自動移除特定資料中心。

針對外部資料中心,例如裝載於內部部署的數據中心,可透過外部數據中心屬性的使用率,包含在索引鍵空間中。 這可讓 Cassandra 將這些外部數據中心納入為重建程式的來源。

警告

將自動復寫設定為 AllKeyspaces 將會變更您的 Keyspaces 複寫以包含 WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }如果這不是您想要的拓撲,您必須使用 SystemKeyspaces、自行調整,並在 Apache Cassandra 叢集的 Azure 受控執行個體 上手動執行nodetool rebuild

取消配置叢集

  1. 針對非生產環境,您可以暫停/取消配置叢集中的資源,以避免為其收費(您將繼續支付記憶體費用)。 首先將叢集型態變更為 NonProduction,然後 deallocate是 。

警告

請勿在取消配置期間執行任何架構或寫入作業 - 這可能會導致數據遺失,而且在少數情況下,需要支援小組手動介入的架構損毀。

暫停叢集的螢幕快照。

疑難排解

如果您在使用 Azure CLI 將許可權套用至 虛擬網絡 時發生錯誤,例如在圖形資料庫中找不到 'e5007d2c-4b13-4a74-9b6a-605d99f03501' 的使用者或服務主體,您可以從 Azure 入口網站 手動套用相同的許可權。 請在這裡瞭解如何執行這項操作

注意

Azure Cosmos DB 角色指派僅供部署之用。 適用於 Apache Cassandra 的 Azure 受控執行個體 在 Azure Cosmos DB 上沒有後端相依性。

連線 至叢集

適用於 Apache Cassandra 的 Azure 受控執行個體 不會建立具有公用 IP 位址的節點,因此若要連線到新建立的 Cassandra 叢集,您必須在 VNet 內建立另一個資源。 這可能是應用程式,或已安裝 Apache 開放原始碼查詢工具 CQLSH 的虛擬機。 您可以使用 範本 來部署Ubuntu虛擬機。

從 CQLSH 連線

部署虛擬機之後,請使用 SSH 連線到電腦,並使用下列命令安裝 CQLSH:

# 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

從應用程式 連線

與 CQLSH 一樣,使用其中一個支援的 Apache Cassandra 用戶端驅動程式 從應用程式連線時,需要啟用 SSL 加密,並停用認證驗證。 請參閱使用 Java、.NETNode.js 和 Python 連線至適用於 Apache Cassandra 的 Azure 受控執行個體 範例。

建議您停用憑證驗證,因為除非您將叢集節點的 I.P 位址對應至適當的網域,否則憑證驗證將無法運作。 如果您有內部原則,其會強制對任何應用程式執行 SSL 憑證驗證,您可以在每個節點的主機檔案中新增類似 10.0.1.5 host1.managedcassandra.cosmos.azure.com 的專案,以協助進行這項操作。 如果採用此方法,則每當相應增加節點時,您也需要新增專案。

針對 Java,我們也強烈建議您啟用 推測性執行原則 ,讓應用程式對尾延遲敏感。 您可以在這裡找到說明其運作方式以及如何啟用原則的示範。

注意

在絕大多數情況下,不應該需要設定或安裝憑證(rootCA、節點或用戶端、信任存放區等),以連線到適用於Apache Cassandra的 Azure 受控執行個體。 您可以使用用戶端所使用的運行時間預設信任存放區和密碼來啟用 SSL 加密(請參閱 Java.NETNode.jsPython 範例),因為該環境會信任 Apache Cassandra 憑證的 Azure 受控執行個體。 在極少數情況下,如果憑證不受信任,您可能需要將其新增至信任存放區。

設定客戶端憑證 (選擇性)

設定客戶端憑證是選擇性。 只要已採取上述步驟,用戶端應用程式就可以連線到適用於Apache Cassandra的 Azure 受控執行個體。 不過,如有偏好,您也可以另外建立及設定客戶端憑證以進行驗證。 一般而言,有兩種方式可以建立憑證:

  • 自我簽署憑證。 這表示每個節點的私人和公用(無 CA) 憑證 - 在此情況下,我們需要所有公開憑證。
  • 由 CA 簽署的憑證。 這可以是自我簽署的 CA,甚至是公用 CA。 在此情況下,我們需要根 CA 憑證(請參閱 準備生產環境 SSL 憑證 的指示),以及所有媒介(如果適用的話)。

如果您想要實作用戶端對節點憑證驗證或相互傳輸層安全性 (mTLS),您必須透過 Azure CLI 提供憑證。 下列命令會將客戶端憑證上傳並套用至 Cassandra 受控執行個體 叢集的信任存放區(也就是您不需要編輯cassandra.yaml設定)。 套用之後,您的叢集將會要求 Cassandra 在用戶端連線時驗證憑證(請參閱 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

清除資源

如果您不打算繼續使用這個受控實例叢集,請使用下列步驟加以刪除:

  1. 從 Azure 入口網站 左側功能表中,選取 [資源群組]。
  2. 在該清單中,選取您在本快速入門中建立的資源群組。
  3. 在 [資源群組 概觀 ] 窗格中,選取 [ 刪除資源群組]。
  4. 在下個視窗中輸入要刪除的資源群組名稱,然後選取 [刪除]

下一步

在本快速入門中,您已瞭解如何使用 Azure 入口網站 建立適用於 Apache Cassandra 叢集的 Azure 受控執行個體。 您現在可以開始使用叢集: