إنشاء خادم PostgreSQL ممكن ل Azure Arc من CLI

يصف هذا المستند خطوات إنشاء خادم PostgreSQL على Azure Arc والاتصال به.

المتطلبات الأساسية

قبل أن تتمكن من متابعة المهام في هذه المقالة، تحتاج إلى الأدوات اللازمة. تتطلب جميع عمليات التوزيع الأدوات التالية:

  • Azure Data Studio

  • ملحق Azure Arc ل Azure Data Studio

  • Azure CLI (az)

  • arcdata ملحق Azure CLI

  • kubectl

    أدوات العميل الإضافية اعتمادا على البيئة الخاصة بك. للحصول على قائمة أكثر شمولا، راجع أدوات العميل.

بالإضافة إلى الأدوات المطلوبة، لإكمال المهام، تحتاج إلى وحدة تحكم بيانات Azure Arc.

إشعار

كميزة معاينة، تخضع التقنية المقدمة في هذه المقالة إلى شروط الاستخدام التكميلية لمعاينات Microsoft Azure.

تتوفر آخر التحديثات في ملاحظات حول الإصدار.

الشروع في العمل

إذا كنت على دراية بالمواضيع أدناه، يمكنك تخطي هذه الفقرة. هناك مواضيع هامة قد ترغب في قراءتها قبل المتابعة في الإنشاء:

إذا كنت تفضل تجربة الأشياء دون توفير بيئة كاملة بنفسك، فابدأ بسرعة مع Azure Arc Jumpstart على Azure Kubernetes Service (AKS) أو AWS Elastic Kubernetes Service (EKS) أو Google Cloud Kubernetes Engine (GKE) أو في Azure VM.

الخطوة الأولية والمؤقتة لمستخدمي OpenShift فقط

تنفيذ هذه الخطوة قبل الانتقال إلى الخطوة التالية. لنشر خادم PostgreSQL على Red Hat OpenShift في مشروع آخر غير المشروع الافتراضي، تحتاج إلى تنفيذ الأوامر التالية مقابل نظام المجموعة لتحديث قيود الأمان. يمنح هذا الأمر الامتيازات الضرورية لحسابات الخدمة التي ستقوم بتشغيل خادم PostgreSQL. قيد سياق الأمان (SCC) arc-data-scc هو الذي أضفته عند نشر وحدة تحكم بيانات Azure Arc.

oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>

اسم الخادم هو اسم الخادم الذي ستقوم بإنشائه أثناء الخطوة التالية.

لمزيد من التفاصيل حول SCCs في OpenShift، راجع وثائق OpenShift. تابع إلى الخطوة التالية.

إنشاء خادم PostgreSQL ممكن بواسطة Azure Arc

لإنشاء خادم PostgreSQL ممكن بواسطة Azure Arc على وحدة تحكم بيانات Arc، ستستخدم الأمر az postgres server-arc create الذي ستمرر إليه العديد من المعلمات.

للحصول على تفاصيل حول جميع المعلمات التي يمكنك تعيينها في وقت الإنشاء، راجع إخراج الأمر:

az postgres server-arc create --help

المعلمات الرئيسية التي يجب مراعاتها هي:

  • اسم الخادم الذي تريد نشره. الإشارة إما --name أو -n متبوعة باسم يجب ألا يتجاوز طوله 11 حرفا.

  • فئات التخزين التي تريد أن يستخدمها الخادم الخاص بك. من المهم تعيين فئة التخزين مباشرة في الوقت الذي تقوم فيه بنشر خادم حيث لا يمكن تغيير هذا الإعداد بعد النشر. يمكنك تحديد فئات التخزين لاستخدامها للبيانات والسجلات والنسخ الاحتياطية. بشكل افتراضي، إذا لم تشير إلى فئات التخزين، فسيتم استخدام فئات التخزين لوحدة تحكم البيانات.

    • لتعيين فئة التخزين للنسخ الاحتياطية، قم بالإشارة إلى المعلمة --storage-class-backups متبوعة باسم فئة التخزين. يؤدي استبعاد هذه المعلمة إلى تعطيل النسخ الاحتياطية التلقائية
    • لتعيين فئة التخزين للبيانات، قم بالإشارة إلى المعلمة --storage-class-data متبوعة باسم فئة التخزين.
    • لتعيين فئة التخزين للسجلات، قم بالإشارة إلى المعلمة --storage-class-logs متبوعة باسم فئة التخزين.

    هام

    إذا كنت بحاجة إلى تغيير فئة التخزين بعد النشر، واستخراج البيانات، وحذف الخادم، وإنشاء خادم جديد، واستيراد البيانات.

عند تنفيذ أمر الإنشاء، ستتم مطالبتك بإدخال اسم المستخدم وكلمة المرور للمستخدم الإداري. يمكنك تخطي المطالبة التفاعلية عن طريق تعيين AZDATA_USERNAME متغيري بيئة جلسة العمل و AZDATA_PASSWORD قبل تشغيل أمر الإنشاء.

الأمثلة

لنشر خادم PostgreSQL يسمى postgres01 يستخدم نفس فئات التخزين مثل وحدة تحكم البيانات، قم بتشغيل الأمر التالي:

az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s

