共用方式為


快速入門:從 Azure 入口網站建立 Azure Managed Instance for Apache Cassandra 叢集

Azure Managed Instance for Apache Cassandra 是純開放原始碼 Apache Cassandra 叢集的完全受控服務。 此服務也允許根據每個工作負載的特定需求來覆寫組態,以在需要時允許最大的彈性和控制。

本快速入門示範如何使用 Azure 入口網站來建立 Azure Managed Instance for Apache Cassandra 叢集。

必要條件

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

建立受控執行個體叢集

  1. 登入 Azure 入口網站

  2. 從搜尋列中,搜尋 Managed Instance for Apache Cassandra,然後選取結果。

    搜尋適用於 Apache Cassandra 的 Azure SQL 受控執行個體螢幕擷取畫面。

  3. 選取 [建立 Apache Cassandra 叢集的受控實例]。

    此螢幕快照顯示用來建立叢集的按鈕。

  4. 從 [建立 Managed Instance for Apache Cassandra] 窗格中,輸入下列詳細資料:

    • 用帳戶 - 從下拉式清單中,選取您的 Azure 訂用帳戶。
    • 資源群組:指定您是要建立新的資源群組,或使用現有的資源群組。 「資源群組」是存放 Azure 解決方案相關資源的容器。
    • 叢集名稱:請輸入叢集的名稱。
    • 位置 - 部署叢集的位置。
    • Cassandra 版本 - 要部署的 Apache Cassandra 版本。
    • 擴充功能 - 要新增的擴充功能,包括 Cassandra Lucene Index
    • 初始 Cassandra 系統管理員密碼:用來建立叢集的密碼。
    • 確認 Cassandra 系統管理員密碼:重新輸入密碼。
    • 虛擬網路 - 選取結束的虛擬網路和子網,或建立新的虛擬網路。
    • 指派角色 - 虛擬網路需要特殊許可權,才能部署受控 Cassandra 叢集。 如果您要建立新的虛擬網路,或使用未套用許可權的現有虛擬網路,請核取此方塊。 如果您使用先前部署 Azure SQL 受控實例 Cassandra 叢集的虛擬網路,請取消選取此選項。

    此螢幕快照顯示 [建立] 頁面中的 [基本] 索引標籤。

    提示

    如果您使用 VPN,則不需要開啟另一個連線。

    注意

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

    • Azure 儲存體
    • Azure KeyVault
    • Azure 虛擬機器擴展集
    • Azure 監視
    • Microsoft Entra 識別碼
    • Azure 安全性
    • 自動複寫。 選擇要使用的自動複製形式。 如需詳細資訊,請參閱 即用型複製
    • 排程事件策略。 叢集針對排程事件使用的策略。

    提示

    • StopANY 表示在節點有排程事件時暫停任一節點。
    • StopByRack 表示只有指定之排程事件之指定機架中的停止節點。 例如,如果同時為不同機架中的節點安排多個事件,則只有一個機架中的節點會停止運作。 其他機架中的其他節點有延遲。
  5. 接下來,選取 [資料中心] 索引標籤。

  6. 輸入下列詳細資料:

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

    選取 SKU 大小的螢幕擷取畫面。

    注意

    我們透過使用 L 系列 VM SKU 引入了直寫快取功能(目前為公開預覽)。 此實作旨在將尾延遲降到最低,並增強讀取效能,特別是針對讀取密集型工作負載。 這些特定的 SKU 配備本地連接的磁碟,這確保了讀取作業的 IOPS 顯著增加,並減少尾延遲。

    重要

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

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

    您可以在其中檢閱值的數據中心頁面螢幕快照。

    警告

    所有區域都不支援可用性區域。 如果您選取不支援可用性區域的區域,部署會失敗。 如需詳細資訊,請參閱 Azure 區域清單

    可用性區域是否能成功部署也受限於指定區域中所有區域的計算資源可用性。 如果您選取的 SKU 或容量無法跨所有區域使用,部署可能會失敗。

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

    注意

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

    此螢幕快照顯示叢集的 [檢閱和建立] 頁面。

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

    顯示建立叢集之後 [概觀] 頁面的螢幕快照。

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

    資料中心節點的螢幕擷取畫面。

