التشغيل السريع: إنشاء مثيل مُدار من Azure لمجموعة Apache Cassandra باستخدام Azure CLI
Azure Managed Instance ل Apache Cassandra هي خدمة مدارة بالكامل لمجموعات Apache Cassandra مفتوحة المصدر فقط. تسمح الخدمة أيضا بتجاوز التكوينات، اعتمادا على الاحتياجات المحددة لكل حمل عمل، ما يسمح بأقصى قدر من المرونة والتحكم عند الحاجة.
توضح هذه البداية السريعة كيفية استخدام أوامر Azure CLI لإنشاء كتلة باستخدام Azure Managed Instance لـ Apache Cassandra. يظهر أيضًا لإنشاء مركز بيانات، وتوسيع نطاق العقد لأعلى أو لأسفل داخل مركز البيانات.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
شبكة Azure الظاهرية مع الاتصال بالبيئة المستضافة ذاتيا أو المحلية. لمزيد من المعلومات حول الاتصال في بيئات محلية إلى Azure، راجع مقالة ربط شبكة محلية بنظام Azure.
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
هام
تتطلب هذه المقالة الإصدار 2.30.0 من Azure CLI أو أعلى. إذا كنت تستخدم Azure Cloud Shell، فإن أحدث إصدار مثبت بالفعل.
إنشاء نظام مجموعة مثيل مدار
سجِّل الدخول إلى مدخل Azure
قم بتعيين معرف اشتراكك في Azure CLI:
az account set -s <Subscription_ID>
بعد ذلك، قم بإنشاء شبكة ظاهرية بشبكة فرعية مخصصة في مجموعة الموارد الخاصة بك:
az network vnet create -n <VNet_Name> -l eastus2 -g <Resource_Group_Name> --subnet-name <Subnet Name>
إشعار
يتطلب نشر مثيل Azure المُدار لـ Apache Cassandra الوصول إلى الإنترنت. يفشل التثبيت في البيئات التي يكون فيها الوصول إلى الإنترنت مقيدًا. تأكد من أنك لا تحظر الوصول داخل VNet إلى خدمات Azure الحيوية التالية الضرورية لكي تعمل Cassandra المُدارة بشكل صحيح:
- تخزين Azure
- Azure KeyVault
- مجموعات توسعة الأجهزة الظاهرية في Azure
- مراقبة Azure
- معرِّف Microsoft Entra
- أمان Azure
قم بتطبيق بعض الأذونات الخاصة على الشبكة الظاهرية، والتي يتطلبها المثيل المُدار. للقيام بذلك، استخدم الأمر
az role assignment create
، مع استبدال<subscriptionID>
و<resourceGroupName>
و<vnetName>
بالقيم المناسبة: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>
إشعار
assignee
القيمتان وrole
في الأمر السابق قيم ثابتة، أدخل هذه القيم تماما كما هو مذكور في الأمر . سيؤدي عدم القيام بذلك إلى أخطاء عند إنشاء المجموعة. إذا واجهت أي أخطاء عند تنفيذ هذا الأمر، فقد لا يكون لديك أذونات لتشغيله، ويُرجى التواصل مع المسؤول للحصول على أذونات.بعد ذلك، أنشئ نظام المجموعة في الشبكة الظاهرية التي تم إنشاؤها حديثا باستخدام الأمر az managed-cassandra cluster create . شغل الأمر التالي قيمة
delegatedManagementSubnetId
المتغير:إشعار
قيمة المتغير
delegatedManagementSubnetId
الذي سوف توفر أدناه هو بالضبط نفس قيمة--scope
التي قمت بتوفيرها في الأمر أعلاه: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' cassandraVersion='3.11' # set to 4.0 for a Cassandra 4.0 cluster az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --initial-cassandra-admin-password $initialCassandraAdminPassword \ --cassandra-version $cassandraVersion \ --debug
وأخيرا، قم بإنشاء مركز بيانات للمجموعة، مع ثلاث عقد، Standard D8s v4 VM SKU، مع 4 أقراص P30 مرفقة لكل عقدة، باستخدام الأمر 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
إشعار
يمكن اختيار قيمة من
--sku
وحدات SKU المتوفرة التالية:- 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
لاحظ أيضًا أن
--availability-zone
تم تعيينه إلىfalse
. لتمكين مناطق التوفر، قم بتعيين هذا إلىtrue
. تزيد مناطق التوفر من توفر اتفاقية مستوى الخدمة للخدمة. لمزيد من التفاصيل، راجع تفاصيل اتفاقية مستوى الخدمة الكاملة هنا.تحذير
مناطق التوفر غير مدعومة في جميع المناطق. ستفشل عمليات التوزيع إذا حددت منطقة لا يتم فيها دعم مناطق التوفر. انظر هنا للمناطق المدعومة. ويخضع التوزيع الناجح لمناطق التوفر أيضا لتوافر موارد الحوسبة في جميع المناطق في المنطقة المحددة. قد تفشل عمليات التوزيع إذا لم تكن SKU التي حددتها أو السعة متوفرة عبر جميع المناطق.
بمجرد إنشاء مركز البيانات، إذا كنت تريد توسيع نطاق العقد أو تقليصها في مركز البيانات، فقم بتشغيل الأمر az managed-cassandra datacenter update . تغيير قيمة المعلمة
node-count
إلى القيمة المطلوبة: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
تواصل مع مجموعتك
لا يُنشئ Azure Managed Instance لـ Apache Cassandra عقدًا بعناوين IP عامة. للاتصال بمجموعة Cassandra التي تم إنشاؤها حديثًا، يجب عليك إنشاء مورد آخر داخل الشبكة الظاهرية. يمكن أن يكون هذا المورد تطبيقا أو جهازا ظاهريا مع تثبيت CQLSH لأداة الاستعلام مفتوحة المصدر من Apache. يمكنك استخدام قالب Resource Manager لنشر جهاز ظاهري 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، وتعطيل التحقق من الشهادة. راجع نماذج الاتصال بمثيل Azure المدار ل Apache Cassandra باستخدام Java و.NET Node.js وPython.
يوصى بتعطيل التحقق من الشهادة لأن التحقق من الشهادة لن يعمل إلا إذا قمت بتعيين عناوين I.P لعقد نظام المجموعة إلى المجال المناسب. إذا كان لديك نهج داخلي ينص على إجراء التحقق من شهادة SSL لأي تطبيق، يمكنك تسهيل ذلك عن طريق إضافة إدخالات كما هو الحال 10.0.1.5 host1.managedcassandra.cosmos.azure.com
في ملف المضيفين لكل عقدة. إذا اتبع هذا النهج، فستحتاج أيضا إلى إضافة إدخالات جديدة كلما تم توسيع نطاق العقد.
بالنسبة إلى Java، نوصي بشدة أيضا بتمكين نهج التنفيذ التخميني حيث تكون التطبيقات حساسة لزمن انتقال الاستجابة. يمكنك العثور على عرض توضيحي يوضح كيفية عمل هذا وكيفية تمكين النهج هنا.
إشعار
في الغالبية العظمى من الحالات، يجب ألا يكون من الضروري تكوين الشهادات أو تثبيتها (rootCA أو العقدة أو العميل أو مخازن الثقة وما إلى ذلك) للاتصال بمثيل Azure المدار ل Apache Cassandra. يمكن تمكين تشفير SSL باستخدام مخزن الثقة الافتراضي وكلمة المرور لوقت التشغيل الذي يستخدمه العميل (راجع نماذج Java و.NET Node.js وPython)، لأن مثيل Azure المدار لشهادات Apache Cassandra سيكون موثوقا به من قبل تلك البيئة. في حالات نادرة، إذا كانت الشهادة غير موثوق بها، فقد تحتاج إلى إضافتها إلى مخزن الثقة.
تكوين شهادات العميل (اختياري)
تكوين شهادات العميل اختياري. يمكن لتطبيق العميل الاتصال بمثيل Azure المدار ل Apache Cassandra طالما تم اتخاذ الخطوات المذكورة أعلاه. ومع ذلك، إذا كان مفضلا، يمكنك أيضا إنشاء وتكوين شهادات العميل للمصادقة. بشكل عام، هناك طريقتان لإنشاء الشهادات:
- الشهادات الموقعة ذاتيا. وهذا يعني شهادة خاصة وعامة (بدون مرجع مصدق) لكل عقدة - في هذه الحالة نحتاج إلى جميع الشهادات العامة.
- شهادات موقعة من قبل المرجع المصدق. يمكن أن يكون هذا مرجعًا مصدقًا موقَّعًا ذاتيًا أو حتى مرجعًا مصدقًا عامًا. في هذه الحالة نحن بحاجة إلى شهادة المرجع المصدق الجذر (راجع التعليمات حول إعداد شهادات SSL للإنتاج)،وجميع الوسطاء (إذا كان ذلك ممكنًا).
إذا كنت ترغب في تنفيذ مصادقة شهادة العميل إلى العقدة أو أمان طبقة النقل المتبادل (mTLS)، فأنت بحاجة إلى توفير الشهادات عبر Azure CLI. سيقوم الأمر أدناه بتحميل شهادات العميل وتطبيقها على مخزن الثقة لمجموعة Cassandra Managed Instance (أي أنك لا تحتاج إلى تحرير 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
استكشاف الأخطاء وإصلاحها
إذا واجهت خطأ عند تطبيق الأذونات على الشبكة الظاهرية باستخدام Azure CLI، مثل لا يمكن العثور على المستخدم أو كيان الخدمة في قاعدة بيانات الرسم البياني ل 'e5007d2c-4b13-4a74-9b6a-605d99f03501'، يمكنك تطبيق نفس الإذن يدويا من مدخل Microsoft Azure. تعرف على كيفية القيام بذلك هنا.
إشعار
يتم استخدام تعيين دور Azure Cosmos DB لأغراض التثبيت فقط. لا يشتمل المثيل المدار بـ Azure لـ Apache Cassandra على تبعيات خلفية على Azure Cosmos DB.
تنظيف الموارد
عند عدم الحاجة، يمكنك استخدام az group delete
الأمر لإزالة مجموعة الموارد والمثيل المدار وجميع الموارد ذات الصلة:
az group delete --name <Resource_Group_Name>
الخطوات التالية
في هذه البداية السريعة، تعلمت كيفية إنشاء Azure Managed Instance لمجموعة Apache Cassandra باستخدام Azure CLI. يمكنك الآن بدء العمل مع نظام المجموعة: