Kubernetes هو الآن الطريقة القياسية لنشر التطبيقات القابلة للتوسع وذات التوفر العالي. يتيح Kubernetes للمطورين تشغيل وإيقاف المثيلات بسرعة حسب الحاجة لضمان تقديم المحتوى بسلاسة. لمعرفة المزيد حول Kubernetes، اتبع دليلنا المفصل التعرف على Kubernetes.
Helm هو مدير حزم شائع جدًا يُستخدم لتثبيت التطبيقات على Kubernetes. يهدف Helm إلى نشر وإدارة التطبيقات على مجموعات Kubernetes وتبسيط العملية أثناء تقدمنا. كما يوفر الوصول إلى تطبيقات جاهزة للاستخدام لـ Kubernetes والتي يتم حزمها. وتسمى هذه بـ Charts. يعد الإلمام بـ Kubernetes و Helm إضافة مهمة لترسانة أي متخصص في DevOps.
WordPress هو أحد أشهر أنظمة إدارة المحتوى (CMS). ودمجه مع MySQL قاعدة البيانات يؤدي إلى تطبيقات ويب عالية الأداء وقابلة للتوسع بشكل كبير. كما أن إبقاء MySQL خارجيًا سيسمح لمزيد من التطبيقات بالاستفادة من نفس قاعدة البيانات لحالات الاستخدام الخاصة بها.
في هذا المنشور، سنقوم بـ تثبيت WordPress على Kubernetes باستخدام مدير حزم Helm وتوصيلهما بخادم MySQL خارجي. لنبدأ!
المتطلبات الأساسية
سيلزم إعداد البرامج التالي لإكمال هذا البرنامج التعليمي بنجاح:
- مجموعة Kubernetes تعمل ونشطة. اتبع هذا البرنامج التعليمي لمعرفة خطوات تثبيت Kubernetes على Ubuntu.
- أداة سطر أوامر Kubernetes
kubectl. - ستحتاج إلى تثبيت مدير حزم Helm. إذا لم يكن لديك Helm جاهزًا للاستخدام، فيمكنك تنزيله من صفحة الإصدار الرسمية الخاصة به على GitHub – helm/helm: مدير حزم Kubernetes. للبدء بدليل خطوة بخطوة لـ Helm، يمكنك أيضًا قراءة مقدمة إلى Helm: مدير الحزم لـ Kubernetes.
- ستحتاج إلى تثبيت MySQL بالإضافة إلى مستخدم root وكلمة المرور. إذا كنت جديدًا على MySQL، فتأكد من مراجعة كيفية إعداد MySQL على خادم وأساسيات MySQL و مستخدم MySQL – إنشاء ومنح الأذونات.
تحتاج أيضًا إلى أن يكون لديك مجموعة Kubernetes قيد التشغيل ومتصلة بـ MySQL. بالنسبة للمستخدمين الذين لديهم مجموعات متعددة، تأكد من معرفة المجموعة الحالية المتصلة بـ MySQL. لرؤية جميع المجموعات المختلفة التي تم تكوينها في ملف kubectl الخاص بك، قم بتشغيل الأمر أدناه:
|
1 |
kubectl config get-contexts |
على جهازك، يجب أن تحصل على المخرجات أدناه:
|
الحالي |
الاسم |
المجموعة |
معلومات المصادقة |
مساحة الاسم |
|
* |
docker-desktop |
docker-desktop |
docker-desktop |
بما أننا نستخدم Docker Desktop لتشغيل Kubernetes، فسترى docker-desktop معروضًا. قد تختلف قيمك. تشير علامة النجمة (*) إلى المجموعة التي تمثل السياق الافتراضي حاليًا. في حال كنت بحاجة إلى تغيير السياق الحالي، قم بتشغيل:
|
1 |
kubectl config use-context context-name |
أنت الآن جاهز لاتباع خطوات البرنامج التعليمي.
إعداد MySQL
أولاً، سنقوم بإنشاء مستخدم مخصص في MySQL للاتصال بـ WordPress. هذا ضروري لأن تثبيت WordPress الخاص بنا سيعيش على خادم منفصل داخل مجموعة Kubernetes. من خادم MySQL، قم بتسجيل الدخول إلى MySQL باستخدام الأمر التالي:
|
1 |
mysql -u root -p |
سيُطلب منك كلمة مرور root. أدخل كلمة المرور وسيتم توصيلك.
-
إنشاء قاعدة بيانات مخصصة لـ WordPress
في MySQL يمكن أن يكون هناك أي عدد من قواعد البيانات. يمكن أيضًا مشاركة قواعد بيانات أخرى بين التطبيقات. يأتي WordPress مع قاعدة البيانات الخاصة به أيضًا. هنا يتعين علينا إنشاء قاعدة بيانات مخصصة لـ WordPress. لإنشاء قاعدة البيانات المخصصة هذه، يمكنك تنفيذ العبارة أدناه على واجهة تفاعل MySQL:
|
1 |
CREATE DATABASE wordpress |
-
إنشاء مستخدم مخصص لـ WordPress
بعد إنشاء قاعدة البيانات، سنقوم بإنشاء مستخدم مخصص لقاعدة البيانات هذه. سنستخدم هذا المستخدم للاتصال بقاعدة البيانات التي تم إنشاؤها حديثًا:
|
1 |
CREATE USER wordpress_user IDENTIFIED BY '<password>'; |
أدخل كلمة مرور قوية أعلاه. على الرغم من أننا قمنا بإنشاء المستخدم لـ WordPress، إلا أننا لم نضف أي صلاحيات حتى الآن. نحتاج إلى توفير صلاحيات لمستخدمينا للوصول وعمليات DML (تعديل البيانات). لتبسيط الأمور، سنقوم بتزويد مستخدمينا بجميع الصلاحيات. كن حذرًا، لا يوصى بهذا في بيئة الإنتاج. قم بتنفيذ الأمر أدناه في واجهة MySQL:
|
1 |
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@'%'; |
لتحديث جداول MySQL الداخلية التي تدير أذونات الوصول، استخدم العبارة التالية:
|
1 |
FLUSH PRIVILEGES; |
أخيرًا، يمكنك إغلاق عميل MySQL عن طريق تشغيل الأمر أدناه في واجهة MySQL:
|
1 |
Exit; |
-
التحقق من المستخدم وقاعدة البيانات الخاصة بنا
بعد ذلك، يتعين علينا التحقق من أن مستخدم WordPress يمكنه الاتصال بـ قاعدة بيانات WordPress. للقيام بذلك، افتح واجهة MySQL وقم بتشغيل الأمر أدناه:
|
1 |
mysql -u <wordpress_user> -p |
|
1 |
show databases |
-
السماح بالاتصالات عن بعد بخادم MySQL الخاص بنا
حتى الآن، لدينا مستخدم WordPress وقاعدة بيانات WordPress يعملان. ومع ذلك، فإن خادم MySQL وقاعدة بيانات WordPress الخاصة بنا موجودان على خوادم منفصلة. وبالتالي، نحتاج إلى التأكد من أن WordPress يمكنه الاتصال بقاعدة بيانات MySQL. لهذا، نحتاج إلى تعديل تكوين MySQL للسماح بالاتصالات القادمة من الأجهزة المضيفة البعيدة. ستحتاج إلى تعديل ملف mysqld.cnf. في الأنظمة القائمة على Linux، يوجد هذا الملف تحت:
|
1 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
بعد ذلك، افتح الملف باستخدام أي محرر نصوص وحدد موقع bind-address. يحدد bind-address عنوان IP الذي يمكن لـ MySQL الاستماع إليه. بشكل افتراضي، يستمع MySQL فقط على 127.0.0.1.. للسماح بالاتصالات من الأجهزة المضيفة الخارجية، قم بتغيير bind-address إلى 0.0.0.0.. لتطبيق هذه التغييرات، أعد تشغيل خادم MySQL عن طريق تشغيل الأمر أدناه:
|
1 |
systemctl restart mysql |
|
1 |
mysql -h <mysql_server_ip> -u wordpress_user -p |
mysql_server_ip إلى الأمر أعلاه وقم بالتنفيذ. إذا تمكنت من الاتصال دون أخطاء، يمكنك المضي قدمًا.
تثبيت وترقية WordPress
يستخدم WordPress افتراضيًا MariaDB كقاعدة بيانات له. لا نريد استخدام قاعدة البيانات هذه، لأننا نريد قاعدة بيانات MySQL الخاصة بنا. إلى جانب هذا التغيير، نحتاج أيضًا إلى تكوين اسم مستخدم المسؤول وكلمة المرور. سنقوم بذلك عن طريق تنفيذ معلمات سطر الأوامر.
أولاً، قم بإنشاء مجلد جديد باسم my blog-settings. داخل المجلد، قم بإنشاء ملف جديد باسم values.yaml. أدخل المحتويات أدناه في ملف values.yaml:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## WordPress Settings wordpressUsername: my_user wordpressPassword: some_strong_password wordpressEmail: sample@example.com wordpressFirstName: User wordpressLastName: Last wordpressBlogName: My المدونة! ## Database Settings externalDatabase: host: <mysql_server_ip> user: wordpress_user password: password database: wordpress ## Enable Maria DB mariadb: enabled: false |
هذا الملف يشرح نفسه. تلاحظ أننا قمنا بتعطيل MariaDB أدناه. الآن بعد أن أصبح التكوين الخاص بنا جاهزًا، حان الوقت لتنفيذ helm لتثبيت WordPress. قم بتشغيل الأمر أدناه في PowerShell:
|
1 |
helm install myblog -f values.yaml stable/wordpress |
myblog-wordpress. سيستغرق الأمر بعض الوقت قبل أن يصبح WordPress جاهزًا للاستخدام. للعثور على الخدمات قيد التشغيل، قم بتنفيذ الأمر أدناه:|
1 |
kubectl get services |
|
الاسم |
النوع |
CLUSTER-IP |
EXTERNAL-IP |
المنفذ |
|
myblog-wordpress |
ClusterIP |
10.96.0.1 |
<none> |
80:31403/TCP,443:30879/TCP |
هنا لدينا معلومات مفيدة للغاية حول الخدمات قيد التشغيل. نحتاج إلى الانتباه إلى عنوان IP الخارجي والمنفذ. عنوان IP الخارجي هو عنوان IP الذي يتم تقديم موقع WordPress الخاص بك عليه. نظرًا لأننا نستخدم Docker Desktop، فإننا نحصل على لا شيء (none) تحت عنوان IP الخارجي. ستحصل على عنوان IP اعتمادًا على نظامك. افتح متصفح الويب الخاص بك وأدخل عنوان IP هذا. سترى صفحة تسجيل الدخول إلى WordPress:
هذه هي بيانات الاعتماد التي قدمناها في ملف YAML أعلاه. أدخل بيانات الاعتماد هذه وستكون جاهزًا لتهيئة موقع الويب الخاص بك على WordPress وتخزين المحتوى في قاعدة بيانات MySQL التي تم إنشاؤها حديثًا.
ترقية WordPress
يصدر WordPress تحديثات لإصلاح الثغرات الأمنية وطرح المزيد من الميزات/إصلاحات الأخطاء والمزيد. يمكنك ترقية تثبيت WordPress عن طريق تشغيل الأمر أدناه في PowerShell:
|
1 |
helm upgrade |
قبل الترقية، إذا كنت تريد رؤية قائمة الإصدارات، يمكنك تشغيل الأمر أدناه:
|
1 |
helm list |
ستحصل على المخرجات التالية مثل:
|
1 2 3 |
انتظر قليلاً بينما نحن نجلب الـ أحدث من الخاصة بك مخطط مستودعات… …تخطي محلي مخطط مستودع …بنجاح حصل على تحديث من الـ “stable” مخطط مستودع |
إذا كنت تريد معرفة ما إذا كان هناك إصدار جديد من مستودع WordPress متاحًا، فيمكنك تشغيل الأمر أدناه:
|
1 |
helm inspect chart stable/wordpress |
كلما أردت ترقية إصدار WordPress الخاص بك إلى أحدث مخطط WordPress، يجب عليك تشغيل:
|
1 |
helm upgrade -f values.yaml <your_name> stable/wordpress |
يجب علينا استخدام نفس ملف التكوين كما كان من قبل حتى لا تتغير قيم التكوين.
التراجع عن إصدار
في كل مرة تقوم فيها بإجراء ترقية باستخدام Helm، يقوم Helm بإنشاء نقطة تفتيش للإصدار. يمكنك العودة إذا لم تسر الأمور كما هو متوقع. يمكن مقارنة الإصدارات والتراجع عنها. إذا سارت عملية الترقية بشكل خاطئ بسبب أي مشكلة، يمكنك التراجع إلى الإصدار السابق. للتراجع، قم بتنفيذ الأمر أدناه:
|
1 |
helm rollback release-name revision-number |
في حالتنا، قم بتشغيل الأمر أدناه للتراجع إلى الإصدار السابق:
|
1 |
helm rollback myblog 1 |
للتحقق الآن من اكتمال عملية التراجع بنجاح، يمكنك تنفيذ أمر helm list .
الخاتمة
في هذا البرنامج التعليمي الشامل، أوضحنا لك كيفية إعداد MySQL وتثبيت WordPress باستخدام قاعدة بيانات MySQL الخارجية هذه. قمنا بتثبيت WordPress على Kubernetes باستخدام مدير حزم Helm وأجرينا أيضًا ترقيات في WordPress.
الآن بعد أن أصبحت على دراية بالتثبيت على Kubernetes باستخدام Helm، لا تتوقف هنا. لا تتردد في تصفح مدونة CloudSigma لمعرفة المزيد عن Kubernetes:
- نشر تطبيق PHP على عنقود Kubernetes باستخدام Ubuntu 18.04
- كيفية إنشاء عنقود Kubernetes باستخدام Kubeadm على Ubuntu 18.04
- ما هو Docker؟ نظرة عامة على نظام Docker البيئي
حوسبة سعيدة!

التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.