調整資料中心

既然現在您已使用單一數據中心部署叢集,現在您可以藉由選取數據中心並按下 [ 擴展 ] 按鈕來進行水平或垂直擴展。

調整資料中心節點的螢幕擷取畫面。

水平調整

若要在節點上擴增或縮減,請將滑桿移至所需的數字,或只編輯值。 完成後,請選取 縮放

選取資料中心節點數目的螢幕擷取畫面。

垂直調整

若要相應增加或相應減少節點的 SKU 大小,請從 [SKU 大小] 中選取 。 完成後,請選擇調整

選取 [SKU 大小] 的螢幕擷取畫面。

注意

調整作業所需的時間長度取決於各種因素。 可能需要幾分鐘的時間。 當 Azure 通知您調整作業完成時,並不表示所有節點都已加入 Cassandra 通道。 當所有節點都顯示狀況為良好以及數據中心顯示狀態為成功時,節點即完全啟用。

調整是在線作業,運作方式與修補中所述的方式相同。 如需更多資訊,請參閱 安全更新

新增資料中心

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

    新增資料中心的螢幕擷取畫面。

    警告

    如果您要在不同的區域中新增資料中心,您必須選取不同的虛擬網路。 您也必須確定此虛擬網路能夠連線到先前建立的主要區域虛擬網路。 此外,請確保承載受控實例叢集內資料中心的任何其他虛擬網路。 如需詳細資訊,請參閱 使用虛擬網路對等互連連線虛擬網路

    您也必須先確定您已使用下列 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 節點數目。
    • 虛擬網路。 選取結束的虛擬網路和子網。

    [新增數據中心] 頁面的螢幕快照。

    警告

    當您新增數據中心時,Azure 入口網站不允許建立新的虛擬網路。 您必須選擇現有的虛擬網路,而且您必須確保部署數據中心的目標子網之間有連線能力。 您也需要將適當的角色套用至虛擬網路以允許部署,如先前所述。

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

    顯示叢集資源的螢幕快照。

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

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

     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 設定

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

  1. 在 [設定] 底下尋找 Cassandra Configuration。 選取您要變更設定的數據中心,然後選擇 [更新]。

    選取要更新組態的資料中心螢幕擷取畫面。

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

    更新資料中心 Cassandra 設定的螢幕擷取畫面。

  3. 更新完成時,覆寫的值會出現在 Cassandra Configuration 窗格中。

    已更新 Cassandra 設定的螢幕擷取畫面。

    注意

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

    重要

    請確定您提供的 Cassandra yaml 設定適合您部署的 Cassandra 版本。 請參閱 Cassandra v3.11 的設定以了解 Cassandra v3.11 的設置,以及 Cassandra v4.0 的設定以了解 v4.0 的設置。 您無法更新下列 YAML 設定:

    • 群集名稱
    • 種子供應商
    • initial_token
    • autobootstrap
    • 用戶端加密選項 (client_encryption_options)
    • 伺服器加密選項
    • 透明數據加密選項
    • 審核記錄選項
    • 驗證器
    • 授權者
    • 角色管理員
    • 儲存端口
    • SSL 存儲端口
    • 本地傳輸端口
    • native_transport_port_ssl
    • 監聽位址
    • 監聽介面
    • 廣播位址
    • 提示_目錄
    • 資料檔案目錄
    • commitlog_directory
    • cdc_raw_directory
    • 已保存快取資料夾
    • 總端偵測
    • 分割器
    • 遠端程序調用地址
    • RPC介面

更新 Cassandra 版本

重要