إشعار

  • إذا قمت بنشر وحدة تحكم البيانات باستخدام AZDATA_USERNAME متغيرات بيئة جلسة العمل في AZDATA_PASSWORD نفس جلسة العمل الطرفية، فسيتم استخدام قيم AZDATA_PASSWORD لنشر خادم PostgreSQL أيضا. إذا كنت تفضل استخدام كلمة مرور أخرى، فقم إما (1) بتحديث قيم AZDATA_USERNAME متغيرات البيئة و AZDATA_PASSWORDAZDATA_PASSWORD أو (2) AZDATA_USERNAME حذفهما أو (3) حذف قيمهما لمطالبتك بإدخال اسم مستخدم وكلمة مرور بشكل تفاعلي عند إنشاء خادم.
  • لن يؤدي إنشاء خادم PostgreSQL إلى تسجيل الموارد على الفور في Azure. كجزء من عملية تحميل مخزون الموارد أو بيانات الاستخدام إلى Azure، سيتم إنشاء الموارد في Azure وستتمكن من رؤية مواردك في مدخل Microsoft Azure.

سرد خوادم PostgreSQL المنشورة في وحدة تحكم بيانات Arc

لسرد خوادم PostgreSQL المنشورة في وحدة تحكم بيانات Arc، قم بتشغيل الأمر التالي:

az postgres server-arc list --k8s-namespace <namespace> --use-k8s
  {
    "name": "postgres01",
    "state": "Ready"
  }

الحصول على نقاط النهاية للاتصال بخوادم PostgreSQL الممكنة في Azure Arc

لعرض نقاط النهاية لخادم PostgreSQL، قم بتشغيل الأمر التالي:

az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s

على سبيل المثال:

{
  "instances": [
    {
      "endpoints": [
        {
          "description": "PostgreSQL Instance",
          "endpoint": "postgresql://postgres:<replace with password>@123.456.78.912:5432"
        },
        {
          "description": "Log Search Dashboard",
        },
        {
          "description": "Metrics Dashboard",
          "endpoint": "https://98.765.432.11:3000/d/postgres-metrics?var-Namespace=arc&var-Name=postgres01"
        }
      ],
      "engine": "PostgreSql",
      "name": "postgres01"
    }
  ],
  "namespace": "arc"
}

يمكنك استخدام نقطة نهاية مثيل PostgreSQL للاتصال بخادم PostgreSQL من الأداة المفضلة لديك: Azure Data Studio وpgcli psql وpg مسؤول وما إلى ذلك.

في هذا الوقت، استخدِم الإصدارات الخاصة بـ Azure Data Studio.

ملاحظة خاصة حول عمليات نشر الجهاز الظاهري Azure

عند استخدام جهاز Azure ظاهري، لن يعرض عنوان IP لنقطة النهاية عنوان IP العام . لتحديد موقع عنوان IP العام، استخدم الأمر التالي:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

يمكنك بعد ذلك دمج عنوان IP العام مع المنفذ لإجراء اتصالك.

قد تحتاج أيضا إلى كشف منفذ خادم PostgreSQL من خلال بوابة أمان الشبكة (NSG). للسماح بحركة المرور من خلال (NSG)، قم بتعيين قاعدة. لتعيين قاعدة، ستحتاج إلى معرفة اسم NSG الخاص بك. يمكنك تحديد NSG باستخدام الأمر أدناه:

az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table

بمجرد أن يكون لديك اسم NSG، يمكنك إضافة قاعدة جدار حماية باستخدام الأمر التالي. تنشئ قيم المثال هنا قاعدة NSG للمنفذ 30655 وتسمح بالاتصال من أي عنوان IP مصدر.

تحذير

لا نوصي بتعيين قاعدة للسماح بالاتصال من أي عنوان IP مصدر. يمكنك تأمين الأشياء بشكل أفضل عن طريق تحديد -source-address-prefixes قيمة خاصة بعنوان IP للعميل أو نطاق عناوين IP يغطي عناوين IP لفريقك أو مؤسستك.

استبدل قيمة المعلمة --destination-port-ranges أدناه برقم المنفذ الذي حصلت عليه من az postgres server-arc list الأمر أعلاه.

az network nsg rule create -n db_port --destination-port-ranges 30655 --source-address-prefixes '*' --nsg-name azurearcvmNSG --priority 500 -g azurearcvm-rg --access Allow --description 'Allow port through for db access' --destination-address-prefixes '*' --direction Inbound --protocol Tcp --source-port-ranges '*'

الاتصال مع Azure ستوديو البيانات

افتح Azure Data Studio واتصل بالمثيل الخاص بك باستخدام عنوان IP لنقطة النهاية الخارجية ورقم المنفذ أعلاه، وكلمة المرور التي حددتها في وقت إنشاء المثيل. إذا لم يكن PostgreSQL متوفرا في القائمة المنسدلة لنوع الاتصال، يمكنك تثبيت ملحق PostgreSQL عن طريق البحث عن PostgreSQL في علامة تبويب الملحقات.

إشعار

ستحتاج إلى النقر فوق الزر [خيارات متقدمة] في لوحة الاتصال لإدخال رقم المنفذ.

تذكر، إذا كنت تستخدم Azure VM، فستحتاج إلى عنوان IP العام ، والذي يمكن الوصول إليه عبر الأمر التالي:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

الاتصال مع psql

للوصول إلى خادم PostgreSQL، مرر نقطة النهاية الخارجية لخادم PostgreSQL الذي قمت باسترداده من أعلى:

يمكنك الآن توصيل أي من psql:

psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655