التشغيل السريع: التطوير على خدمة Azure Kubernetes (AKS) باستخدام Helm
Helm أداة تعبئة مفتوحة المصدر تساعدك على تثبيت دورة حياة تطبيقات Kubernetes وإدارتها. على غرار مديري حزمة Linux مثل APT و Yum، يُستخدم Helm لإدارة مخططات Kubernetes، وهي حزم من موارد Kubernetes التي تم تكوينها مسبقاً.
في هذا التشغيل السريع، يمكنك استخدام Helm لحزم وتشغيل تطبيق على AKS. للحصول على معلومات حول تثبيت تطبيق موجود باستخدام Helm، راجع تثبيت التطبيقات الموجودة باستخدام Helm في AKS.
المتطلبات الأساسية
- اشتراك Azure. إذا لم يكن لديك اشتراك Azure، يمكنك إنشاء حساب مجاني.
- تثبيت Azure CLI أوAzure PowerShell.
- تثبيت Helm v3.
إنشاء سجل حاوية Azure
تحتاج إلى تخزين صور الحاوية الخاصة بك في Azure Container Registry (ACR) لتشغيل التطبيق الخاص بك في نظام مجموعة AKS باستخدام Helm. يجب أن يكون اسم السجل الخاص بك فريدا داخل Azure وأن يحتوي على 5-50 حرفا أبجديا رقميا. يسمح بالأحرف الصغيرة فقط. SKU الأساسية هي نقطة الدخول الأمثل من حيث التكلفة لأغراض التنمية التي توفر التوازن بين التخزين والإنتاجية.
إنشاء مجموعة موارد Azure باستخدام الأمر az group create . في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.
az group create --name myResourceGroup --location eastus
إنشاء Azure Container Registry باسم فريد عن طريق استدعاء الأمر az acr create . ينشئ المثال التالي ACR باسم myhelmacr باستخدام Basic SKU.
az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
يجب أن يبدو الإخراج مشابها لإخراج المثال المكثف التالي. دون قيمة loginServer الخاصة بك ل ACR لاستخدامها في خطوة لاحقة.
{ "adminUserEnabled": false, "creationDate": "2023-12-26T22:36:23.998425+00:00", "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr", "location": "eastus", "loginServer": "myhelmacr.azurecr.io", "name": "myhelmacr", "networkRuleSet": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", "sku": { "name": "Basic", "tier": "Basic" }, "status": null, "storageAccount": null, "tags": {}, "type": "Microsoft.ContainerRegistry/registries" }
إنشاء نظام مجموعة AKS
يحتاج نظام مجموعة AKS الجديد إلى الوصول إلى ACR لسحب صور الحاوية وتشغيلها.
إنشاء نظام مجموعة AKS باستخدام الأمر az aks create مع المعلمة
--attach-acr
لمنح نظام المجموعة حق الوصول إلى ACR الخاص بك. ينشئ المثال التالي مجموعة AKS باسم myAKSCluster ويمنحها حق الوصول إلى myhelmacr ACR. تأكد من استبدالmyhelmacr
باسم ACR الخاص بك.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
قم بالاتصال بمجموعة AKS
لتوصيل مجموعة Kubernetes محليا، يمكنك استخدام عميل سطر أوامر Kubernetes، kubectl. kubectl
سيكون مثبتاً بالفعل في حال كنت تستخدم Azure Cloud Shell.
تثبيت
kubectl
محليا باستخدام الأمر az aks install-cli .az aks install-cli
قم بتكوين
kubectl
للاتصال بكتلة Kubernetes مستخدماً الأمر az aks get-credentials. يحصل الأمر التالي على بيانات اعتماد لمجموعة AKS المسماة myAKSCluster في myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
قم بتنزيل نموذج الطلب
يستخدم هذا التشغيل السريع تطبيق Azure Vote.
استنساخ التطبيق من GitHub باستخدام
git clone
الأمر .git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
انتقل إلى
azure-vote
الدليل باستخدامcd
الأمر .cd azure-voting-app-redis/azure-vote/
إنشاء نموذج التطبيق ودفعه إلى ACR
أنشئ الصورة وادفعها إلى ACR باستخدام الأمر az acr build . ينشئ المثال التالي صورة تسمى azure-vote-front:v1 ويدفعها إلى myhelmacr ACR. تأكد من استبدال
myhelmacr
باسم ACR الخاص بك.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
إشعار
يمكنك أيضا استيراد مخططات Helm إلى ACR الخاص بك. لمزيد من المعلومات، راجع «Push and pull Helm charts» إلى سجل حاويات Azure Container Registry.
إنشاء مخطط Helm
أنشئ مخطط Helm باستخدام الأمر
helm create
.helm create azure-vote-front
قم بتحديث azure-vote-front/Chart.yaml لإضافة تبعية لمخطط redis من
https://charts.bitnami.com/bitnami
مستودع المخطط وتحديثهappVersion
إلىv1
، كما هو موضح في المثال التالي:إشعار
تم اختبار إصدارات صورة الحاوية الموضحة في هذا الدليل للعمل مـع هذا المثال ولكن قد لا تكون أحدث إصدار متوفر.
apiVersion: v2 name: azure-vote-front description: A Helm chart for Kubernetes dependencies: - name: redis version: 17.3.17 repository: https://charts.bitnami.com/bitnami ... # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: v1
قم بتحديث تبعيات مخطط Helm باستخدام
helm dependency update
الأمر .helm dependency update azure-vote-front
تحديث azure-vote-front/values.yaml بالتغييرات التالية.
- إضافة قسم redis لتعيين تفاصيل الصورة ومنفذ الحاوية واسم التوزيع.
- إضافة backendName لربط الجزء الأمامي إلى توزيع redis.
- قم بتغيير مستودع الصور إلى
<loginServer>/azure-vote-front
. - قم بتغيير علامة الصورة إلى
v1
. - قم بتغيير نوع الخدمة إلى LoadBalancer.
على سبيل المثال:
replicaCount: 1 backendName: azure-vote-backend-master redis: image: registry: mcr.microsoft.com repository: oss/bitnami/redis tag: 6.0.8 fullnameOverride: azure-vote-backend auth: enabled: false image: repository: myhelmacr.azurecr.io/azure-vote-front pullPolicy: IfNotPresent tag: "v1" ... service: type: LoadBalancer port: 80 ...
أضف قسما
env
إلى azure-vote-front/templates/deployment.yaml لتمرير اسم توزيع redis .... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: REDIS value: {{ .Values.backendName }} ...
تشغيل مخطط Helm
ثم بتثبيت تطبيقك باستخدام مخطط Helm باستخدام الأمر
helm install
.helm install azure-vote-front azure-vote-front/
قد يستغرق الأمر بضع دقائق لإرجاع الخدمة لعنوان IP عام. راقب التقدم باستخدام الأمر
kubectl get service
مع الوسيطة--watch
.kubectl get service azure-vote-front --watch
عندما تكون الخدمة جاهزة،
EXTERNAL-IP
تتغير القيمة من<pending>
إلى عنوان IP. اضغطCTRL+C
لإيقافkubectl
عملية المراقبة.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-front LoadBalancer 10.0.18.228 <pending> 80:32021/TCP 6s ... azure-vote-front LoadBalancer 10.0.18.228 52.188.140.81 80:32021/TCP 2m6s
انتقل إلى موازن التحميل للتطبيق في مستعرض باستخدام
<EXTERNAL-IP>
لرؤية نموذج التطبيق.
قم بحذف نظام المجموعة
قم بإزالة مجموعة الموارد ومجموعة AKS وسجل حاوية Azure وصور الحاوية المخزنة في ACR وجميع الموارد ذات الصلة باستخدام الأمر az group delete مع
--yes
المعلمة لتأكيد الحذف والمعلمة--no-wait
للعودة إلى موجه الأوامر دون انتظار اكتمال العملية.az group delete --name myResourceGroup --yes --no-wait
إشعار
إذا قمت بإنشاء نظام مجموعة AKS الخاص بك بهوية مدارة معينة من قبل النظام (خيار الهوية الافتراضي في هذا التشغيل السريع)، تتم إدارة الهوية بواسطة النظام الأساسي ولا تتطلب إزالة.
إذا قمت بإنشاء نظام مجموعة AKS الخاص بك باستخدام كيان خدمة، فلن تتم إزالة كيان الخدمة عند حذف نظام المجموعة. لإزالة كيان الخدمة، راجع اعتبارات كيان خدمة AKS والحذف.
الخطوات التالية
لمزيد من المعلومات حول استخدام Helm، راجع وثائق Helm.