Cassandra 5.0 和周全版本更新處於公開預覽狀態。 這些功能在沒有服務等級協議的情況下提供。 不建議針對生產工作負載使用這些功能。 如需詳細資訊,請參閱 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:自動複製所有系統索引鍵空間(system_auth、system_traces、system_auth)。
  • AllKeyspaces:自動複製所有 keyspace,並監視是否創建了新的 keyspace,然後自動套用複製設定。

自動重複場景

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

針對外部數據中心,例如在內部部署的數據中心,可以使用外部數據中心屬性來包含在keyspaces中。 此方法可讓 Cassandra 將這些外部資料中心納入為重建程式的來源。

警告

將自動復寫設定為 AllKeyspaces 會將您的 keyspaces 複寫更改為包括:

WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }

如果此拓撲不是您想要的,請使用 SystemKeyspaces 在 Azure 受控實例上自行調整 Apache Cassandra 叢集,並手動執行 nodetool rebuild

解除分配叢集

針對非生產環境,您可以暫停或解除分配叢集中的資源,以避免為其收費。 您仍需支付記憶體費用。 首先將叢集類型變更為 NonProduction,然後 deallocate

提示

集群類型應僅用於「非生產」,以節省開發成本。 它們可能附帶較小的SKU,且不適合用於執行生產工作負載。

警告

  • 定義為「非生產」的叢集類型不會套用 SLA 保證。
  • 請勿在解除分配期間執行任何架構或寫入作業。 此動作可能會導致數據遺失,而且在少數情況下,需要支援小組手動介入的架構損毀。

暫停叢集的螢幕擷取畫面。

疑難排解

如果您在使用 Azure CLI 將權限套用至虛擬網路時發生錯誤,您可以從 Azure 入口網站手動套用相同的許可權。 這類錯誤的範例為 'e5007d2c-4b13-4a74-9b6a-605d99f03501' 的圖形資料庫中找不到使用者或服務主體。 如需詳細資訊,請參閱 使用 Azure 入口網站來新增 Azure Cosmos DB 服務主體

注意

Azure Cosmos DB 角色指派僅供部署之用。 Azure Managed Instance for Apache Cassandra 在 Azure Cosmos DB 上沒有後端相依性。

連接到叢集

適用於 Apache Cassandra 的 Azure 受控實例不會建立具有公用 IP 位址的節點。 若要連線到新建立的 Cassandra 叢集,請在虛擬網路內建立另一個資源。 此資源可以是應用程式,或已安裝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.jsPython 連線至 Apache Cassandra 的 Azure 受控實例範例。

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

對於 Java,我們也強烈建議在應用程式對尾延遲敏感的情況下啟用推測執行原則。 如需說明此方法運作方式的示範,請參閱 示範:實作推測性執行 以及如何啟用該原則。

注意

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

設定用戶端憑證 (選用)

設定客戶端憑證是選擇性的。 只要上述步驟完成,用戶端應用程式就可以連線到適用於 Apache Cassandra 的 Azure 受控實例。 不過,如果您想要的話,您也可以建立及設定用戶端憑證以進行驗證。 一般而言,有兩種方式可以建立憑證:

  • 自我簽署憑證。 每個節點的私用和公用(不需要 CA)憑證。 在此情況下,您需要所有公開憑證。
  • 由 CA 簽署的憑證。 此憑證可以是自我簽署的CA,或者甚至是公開的CA。 在此情況下,您需要根 CA 憑證和所有中繼憑證(如果適用)。 如需詳細資訊,請參閱 準備生產環境的 SSL 憑證

如果您想要實作用戶端對節點憑證驗證或相互傳輸層安全性 (mTLS),請使用 Azure CLI 提供憑證。 下列命令會將客戶端憑證上傳並套用至受控實例叢集的信任存放區。 您不需要編輯 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. 在下個視窗中輸入要刪除的資源群組名稱,然後選取 [刪除]

後續步驟