الإنشاء والتوزيع إلى خدمة Azure Kubernetes باستخدام Azure Pipelines
خدمات Azure DevOps
استخدم Azure Pipelines للتوزيع تلقائيًا إلى Azure Kubernetes Service (AKS). يتيح لك Azure Pipelines الإنشاء والاختبار والنشر باستخدام التكامل المستمر (CI) والتسليم المستمر (CD) باستخدام Azure DevOps.
في هذه المقالة، ستتعلم كيفية إنشاء مسار يقوم بإنشاء تطبيقك ونشره باستمرار. في كل مرة تقوم فيها بتغيير التعليمات البرمجية في مستودع يحتوي على Dockerfile، يتم دفع الصور إلى سجل حاويات Azure الخاص بك، ثم يتم نشر البيانات إلى نظام مجموعة AKS.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
- اتصال خدمة Azure Resource Manager. إنشاء اتصال خدمة Azure Resource Manager.
- حساب GitHub. قم بإنشاء GitHub account مجاني إذا لم يكن لديك حساب بالفعل.
الحصول على الرمز
نسخ المستودع التالي الذي يحتوي على نموذج تطبيق وDockerfile:
https://github.com/MicrosoftDocs/pipelines-javascript-docker
إنشاء موارد Azure
سجل الدخول إلى مدخل Microsoft Azure، ثم حدد الزر Cloud Shell في الزاوية العلوية اليسرى. استخدم Azure CLI أو PowerShell لإنشاء نظام مجموعة AKS.
إنشاء سجل حاويات
# Create a resource group
az group create --name myapp-rg --location eastus
# Create a container registry
az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
# Create a Kubernetes cluster
az aks create \
--resource-group myapp-rg \
--name myapp \
--node-count 1 \
--enable-addons monitoring \
--generate-ssh-keys
تسجيل الدخول إلى Azure Pipelines
سجل الدخول إلى Azure Pipelines. بعد تسجيل الدخول، ينتقل المستعرض إلى https://dev.azure.com/my-organization-name
ويعرض لوحة معلومات Azure DevOps.
ضمن مؤسستك المحددة، قم بإنشاء مشروع. إذا لم يكن لديك أي مشاريع في مؤسستك، فسترى شاشة إنشاء مشروع لبدء الاستخدام. وإلا، حدد الزر إنشاء مشروع في الزاوية العلوية اليسرى من لوحة المعلومات.
إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية
الاتصال بالمستودع وتحديده
سجل الدخول إلى مؤسسة Azure DevOps، وانتقل إلى مشروعك.
انتقل إلى Pipelines، ثم حدد New pipeline.
قم بخطوات المعالج عن طريق تحديد GitHub كموقع للتعليمات البرمجية المصدر.
قد تتم إعادة توجيهك إلى GitHub لتسجيل الدخول. إذا كان الأمر كذلك، فأدخل بيانات اعتماد GitHub.
عندما ترى قائمة مستودعات، حدد مستودعك.
قد تتم إعادة توجيهك إلى GitHub لتثبيت تطبيق Azure Pipelines. إذا كان الأمر كذلك، فحدد Approve & install.
حدد النشر في Azure Kubernetes Service.
إذا تمت مطالبتك، فحدد الاشتراك الذي أنشأت فيه السجل والكتلة.
حدد نظام المجموعة
myapp
.بالنسبة إلى Namespace، حدد Existing، ثم حدد default.
حدد اسم سجل الحاوية الخاص بك.
يمكنك ترك اسم الصورة معينًا إلى الافتراضي.
تعيين منفذ الخدمة إلى 8080.
قم بتعيين خانة الاختيار تمكين تطبيق المراجعة لطلبات السحب لمراجعة التكوين المتعلق بالتطبيق ليتم تضمينه في البنية الأساسية لبرنامج ربط العمليات التجارية YAML التي تم إنشاؤها تلقائيا في الخطوات اللاحقة.
حدد Validate and configure.
بينما تنشئ البنية الأساسية لبرنامج ربط العمليات التجارية Azure البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك، سوف تقوم العملية بما يلي:
إنشاء اتصال خدمة سجل Docker لتمكين البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك لدفع الصور إلى سجل الحاوية.
إنشاء بيئة ومورد Kubernetes داخل البيئة. بالنسبة إلى نظام المجموعة الذي يدعم التحكم في الوصول استنادًا إلى الدور، ينشئ مورد Kubernetes الذي تم إنشاؤه ضمنيًا كائنات ServiceAccount وRoleBinding في نظام المجموعة بحيث لا يمكن لـServiceAccount الذي تم إنشاؤه تنفيذ عمليات خارج مساحة الاسم المختارة.
قم بإنشاء ملف azure-pipelines.yml، والذي يحدد البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك.
إنشاء ملف بيان Kubernetes. يتم إنشاء هذه الملفات عن طريق ترطيب قوالب deployment.ymlوservice.yml استنادًا إلى التحديدات التي أجريتها. عندما تكون جاهزًا، حدد حفظ وتشغيل.
حدد حفظ وتشغيل.
يمكنك تغيير رسالة Commit إلى شيء مثل Add pipeline to our repository. عندما تكون جاهزًا، حدد حفظ وتشغيل لتثبيت البنية الأساسية لبرنامج ربط العمليات التجارية الجديدة في المستودع الخاص بك، ثم ابدأ التشغيل الأول للبنية الأساسية لبرنامج ربط العمليات التجارية الجديدة!
الاطلاع على نشر التطبيق
بينما يتم تشاغيل خط الأنابيب الخاص بك، شاهد مرحلة البناء الخاصة بك، ثم مرحلة النشر الخاصة بك، وانتقل من الأزرق (تشغيل) إلى الأخضر (الانتهاء). يمكنك تحديد المراحل والوظائف لمشاهدة المسار الخاص بك في أثناء العمل.
إشعار
إذا كنت تستخدم وكيلًا مستضافًا من Microsoft، فيجب إضافة نطاق IP للعامل المستضاف من Microsoft إلى جدار الحماية الخاص بك. احصل على القائمة الأسبوعية لنطاقات IP من ملف JSON الأسبوعي، والذي يتم نشره كل يوم أربعاء. تصبح نطاقات IP الجديدة فعالة في يوم الاثنين التالي. لمزيد من المعلومات راجع، عوامل مستضافة من Microsoft. للعثور على نطاقات IP المطلوبة لمؤسسة Azure DevOps، تعرف على كيفية تحديد نطاقات IP المحتملة للوكلاء المستضافين من Microsoft.
بعد الانتهاء من تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية، استكشف ما حدث ثم انتقل إلى رؤية تطبيقك المنشور. من ملخص البنية الأساسية لبرنامج ربط العمليات التجارية:
حدد علامة التبويب البيئات.
حدد عرض البيئة.
حدد مثيل التطبيق الخاص بك لمساحة الاسم التي قمت بنشرها. إذا استخدمت الإعدادات الافتراضية، فهذا هو تطبيق myapp في مساحة الاسم الافتراضية.
حدد علامة التبويب الخدمات.
اختر عنوان IP الخارجي وانسخه إلى حافظتك.
افتح علامة تبويب أو نافذة مستعرض جديدة وأدخل <عنوان> IP:8080.
إذا كنت تقوم بإنشاء نموذج التطبيق الخاص بنا، فسيظهر Hello world في المستعرض الخاص بك.
كيفية بناء البنية الأساسية لبرنامج ربط العمليات التجارية
عند الانتهاء من تحديد الخيارات ثم تابعت للتحقق من صحة وتكوين البنية الأساسية لبرنامج ربط العمليات التجارية Azure البنية الأساسية لبرنامج ربط العمليات التجارية التي أنشأت مسارًا لك، باستخدام قالب Deploy to Azure Kubernetes Service.
تستخدم مرحلة الإنشاء مهمة Docker لإنشاء الصورة ودفعها إلى Azure Container Registry.
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
- task: PublishPipelineArtifact@1
inputs:
artifactName: 'manifests'
path: 'manifests'
تستخدم مهمة التوزيع مهمة بيان Kubernetes لإنشاء imagePullSecret
ما تتطلبه عقد نظام مجموعة Kubernetes للسحب من مورد Azure Container Registry. ثم يتم استخدام ملفات البيان بواسطة مهمة بيان Kubernetes للنشر إلى مجموعة Kubernetes. تم إنشاء ملفات البيان و service.yml
deployment.yml
عند استخدام قالب Deploy to Azure Kubernetes Service .
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
jobs:
- deployment: Deploy
displayName: Deploy job
pool:
vmImage: $(vmImageName)
environment: 'myenv.aksnamespace' #customize with your environment
strategy:
runOnce:
deploy:
steps:
- task: DownloadPipelineArtifact@2
inputs:
artifactName: 'manifests'
downloadPath: '$(System.ArtifactsDirectory)/manifests'
- task: KubernetesManifest@1
displayName: Create imagePullSecret
inputs:
action: 'createSecret'
connectionType: 'kubernetesServiceConnection'
kubernetesServiceConnection: 'myapp-default' #customize for your Kubernetes service connection
secretType: 'dockerRegistry'
secretName: '$(imagePullSecret)'
dockerRegistryEndpoint: '$(dockerRegistryServiceConnection)'
- task: KubernetesManifest@1
displayName: Deploy to Kubernetes cluster
inputs:
action: 'deploy'
connectionType: 'kubernetesServiceConnection'
kubernetesServiceConnection: 'myapp-default' #customize for your Kubernetes service connection
manifests: |
$(Pipeline.Workspace)/manifests/deployment.yml
$(Pipeline.Workspace)/manifests/service.yml
containers: '$(containerRegistry)/$(imageRepository):$(tag)'
imagePullSecrets: '$(imagePullSecret)'
تنظيف الموارد
كلما انتهيت من الموارد التي أنشأتها، يمكنك استخدام الأمر التالي لحذفها:
az group delete --name myapp-rg
أدخل y
عندما تتم مطالبتك.
Azure Kubernetes Service