快速入門:從 Azure 入口網站建立 Azure Managed Instance for Apache Cassandra 叢集
Azure Managed Instance for Apache Cassandra 是純開放原始碼 Apache Cassandra 叢集的完全受控服務。 此服務也允許根據每個工作負載的特定需求來覆寫組態,允許視需要提供最大彈性和控制
本快速入門示範如何使用 Azure 入口網站來建立 Azure Managed Instance for Apache Cassandra 叢集。
必要條件
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
建立受控執行個體叢集
登入 Azure 入口網站。
從搜尋列中,搜尋 Managed Instance for Apache Cassandra,然後選取結果。
選取 [建立 Managed Instance for Apache Cassandra 叢集] 按鈕。
從 [建立 Managed Instance for Apache Cassandra] 窗格中,輸入下列詳細資料:
- 訂用帳戶:請從下拉式清單中選取您的 Azure 訂用帳戶。
- 資源群組:指定您是要建立新的資源群組,或使用現有的資源群組。 「資源群組」是存放 Azure 解決方案相關資源的容器。 如需詳細資訊,請參閱 Azure 資源群組概觀一文。
- 叢集名稱:請輸入叢集的名稱。
- 位置:將部署叢集的位置。
- Cassandra 版本:將部署的 Apache Cassandra 版本。
- 延伸模組:將新增的延伸模組,包括 Cassandra Lucene Index。
- 初始 Cassandra 系統管理員密碼:用來建立叢集的密碼。
- 確認 Cassandra 系統管理員密碼:重新輸入密碼。
- 虛擬網路:選取現有的虛擬網路和子網路,或建立新的虛擬網路和子網路。
- 指派角色:虛擬網路需要特殊權限,才能允許部署受控 Cassandra 叢集。 如果您要建立新的虛擬網路,或使用未套用權限的現有虛擬網路,請保留已選取此方塊。 如果使用您已部署 Azure SQL 受控執行個體 Cassandra 叢集的虛擬網路,請取消選取此選項。
提示
如果您使用 VPN,則不必開啟任何其他連線。
注意
部署 Azure Managed Instance for Apache Cassandra 需要網際網路存取。 在網際網路存取受到限制的環境中,部署失敗。 請確定您不會封鎖 VNet 內對下列重要 Azure 服務進行存取,這些是受控 Cassandra 正常運作所需的重要 Azure 服務。 如需詳細資訊,請參閱必要的輸出網路規則 (部分機器翻譯)。
- Azure 儲存體
- Azure KeyVault
- Azure 虛擬機器擴展集
- Azure 監視
- Microsoft Entra ID
- Azure 安全性
- 自動複寫:選擇要使用的自動複寫形式。 深入了解
- 排程事件策略:叢集要用於排程事件的策略。
提示
- StopANY 表示會停止任何節點,即使是已排程節點也會遭停止。
- StopByRack 表示只針對指定的已排程事件,在指定的機架中停止節點,假如同時為不同機架中的節點排程兩個或多個事件,則只會停止一個機架中的節點,而其他機架中的其他節點則會延遲。
接下來,選取 [資料中心] 索引標籤。
輸入下列詳細資料:
- 資料中心名稱:在文字欄位中輸入資料中心名稱。
- 可用性區域:若要啟用可用性區域,請選取此方塊。
- SKU 大小:從可用的虛擬機器 SKU 大小中選擇。
注意
我們已透過使用 L 系列 VM SKU 來引進直接寫入式快取 (公開預覽)。 此實作旨在將尾延遲降到最低,並增強讀取效能,特別是針對讀取密集型工作負載。 這些特定 SKU 配備本機連結的磁碟,可確保讀取作業的 IOPS 大幅增加,並減少尾延遲。
重要
直接寫入式快取處於公開預覽狀態。 此功能是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
- 否。 磁碟數 - 選擇要連結至每個 Cassandra 節點的 p30 磁碟數目。
- 否。 節點的 - 選擇將部署至此資料中心的 Cassandra 節點數目。
警告
並非所有區域都支援可用性區域。 如果您選取不支援可用性區域的區域,部署將會失敗。 如需支援的區域,請參閱這裡。 可用性區域是否能成功部署也受限於指定區域中所有區域的計算資源可用性。 如果您選取的 SKU 或容量無法在所有區域使用,部署可能會失敗。
接下來,請選取 [檢閱 + 建立] > [建立]
注意
建立叢集最多可能需要 15 分鐘的時間。
部署完成之後,請檢查您的資源群組,以查看新建立的受控執行個體叢集:
若要瀏覽叢集節點,請瀏覽至叢集資源,然後開啟 [資料中心] 窗格來加以檢視:
調整資料中心
您現在已部署有單一資料中心的叢集,可反白顯示資料中心以進行水平或垂直調整,然後選取 Scale
按鈕:
水平調整
若要在節點上擴增或縮減,請將滑桿移至所需的數字,或只編輯值。 完成時,按 Scale
。
垂直調整
若要擴大或縮小節點的 SKU 大小,請從 Sku Size
下拉式清單中選取。 完成時,按 Scale
。
注意
調整作業所需的時間長度取決於各種因素,可能需要幾分鐘的時間。 若 Azure 通知您調整作業已完成,這並不表示所有節點都已加入 Cassandra 通道。 若節點都顯示狀況「良好」,節點將會完全委派,而資料中心狀態會顯示「成功」。 調整是線上作業,運作方式與管理作業中所述的修補方式相同
新增資料中心
若要新增另一個資料中心,請按一下 [資料中心] 窗格中的 [新增] 按鈕:
警告
如果您要在不同的區域中新增資料中心,則必須選取不同的虛擬網路。 您也必須確定此虛擬網路能夠連線到上面建立的主要區域虛擬網路 (以及裝載受控執行個體叢集中資料中心的任何其他虛擬網路)。 請參閱本文,瞭解如何使用 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>
填寫適當的欄位:
- 資料中心名稱:從下拉式清單中選取您的 Azure 訂用帳戶。
- 可用性區域:若要在此資料中心啟用可用性區域,請選取此方塊。
- 位置:將部署資料中心的位置。
- SKU 大小:從可用的虛擬機器 SKU 大小中選擇。
- 否。 磁碟數 - 選擇要連結至每個 Cassandra 節點的 p30 磁碟數目。
- 否。 節點的 - 選擇將部署至此資料中心的 Cassandra 節點數目。
- 虛擬網路:選取現有的虛擬網路和子網路。
警告
請注意,新增資料中心時,我們不允許建立新的虛擬網路。 您必須選擇現有的虛擬網路,如上所述,應確保要部署資料中心的目標子網路之間有連線能力。 您也需要將適當的角色套用至 VNet 以允許部署 (請參閱上述資訊)。
部署資料中心時,您應該能夠在 [資料中心] 窗格中檢視所有資料中心資訊:
若要確保資料中心之間的複寫,請連線至 cqlsh,並使用下列 CQL 查詢來更新每個 Keyspace 中的複寫策略,以包含叢集內的所有資料中心 (系統資料表會自動更新):
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc': 3, 'dc2': 3};
如果您要將資料中心新增至已經有資料的叢集,您必須執行
rebuild
以複寫歷程記錄資料。 在 Azure CLI 中,執行下列命令以在新資料中心的每個節點上執行nodetool rebuild
,並以節點的 IP 位址取代<new dc ip address>
,然後以您現有的資料中心名稱取代<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 設定
此服務允許透過入口網站或使用 CLI 命令,更新資料中心上的 Cassandra YAML 組態。 若要更新入口網站中的設定:
在 [設定] 底下尋找
Cassandra Configuration
。 反白顯示您要變更其組態的資料中心,然後按一下 [更新]:在開啟的視窗中,以 YAML 格式輸入欄位名稱,如下所示。 然後按一下 [更新]。
更新完成時,覆寫的值會顯示在
Cassandra Configuration
窗格中:注意
入口網站中只會顯示覆寫的 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 5.0 和周全版本更新處於公開預覽狀態。 這些功能是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
您可以選擇直接從入口網站或透過 Az CLI、Terraform 或 ARM 範本進行就地主要版本升級。
從 [概觀] 索引標籤尋找
Update
面板從下拉式清單中選取 Cassandra 版本。
警告
請勿略過版本。 建議只將一個版本更新為另一個,例如 3.11 更新為 4.0、4.0 更新為 4.1。
選取 [更新] 以儲存。
周全複寫
Cassandra 5.0 引進了部署多區域叢集的簡化方法,提供增強的便利性和效率。 使用周全複寫功能,設定及管理多區域叢集已變得更容易存取,而能更順暢地在分散式環境中進行整合和作業。 此更新可大幅降低傳統上與部署和維護多區域組態相關聯的複雜度,讓使用者能夠更輕鬆且有效率地使用 Cassandra 的功能。
提示
- 無:自動複寫設定為 none。
- SystemKeyspaces:自動複寫所有系統 keyspace (system_auth、system_traces、system_auth)
- AllKeyspaces:自動複寫所有 keyspace,並監視是否已建立新的 Keyspace,然後自動套用自動複寫設定。
自動複寫案例
- 新增資料中心時,Cassandra 中的自動複寫功能會順暢地執行
nodetool rebuild
,以確保在新增的資料中心內成功複寫資料。 - 移除資料中心會觸發從 keyspace 自動移除特定資料中心。
對於外部資料中心,例如裝載於內部部署的資料中心,可透過使用外部資料中心屬性,將其包含在 keyspace 中。 這可讓 Cassandra 將這些外部資料中心納入作為重建程序的來源。
警告
將自動複寫設定為 AllKeyspaces 將會變更您的 Keyspace 複寫以包含 WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }
如果這並非所需的拓撲,您必須使用 SystemKeyspaces、自行調整,並在 Azure Managed Instance for Apache Cassandra 叢集上手動執行 nodetool rebuild
。
解除配置叢集
- 對於非生產環境,您可以暫停/解除配置叢集中的資源,以避免為其支付費用 (您將繼續支付儲存體費用)。 首先將叢集類型變更為
NonProduction
,然後deallocate
。
提示
叢集類型應該只用來作為「非生產」,以節省開發成本。 它們可能隨附較小的SKU,且不應該用來執行生產工作負載。
警告
- 定義為「非生產」的叢集類型不會套用 SLA 保證。
- 請勿在解除配置期間執行任何結構描述或寫入作業:這可能會導致資料遺失,而且在少數情況下會導致需要支援小組手動介入的結構描述損毀。
疑難排解
若使用 Azure CLI 將權限套用至虛擬網路時發生錯誤 (例如「在圖形資料庫中找不到 'e5007d2c-4b13-4a74-9b6a-605d99f03501' 的使用者或服務主體」),則可從 Azure 入口網站手動套用相同的權限。 若要了解如何操作,請參閱這裡。
注意
Azure Cosmos DB 角色指派僅供部署之用。 Azure Managed Instance for Apache Cassandra 在 Azure Cosmos DB 上沒有後端相依性。
連接到叢集
Azure Managed Instance for Apache Cassandra 不會建立具有公用 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、.NET、Node.js 和 Python 連線至 Azure Managed Instance for Apache Cassandra 的範例。
建議停用憑證驗證,因為除非您將叢集節點的 IP 位址對應至適當的網域,否則憑證驗證將不會運作。 如有內部原則可強制您對任何應用程式執行 SSL 憑證驗證,則可以在每個節點的主機檔案中新增 10.0.1.5 host1.managedcassandra.cosmos.azure.com
這類項目,以協助進行這項作業。 如果採用此方式,則只要擴大節點,您也需要新增項目。
對於 Java,我們也強烈建議在應用程式對尾延遲敏感的情況下啟用推測執行原則。 您可以在這裡找到說明其運作方式以及如何啟用原則的示範。
注意
在絕大多數情況下,應該「不需要」設定或安裝憑證 (rootCA、節點或用戶端、信任存放區等) 以連線至 Azure Managed Instance for Apache Cassandra。 您可以使用用戶端所使用執行時間的預設信任存放區和密碼來啟用 SSL 加密 (請參閱 Java、.NET、Node.js 和 Python 範例),因為該環境將會信任 Azure Managed Instance for Apache Cassandra 憑證。 在極少數情況下,如果憑證不受信任,則您可能需要將其新增至信任存放區。
設定用戶端憑證 (選用)
設定用戶端憑證是「選用」作業。 只要已採取上述步驟,用戶端應用程式就可以連線至 Azure Managed Instance for Apache Cassandra。 不過,您也可視需要另行建立並設定用戶端憑證以進行驗證。 一般而言,有兩種方式可以建立憑證:
- 自我簽署憑證。 這表示每個節點的私密和公開 (無 CA) 憑證:在此情況下,我們需要所有公開憑證。
- 由 CA 簽署的憑證。 這可以是自我簽署 CA,甚至是公開 CA。 在此情況下,我們需要根 CA 憑證 (請參閱準備生產環境 SSL 憑證的指示),以及所有媒介 (如適用)。
若要實作用戶端對節點憑證驗證或相互傳輸層安全性 (mTLS),則需要透過 Azure CLI 來提供憑證。 下列命令會將用戶端憑證上傳並套用至 Cassandra 受控執行個體叢集的信任存放區 (也就是您不需要編輯 cassandra.yaml
設定)。 套用之後,您的叢集將會要求 Cassandra 在用戶端連線時驗證憑證 (請參閱 Cassandra client_encryption_options 中的 require_client_auth: true
)。
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
清除資源
如果您不打算繼續使用這個受控執行個體叢集,請使用下列步驟將其刪除:
- 從 Azure 入口網站的左側功能表中,選取 [資源群組]。
- 在該清單中,選取您在本快速入門中建立的資源群組。
- 在資源群組 [概觀] 窗格中,選取 [刪除資源群組]。
- 在下個視窗中輸入要刪除的資源群組名稱,然後選取 [刪除]。
下一步
在本快速入門中,您已瞭解如何使用 Azure 入口網站建立 Azure Managed Instance for Apache Cassandra 叢集。 您現在可以開始使用叢集: