البرنامج التعليمي: تحديث تطبيق في خدمة Azure Kubernetes Service (AKS)

بعد نشر تطبيق في Kubernetes، يمكن تحديثه عن طريق تحديد صورة حاوية جديدة أو إصدار صورة. يتم تنظيم تحديث بحيث يتم تحديث جزء من النشر فقط في الوقت ذاته. هذا التحديث المرحلي يمكّن التطبيق من الاستمرار في العمل أثناء التحديث. كما يوفر إمكانية العودة إلى الحالة السابقة إذا فشل النشر.

في هذا البرنامج التعليمي، في الجزء السادس من الأجزاء السبعة، سيتم تحديث Azure Vote كمثال. ‏‫ستتعلم كيفية:

  • تحديث رمز التطبيق الأمامي
  • إنشاء صورة حاوية محدّثة
  • دفع الصورة إلى Azure Container Registry
  • نشر الصورة الحاوية المحدّثة

قبل البدء

في الدروس السابقة، تم حزم تطبيق في صورة حاوية. تم تحميل هذه الصورة إلى Azure Container Registry، وأنشأت نظام مجموعة AKS. ثم تم نشر التطبيق إلى نظام مجموعة AKS.

كما تم استنساخ مستودع التطبيق الذي يتضمن التعليمات البرمجية المصدر للتطبيق، وتم استخدام ملف Docker Compose الذي تم إنشاؤه مسبقًا في هذا البرنامج التعليمي. تحقق من إنشاء نسخة من مستودع النماذج، وتغيير الدلائل إلى الدليل المستنسخ. إذا لم تكن أكملت هذه الخطوات، وترغب في المتابعة، فابدأ بالبرنامج التعليمي: البرنامج التعليمي 1 – إنشاء الصور الحاوية.

يتطلب هذا البرنامج التعليمي تشغيل الإصدار 2.0.53 من Azure CLI أو إصدار أحدث. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

تحديث تطبيق

دعنا نجري بضعة تغييرات على التطبيق المثال، ثم نقوم بتحديث الإصدار الذي تم نشره بالفعل إلى نظام المجموعة AKS. تأكد من أنك في الدليل المستنسخ azure-voting-app-redis. يمكن العثور على نموذج التعليمات البرمجية المصدر للتطبيق داخل الدليل azure-vote. افتح الملف config_file.cfg باستخدام محرر، مثل: vi

vi azure-vote/azure-vote/config_file.cfg

قم بتغيير القيمتين VOTE1VALUE و VOTE2VALUE إلى قيم مختلفة، مثل الألوان. يوضح المثال التالي القيم المحدّثة:

# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'

احفظ الملف وأغلقه. في vi، استخدم :wq.

إنشاء الصورة الحاوية

لإعادة إنشاء صورة الواجهة الأمامية واختبار التطبيق المحدّث، استخدم docker-compose. يتم استخدام الوسيطة --build لإرشاد Docker Compose لإعادة إنشاء صورة التطبيق:

docker-compose up --build -d

اختبر التطبيق محليًا

للتحقق من أن صورة الحاوية المحدّثة تعرض التغييرات، افتح متصفح ويب محلي إلى http://localhost:8080.

Screenshot showing an example of the updated container image Azure Voting App running locally opened in a local web browser

يتم عرض القيم المحدّثة المتوفرة في ملف config_file.cfg في التطبيق قيد التشغيل.

وضع علامة على الصورة ودفعها

لاستخدام الصورة المحدّثة بشكلٍ صحيح، ضع علامة على الصورة azure-vote-front باسم خادم تسجيل الدخول الخاص بسجل ACR. الحصول على اسم خادم تسجيل الدخول باستخدام الأمر az acr list

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

استخدم علامة docker لوضع علامة على الصورة. استبدال <acrLoginServer> اسم خادم تسجيل الدخول ACR أو اسم مضيف التسجيل العام وتحديث إصدار الصورة إلى :v2 كما يلي:

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v2

الآن استخدم دفع docker لتحميل الصورة إلى السجل الخاص بك. استبدل <acrLoginServer> باسم خادم تسجيل الدخول ACR الخاص بك.

إشعار

إذا واجهت مشكلات في دفع إلى سجل ACR، تأكد من أنك لا تزال مُسجلاً دخولك. شغّل الأمر az acr login باستخدام اسم سجل حاوية Azure الذي قمت بإنشائه في الخطوة إنشاء سجل حاوية Azure. على سبيل المثال، az acr login --name <azure container registry name>

docker push <acrLoginServer>/azure-vote-front:v2

نشر التطبيق المحدّث

لتوفير أقصى وقت تشغيل، يجب تشغيل مثيلات متعددة من جراب التطبيق. تحقق من عدد مثيلات الواجهة الأمامية الجارية باستخدام الأمر: kubectl get pods

$ kubectl get pods

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-217588096-5w632    1/1       Running   0          10m
azure-vote-front-233282510-b5pkz   1/1       Running   0          10m
azure-vote-front-233282510-dhrtr   1/1       Running   0          10m
azure-vote-front-233282510-pqbfk   1/1       Running   0          10m

إذا لم يكن لديك عدة جرابات أمامية،، فقم بتوسيع نطاق النشر azure-vote-front كما يلي:

kubectl scale --replicas=3 deployment/azure-vote-front

لتحديث التطبيق، استخدم الأمر kubectl set. حدّث <acrLoginServer> باستخدام خادم تسجيل الدخول أو اسم المضيف من تسجيل الحاوية الخاصة بك، وتحديد إصدار التطبيق v2:

kubectl set image deployment azure-vote-front azure-vote-front=<acrLoginServer>/azure-vote-front:v2

لمراقبة النشر، استخدم الأمر kubectl get pod. أثناء نشر التطبيق المحدّث، يتم التخلص من الجرابات الموجودة وإعادة إنشائها مع صورة الحاوية الجديدة.

kubectl get pods

تُظهر مخرجات المثال التالي كيفية التخلص من الجرابات الموجودة والمثيلات الجديدة قيد التشغيل أثناء تقدم النشر:

$ kubectl get pods

NAME                               READY     STATUS        RESTARTS   AGE
azure-vote-back-2978095810-gq9g0   1/1       Running       0          5m
azure-vote-front-1297194256-tpjlg  1/1       Running       0          1m
azure-vote-front-1297194256-tptnx  1/1       Running       0          5m
azure-vote-front-1297194256-zktw9  1/1       Terminating   0          1m

اختبار التطبيق المحدّث

لعرض التطبيق المحدّث، احصل أولا على عنوان IP خارجي لخدمة azure-vote-front:

kubectl get service azure-vote-front

الآن، افتح متصفح ويب إلى عنوان IP من الخدمة الخاصة بك:

Screenshot showing an example of the updated image Azure Voting App running in an AKS cluster opened in a local web browser.

الخطوات التالية

في هذا البرنامج التعليمي، قمت بتحديث تطبيق وطرح هذا التحديث في نظام مجموعة AKS الخاصة بك. لقد تعرفت على كيفية:

  • تحديث رمز التطبيق الأمامي
  • إنشاء صورة حاوية محدّثة
  • دفع الصورة إلى Azure Container Registry
  • نشر الصورة الحاوية المحدّثة

تقدّم إلى البرنامج التعليمي التالي لمعرفة كيفية ترقية نظام مجموعة AKS إلى إصدار جديد من Kubernetes.