Quickstart: Develop on خدمة Azure Kubernetes ‏(AKS) with Helm

Helm أداة تعبئة مفتوحة المصدر تساعدك على تثبيت دورة حياة تطبيقات Kubernetes وإدارتها. على غرار مديري حزمة Linux مثل APT و Yum، يُستخدم Helm لإدارة مخططات Kubernetes، وهي حزم من موارد Kubernetes التي تم تكوينها مسبقاً.

في هذا التشغيل السريع، يمكنك استخدام Helm لحزم وتشغيل تطبيق على AKS. للحصول على معلومات حول تثبيت تطبيق موجود باستخدام Helm، راجع تثبيت التطبيقات الموجودة باستخدام Helm في AKS.

المتطلبات الأساسية

Create an Azure Container Registry

تحتاج إلى تخزين صور الحاويات في Azure Container Registry (ACR) لتشغيل تطبيقك في عنقود AKS باستخدام Helm. يجب أن يكون اسم السجل الخاص بك فريدا داخل Azure ويحتوي على 5-50 حرفا أبجديا رقميا. يسمح بالأحرف الصغيرة فقط. SKU الأساسية هي نقطة الدخول الأمثل من حيث التكلفة لأغراض التنمية التي توفر التوازن بين التخزين والإنتاجية.

  • واجهة سطر الأوامر Azure (Azure CLI)
  • Azure PowerShell
  1. أنشئ مجموعة موارد Azure باستخدام أمر az group create. في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.

    az group create --name myResourceGroup --location eastus
    
  2. أنشئ 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 لسحب صور الحاوية وتشغيلها.

  • واجهة سطر الأوامر Azure (Azure CLI)
  • Azure PowerShell
  • إنشاء نظام مجموعة 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.

  • واجهة سطر الأوامر Azure (Azure CLI)
  • Azure PowerShell
  1. تثبيت kubectl محليا باستخدام الأمر az aks install-cli .

    az aks install-cli
    
  2. قم بتكوين kubectl للاتصال بكتلة Kubernetes مستخدماً الأمر az aks get-credentials. يحصل الأمر التالي على بيانات اعتماد لمجموعة AKS المسماة myAKSCluster في myResourceGroup.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

قم بتنزيل نموذج الطلب

يستخدم هذا البدء السريع تطبيق التصويت Azure .

  1. قم باستنساخ التطبيق من GitHub باستخدام أمر git clone.

    git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
    
  2. انتقل إلى 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 الخاص بك. لمزيد من المعلومات، راجع دفع وسحب مخططات الخوذة إلى سجل حاويات Azure.

إنشاء مخطط Helm

  1. أنشئ مخطط Helm باستخدام الأمر helm create.

    helm create azure-vote-front
    
  2. قم بتحديث 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
    
  3. قم بتحديث تبعيات مخطط Helm باستخدام helm dependency update الأمر .

    helm dependency update azure-vote-front
    
  4. تحديث 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
    ...
    
  5. أضف قسما 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

  1. ثم بتثبيت تطبيقك باستخدام مخطط Helm باستخدام الأمر helm install.

    helm install azure-vote-front azure-vote-front/
    
  2. قد يستغرق الأمر بضع دقائق لإرجاع الخدمة لعنوان 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
    
  3. انتقل إلى موازن التحميل للتطبيق في مستعرض باستخدام <EXTERNAL-IP> لرؤية نموذج التطبيق.

قم بحذف نظام المجموعة

  • واجهة سطر الأوامر Azure (Azure CLI)
  • Azure PowerShell
  • قم بإزالة مجموعة الموارد الخاصة بك، ومجموعة AKS، وسجل الحاويات Azure، وصور الحاويات المخزنة في ACR، وجميع الموارد ذات الصلة باستخدام أمر az group delete مع معامل --yes لتأكيد الحذف، ومعامل --no-wait للعودة إلى موجه الأوامر دون انتظار إتمام العملية.

    az group delete --name myResourceGroup --yes --no-wait
    

إشعار

إذا قمت بإنشاء نظام مجموعة AKS الخاص بك بهوية مدارة معينة من قبل النظام (خيار الهوية الافتراضي في هذا التشغيل السريع)، تتم إدارة الهوية بواسطة النظام الأساسي ولا تتطلب إزالة.

إذا قمت بإنشاء نظام مجموعة AKS الخاص بك باستخدام كيان خدمة، فلن تتم إزالة كيان الخدمة عند حذف نظام المجموعة. لإزالة كيان الخدمة، راجع اعتبارات كيان خدمة AKS والحذف.

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

لمزيد من المعلومات حول استخدام Helm، راجع وثائق Helm.