إنشاء الحاويات واختبارها ونشرها في Azure Kubernetes Service (AKS) باستخدام GitHub Actions
تمنحك إجراءات GitHub Actions المرونة لبناء سير عمل دورة حياة تطوير البرامج المؤتمت. يمكنك استخدام إجراءات Kubernetes متعددة للنشر في حاويات من Azure Container Registry (ACR) إلى Azure Kubernetes Service (AKS) باستخدام GitHub Actions.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب، فبادر بإنشاء حساب مجانا.
- حساب GitHub. في حالة عدم امتلاك حساب، يمكنك التسجيل مجاناً.
- عند استخدام إجراءات GitHub، تحتاج إلى تكوين التكامل بين Azure ومستودع GitHub الخاص بك. لتكوين التكامل، راجع استخدام إجراءات GitHub للاتصال ب Azure.
- نظام مجموعة AKS موجود مع ACR مرفق. إذا لم يكن لديك واحد، فشاهد المصادقة باستخدام ACR من AKS.
إجراءات GitHub لـ AKS
باستخدام إجراءات GiHub، يمكنك أتمتة مهام سير عمل تطوير البرامج من داخل GitHub. لمزيد من المعلومات، راجع إجراءات GitHub ل Azure.
يسرد الجدول التالي الإجراءات المتوفرة ل AKS:
Name | الوصف | مزيد من التفاصيل |
---|---|---|
azure/aks-set-context |
تعيين سياق نظام مجموعة AKS الهدف للإجراءات الأخرى لاستخدام أو تشغيل أي أوامر kubectl. | azure/aks-set-context |
azure/k8s-set-context |
تعيين سياق مجموعة Kubernetes الهدف للإجراءات الأخرى لاستخدام أو تشغيل أي أوامر kubectl. | azure/k8s-set-context |
azure/k8s-bake |
اخبز ملف البيان لاستخدامه في عمليات النشر باستخدام Helm أو kustomize أو kompose. | azure/k8s-bake |
azure/k8s-create-secret |
أنشئ سرًا عامًا أو سر سجل عامل الإرساء في مجموعة Kubernetes. | azure/k8s-create-secret |
azure/k8s-deploy |
نشر البيانات إلى مجموعات Kubernetes. | azure/k8s-deploy |
azure/k8s-lint |
التحقق من صحة / فحص ملفات البيان الخاصة بك. | azure/k8s-lint |
azure/setup-helm |
قم بتثبيت إصدار محدد من Helm binary على المشغّل. | azure/setup-helm |
azure/setup-kubectl |
تثبيت إصدار معين من kubectl على المشغل. | azure/setup-kubectl |
azure/k8s-artifact-substitute |
تحديث العلامة أو تجزئة صور الحاوية. | azure/k8s-artifact-substitute |
azure/aks-create-action |
قم بإنشاء مجموعة AKS باستخدام Terraform. | azure/aks-create-action |
azure/aks-github-runner |
إعداد عوامل مستضافة ذاتيًا لـ GitHub Actions. | azure/aks-github-runner |
azure/acr-build |
إنشاء حاويات باستخدام ACR. | azure/acr-build |
استخدام إجراءات GitHub مع AKS
كمثال، يمكنك استخدام GitHub Actions لنشر تطبيق إلى مجموعة AKS الخاصة بك في كل مرة يتم فيها دفع تغيير إلى مستودع GitHub الخاص بك. يستخدم هذا التشغيل السريع تطبيق Azure Vote.
إشعار
يستخدم هذا المثال كيان خدمة للمصادقة مع نظام مجموعة ACR وAKS. بدلاً من ذلك، يمكنك تكوين Open ID Connect (OIDC) وتحديث azure/login
الإجراء لاستخدام OIDC. لمزيد من المعلومات، راجع إعداد تسجيل الدخول إلى Azure باستخدام مصادقة OpenID Connect.
نسخ المستودع وتحديثه
انتقل إلى مستودع Azure Vote وحدد Fork.
قم بتحديث
azure-vote-all-in-one-redis.yaml
لاستخدام ACR الخاص بك للصورةazure-vote-front
. استبدل<registryName>
باسم سجلك.... containers: - name: azure-vote-front image: <registryName>.azurecr.io/azuredocs/azure-vote-front:v1 ...
تثبيت المحدث
azure-vote-all-in-one-redis.yaml
إلى المستودع الخاص بك.
إنشاء أسرار
إنشاء كيان خدمة للوصول إلى مجموعة الموارد الخاصة بك مع
Contributor
الدور باستخدامaz ad sp create-for-rbac
الأمر . استبدل<SUBSCRIPTION_ID>
بمعرف الاشتراك لحساب Azure الخاص بك واسم<RESOURCE_GROUP>
مجموعة الموارد التي تحتوي على ACR الخاص بك.az ad sp create-for-rbac \ --name "ghActionAzureVote" \ --scope /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP> \ --role Contributor \ --json-auth
يجب أن يبدو الإخراج مشابها لإخراج المثال التالي:
{ "clientId": <clientId>, "clientSecret": <clientSecret>, "subscriptionId": <subscriptionId>, "tenantId": <tenantId>, ... }
انتقل إلى إعدادات مستودع GitHub وحدد Security>Secrets and variables>Actions.
لكل سر، حدد New Repository Secret وأدخل اسم السر وقيمته.
اسم السر قيمة سرية AZURE_CREDENTIALS إخراج JSON بأكمله من az ad sp create-for-rbac
الأمر .service_principal قيمة <clientId>
.service_principal_password قيمة <clientSecret>
.الاشتراك قيمة <subscriptionId>
.tenant قيمة <tenantId>
.السجل اسم السجل الخاص بك. المستودع azuredocs مجموعة الموارد اسم مجموعة الموارد الخاصة بك. cluster_name اسم نظام المجموعة الخاص بك.
لمزيد من المعلومات حول إنشاء الأسرار، راجع الأسرار المشفرة.
إنشاء ملف إجراءات
في المستودع الخاص بك، قم بإنشاء
.github/workflows/main.yml
ولصق في المحتويات التالية:name: build_deploy_aks on: push: paths: - "azure-vote/**" jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v3 - name: ACR build id: build-push-acr uses: azure/acr-build@v1 with: service_principal: ${{ secrets.service_principal }} service_principal_password: ${{ secrets.service_principal_password }} tenant: ${{ secrets.tenant }} registry: ${{ secrets.registry }} repository: ${{ secrets.repository }} image: azure-vote-front folder: azure-vote branch: master tag: ${{ github.sha }} - name: Azure login id: login uses: azure/login@v1.4.3 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Set AKS context id: set-context uses: azure/aks-set-context@v3 with: resource-group: '${{ secrets.resource_group }}' cluster-name: '${{ secrets.cluster_name }}' - name: Setup kubectl id: install-kubectl uses: azure/setup-kubectl@v3 - name: Deploy to AKS id: deploy-aks uses: Azure/k8s-deploy@v4 with: namespace: 'default' manifests: | azure-vote-all-in-one-redis.yaml images: '${{ secrets.registry }}.azurecr.io/${{ secrets.repository }}/azure-vote-front:${{ github.sha }}' pull-images: false
on
يحتوي القسم على الحدث الذي يقوم بتشغيل الإجراء. في ملف المثال، يتم تشغيل الإجراء عند دفع تغيير إلىazure-vote
الدليل.steps
يحتوي القسم على كل إجراء مميز:- يستخدم كود مصدر Checkout إجراءات GitHub Actions Checkout لاستنساخ المستودع.
- يستخدم إنشاء ACRإجراء إنشاء سجل حاويات Azure لإنشاء الصورة وتحميلها إلى السجل الخاص بك.
- يستخدم تسجيل الدخول إلى Azureإجراء تسجيل الدخول إلى Azure لتسجيل الدخول إلى حساب Azure الخاص بك.
- يستخدم سياق تعيين AKSإجراء سياق مجموعة Azure AKS لتعيين سياق نظام مجموعة AKS.
- يستخدم Setup kubectlإجراء Kubectl Setup Kubectl Azure AKS لتثبيت kubectl على المشغل الخاص بك.
- يستخدم التوزيع إلى AKS Azure Kubernetes Deploy Action لنشر التطبيق إلى مجموعة Kubernetes الخاصة بك.
قم بتثبيت
.github/workflows/main.yml
الملف في المستودع الخاص بك.لتأكيد عمل الإجراء، قم بتحديث
azure-vote/azure-vote/config_file.cfg
بالمحتويات التالية:# UI Configurations TITLE = 'Azure Voting App' VOTE1VALUE = 'Fish' VOTE2VALUE = 'Dogs' SHOWHOST = 'false'
تثبيت المحدث
azure-vote/azure-vote/config_file.cfg
إلى المستودع الخاص بك.في المستودع الخاص بك، حدد Actions وتأكد من تشغيل سير العمل. بعد ذلك، تأكد من أن سير العمل يحتوي على علامة اختيار خضراء ويتم نشر التطبيق المحدث إلى نظام المجموعة الخاص بك.
الخطوات التالية
راجع مهام سير عمل البداية التالية لـ AKS. لمزيد من المعلومات، راجع استخدام مهام سير عمل البداية.
Azure Kubernetes Service