إنشاء خادم PostgreSQL باستخدام أدوات Kubernetes

إشعار

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

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

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

يجب أن تكون قد أنشأت وحدة تحكم بيانات بالفعل.

لإنشاء خادم PostgreSQL باستخدام أدوات Kubernetes، ستحتاج إلى تثبيت أدوات Kubernetes. ستستخدم kubectlالأمثلة في هذه المقالة ، ولكن يمكن استخدام أساليب مماثلة مع أدوات Kubernetes الأخرى مثل لوحة معلومات Kubernetes، ocأو helm إذا كنت على دراية بهذه الأدوات وKubernetes yaml/json.

تثبيت أداة kubectl

نظرة عامة

لإنشاء خادم PostgreSQL، تحتاج إلى إنشاء سر Kubernetes لتخزين تسجيل دخول مسؤول postgres وكلمة المرور بأمان ومورد مخصص لخادم PostgreSQL استنادا postgresqls إلى تعريفات الموارد المخصصة.

إنشاء ملف yaml

يمكنك استخدام ملف yaml للقالب كنقطة بداية لإنشاء ملف yaml لخادم PostgreSQL المخصص الخاص بك. قم بتنزيل هذا الملف إلى الكمبيوتر المحلي وافتحه في محرر نصوص. من المفيد استخدام محرر نص مثل VS Code الذي يدعم تمييز بناء الجملة وlinting لملفات yaml.

مثال على ملف yaml:

apiVersion: v1
data:
  username: <your base64 encoded username>
  password: <your base64 encoded password>
kind: Secret
metadata:
  name: pg1-login-secret
type: Opaque
---
apiVersion: arcdata.microsoft.com/v1beta3
kind: postgresql
metadata:
  name: pg1
spec:
  scheduling:
    default:
      resources:
        limits:
          cpu: "4"
          memory: 4Gi
        requests:
          cpu: "1"
          memory: 2Gi
  services:
    primary:
      type: LoadBalancer # Modify service type based on your Kubernetes environment
  storage:
    data:
      volumes:
      - className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
        size: 5Gi
    logs:
      volumes:
      - className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
        size: 5Gi

تخصيص تسجيل الدخول وكلمة المرور.

يتم تخزين سر Kubernetes كسلسلة مشفرة base64 - واحدة لاسم المستخدم وواحدة لكلمة المرور. ستحتاج إلى ترميز base64 لتسجيل دخول المسؤول وكلمة المرور ووضعهما في موقع العنصر النائب في data.password و data.username. لا تقم بتضمين < الرموز و > المتوفرة في القالب.

يمكنك استخدام أداة عبر الإنترنت لترميز اسم المستخدم وكلمة المرور المطلوبين base64 أو يمكنك استخدام أدوات CLI المضمنة اعتمادا على النظام الأساسي الخاص بك.

PowerShell

[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('<your string to encode here>'))

#Example
#[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('example'))

Linux/macOS

echo -n '<your string to encode here>' | base64

#Example
# echo -n 'example' | base64

تخصيص الاسم

يحتوي القالب على قيمة pg1 لسمة الاسم. يمكنك تغيير هذه القيمة ولكن يجب أن تكون أحرفا تتبع معايير تسمية DNS. إذا قمت بتغيير الاسم، فقم بتغيير اسم السر لمطابقته. على سبيل المثال، إذا قمت بتغيير اسم خادم PostgreSQL إلى pg2، يجب تغيير اسم السر من pg1-login-secret إلى pg2-login-secret

تخصيص متطلبات الموارد

يمكنك تغيير متطلبات الموارد - ذاكرة الوصول العشوائي والحدود والطلبات الأساسية - حسب الحاجة.

إشعار

يمكنك معرفة المزيد حول إدارة موارد Kubernetes.

متطلبات حدود الموارد والطلبات:

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

تخصيص نوع الخدمة

يمكن تغيير نوع الخدمة إلى NodePort إذا رغبت في ذلك. سيتم تعيين رقم منفذ عشوائي.

تخصيص التخزين

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

إنشاء خادم PostgreSQL

الآن بعد أن قمت بتخصيص ملف yaml لخادم PostgreSQL، يمكنك إنشاء خادم PostgreSQL عن طريق تشغيل الأمر التالي:

kubectl create -n <your target namespace> -f <path to your yaml file>

#Example
#kubectl create -n arc -f C:\arc-data-services\postgres.yaml

مراقبة حالة الإنشاء

سيستغرق إنشاء خادم PostgreSQL بضع دقائق حتى يكتمل. يمكنك مراقبة التقدم المحرز في نافذة طرفية أخرى باستخدام الأوامر التالية:

إشعار

تفترض أوامر المثال أدناه أنك قمت بإنشاء خادم PostgreSQL باسم pg1 ومساحة اسم Kubernetes بالاسم arc. إذا استخدمت اسما مختلفا لمساحة الاسم/اسم خادم PostgreSQL، يمكنك استبدال arc و pg1 بأسماء.

kubectl get postgresqls/pg1 --namespace arc
kubectl get pods --namespace arc

يمكنك أيضا التحقق من حالة إنشاء أي جراب معين عن طريق تشغيل kubectl describe الأمر. describe الأمر مفيد بشكل خاص لاستكشاف أي مشكلات وإصلاحها. على سبيل المثال:

kubectl describe pod/<pod name> --namespace arc

#Example:
#kubectl describe pod/pg1-0 --namespace arc

استكشاف مشكلات الإنشاء وإصلاحها

إذا واجهت أي مشكلات في الإنشاء، فراجع دليل استكشاف الأخطاء وإصلاحها.