نشر حاوية Windows Server على نظام مجموعة Azure Kubernetes Service (AKS) باستخدام مدخل Microsoft Azure

خدمة Azure Kubernetes (AKS) هي خدمة Kubernetes مُدارة تتيح لك نشر المجموعات وإدارتها بسرعة. في هذه المقالة، يمكنك نشر نظام مجموعة AKS الذي يقوم بتشغيل حاويات Windows Server باستخدام مدخل Microsoft Azure. يمكنك أيضًا نشر تطبيق نموذج ASP.NET في حاوية Windows Server إلى الكتلة.

إشعار

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

قبل البدء

يضمن هذا التشغيل السريع الفهم الأساسي لمفاهيم Kubernetes. لمزيد من المعلومات، راجع مفاهيم Kubernetes الأساسية الخاصة بخدمة Azure Kubernetes Service (AKS).

إنشاء نظام مجموعة AKS

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. في الصفحة الرئيسية لمدخل Azure، حدد Create a resource.

  3. في قسم Categories، حدد Containers>Azure Kubernetes Service (AKS).

  4. في علامة التبويب الأساسيات، كوِّن الإعدادات التالية:

    • ضمن تفاصيل المشروع:
      • حدد Azure Subscription.
      • إنشاء مجموعة موارد Azure، مثل myResourceGroup. بينما يمكنك تحديد مجموعة موارد موجودة، لأغراض الاختبار أو التقييم، نوصي بإنشاء مجموعة موارد لاستضافة هذه الموارد مؤقتا وتجنب التأثير على أحمال عمل الإنتاج أو التطوير.
    • ضمن تفاصيل نظام المجموعة:
      • قم بتعيين تكوين المجموعة المعين مسبقا إلى Production Standard. لمزيد من التفاصيل حول التكوينات المعينة مسبقاً، راجع إعدادات تكوين الكتلة المسبقة في مدخل Microsoft Azure.

        إشعار

        يمكنك تغيير التكوين المعين مسبقا عند إنشاء نظام المجموعة الخاص بك عن طريق تحديد مقارنة الإعدادات المسبقة واختيار خيار مختلف. لقطة شاشة لإنشاء كتلة AKS - خيارات إعداد المدخل مسبقاً.

      • أدخل اسم كتلة Kubernetes، مثل myAKSCluster.

      • حدد منطقة لمجموعة AKS.

      • اترك إعداد مناطق التوفر معينا إلى بلا.

      • اترك إعداد مستوى تسعير AKS معينا إلى قياسي.

      • اترك القيمة الافتراضية محددة لإصدار Kubernetes.

      • اترك إعداد الترقية التلقائية معينا إلى القيمة الموصى بها، والتي تكون ممكنة مع التصحيح.

      • اترك إعداد المصادقة والتخويل معينا إلى الحسابات المحلية باستخدام Kubernetes RBAC.

        لقطة شاشة توضح كيفية تكوين نظام مجموعة AKS في مدخل Microsoft Azure.

  5. حدد التالي. في علامة التبويب Node pools ، أضف تجمع عقدة جديد:

    • حدد Add node pool.

    • أدخل اسم تجمع عقدة، مثل npwin. بالنسبة إلى تجمع عقدة Windows، يجب أن يكون الاسم ستة أحرف أو أقل.

    • بالنسبة إلى الوضع، حدد المستخدم.

    • بالنسبة إلى OS SKU، حدد Windows.

    • اترك إعداد مناطق التوفر معينا إلى بلا.

    • اترك خانة الاختيار Enable Azure Spot instances غير محددة.

    • بالنسبة لحجم العقدة، حدد اختيار حجم. في صفحة تحديد حجم جهاز ظاهري، حدد D2s_v3، ثم اختر الزر تحديد .

    • اترك إعداد أسلوب المقياس معينا إلى مقياس تلقائي.

    • اترك الحقلين الحد الأدنى لعدد العقد والحد الأقصى لعدد العقد معينين على إعداداتهما الافتراضية.

      لقطة شاشة توضح كيفية إنشاء تجمع عقدة يعمل بنظام Windows Server.

  6. اترك كافة الإعدادات في علامات التبويب الأخرى معينة إلى الإعدادات الافتراضية الخاصة بها.

  7. حدد Review + create لتشغيل التحقق من الصحة على تكوين نظام المجموعة. بعد اكتمال التحقق من الصحة، حدد Create لإنشاء نظام مجموعة AKS.

يستغرق إنشاء نظام مجموعة AKS بضع دقائق. عند اكتمال النشر، انتقل إلى المورد الخاص بك إما عن طريق:

  • تحديد الانتقال إلى المورد، أو
  • استعراض مجموعة موارد كتلة AKS وتحديد مورد AKS. في هذا المثال، يمكنك الاستعراض بحثاً عن myResourceGroup وتحديد المورد myAKSCluster.

الاتصال بنظام المجموعة

يمكنك استخدام kubectl، عميل سطر أوامر Kubernetes، لإدارة مجموعات Kubernetes الخاصة بك. kubectl سيكون مثبتاً بالفعل في حال كنت تستخدم Azure Cloud Shell. في حال عدم الدراية بـ Cloud Shell، راجع نظرة عامة على Cloud Shell Azure.

  1. افتح Cloud Shell عن طريق تحديد >_ الزر في أعلى صفحة مدخل Microsoft Azure.

  2. قم بتكوين kubectl للاتصال بكتلة Kubernetes مستخدماً الأمر az aks get-credentials. يقوم الأمر التالي بتنزيل بيانات الاعتماد وتكوين Kubernetes CLI لاستخدامها.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. تحقق من الاتصال بالمجموعة باستخدام kubectl get nodes الأمر الذي يقوم بإرجاع قائمة بعقد نظام المجموعة.

    kubectl get nodes
    

    يظهر إخراج العينة التالي جميع العقد في نظام المجموعة. تأكد من أن حالة جميع العقد جاهزة:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-agentpool-41946322-vmss000001   Ready    agent   28h   v1.27.7
    aks-agentpool-41946322-vmss000002   Ready    agent   28h   v1.27.7
    aks-npwin-41946322-vmss000000       Ready    agent   28h   v1.27.7
    aks-userpool-41946322-vmss000001    Ready    agent   28h   v1.27.7
    aks-userpool-41946322-vmss000002    Ready    agent   28h   v1.27.7
    

قم بنشر التطبيق

يحدد ملف بيان Kubernetes الحالة المطلوبة للمجموعة، مثل صور الحاوية التي سيتم تشغيلها. في هذا التشغيل السريع، يمكنك استخدام ملف بيان لإنشاء كافة الكائنات اللازمة لتشغيل نموذج التطبيق ASP.NET في حاوية Windows Server. يتضمن ملف البيان هذا نشر Kubernetes لتطبيق عينة ASP.NET وخدمة Kubernetes خارجية للوصول إلى التطبيق من الإنترنت.

يتم توفير تطبيق نموذج ASP.NET كجزء من .NET Framework Samplesويتم تشغيله في حاوية Windows Server. يتطلب AKS أن تستند حاويات Windows Server إلى صورWindows Server 2019 أو أحدث. يجب أن يعرف ملف بيان Kubernetes أيضًامحدد عقدة لإخبار نظام المجموعة AKS لتشغيل جراب التطبيق الخاص بالعينة ASP.NET على عقدة يمكن تشغيلها Windows حاويات Server.

  1. أنشئ ملفا باسم sample.yaml والصقه في تعريف YAML التالي.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sample
      labels:
        app: sample
    spec:
      replicas: 1
      template:
        metadata:
          name: sample
          labels:
            app: sample
        spec:
          nodeSelector:
            "kubernetes.io/os": windows
          containers:
          - name: sample
            image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
            resources:
              limits:
                cpu: 1
                memory: 800M
            ports:
              - containerPort: 80
      selector:
        matchLabels:
          app: sample
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: sample
    spec:
      type: LoadBalancer
      ports:
      - protocol: TCP
        port: 80
      selector:
        app: sample
    

    للحصول على تصنيف تفصيلي لملفات بيان YAML، راجع عمليات التوزيع وبيانات YAML.

    إذا قمت بإنشاء ملف YAML وحفظه محليا، فيمكنك تحميل ملف البيان إلى الدليل الافتراضي في CloudShell عن طريق تحديد الزر تحميل/تنزيل الملفات وتحديد الملف من نظام الملفات المحلي.

  2. انشر التطبيق باستخدام الأمر kubectl apply وحدد اسم بيان YAML الخاص بك.

    kubectl apply -f sample.yaml
    

    يظهر إخراج العينة التالي النشر والخدمة التي تم إنشاؤها بنجاح:

    deployment.apps/sample created
    service/sample created
    

اختبر التطبيق

عند تشغيل التطبيق، تعرض خدمة Kubernetes واجهة التطبيق الأمامية للإنترنت. قد تستغرق هذه العملية بضع دقائق حتى تكتمل. في بعض الأحيان، قد تستغرق الخدمة أكثر من بضع دقائق لتوفيرها. السماح بما يصل إلى 10 دقائق للتزويد.

  1. تحقق من حالة pods المنشورة باستخدام الأمر kubectl get pods . جعل جميع الحجيرات قبل Running المتابعة.

    kubectl get pods
    
  2. راقب سير العملية باستخدام أمر kubectl get serviceمع --watchوسيطة.

    kubectl get service sample --watch
    

    في البداية، يظهر الإخراج EXTERNAL-IP لنموذج الخدمة على أنه معلق:

    NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
    sample             LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s
    

    بمجرد تغيير عنوان EXTERNAL-IP من معلق إلى عنوان IP عام فعلي، استخدم CTRL-C لإيقاف عملية kubectl المراقبة. يظهر إخراج العينة التالي عنوان IP عاما صالحا تم تعيينه للخدمة:

    sample  LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m
    
  3. راجع نموذج التطبيق أثناء العمل عن طريق فتح مستعرض ويب على عنوان IP الخارجي للخدمة الخاصة بك.

    لقطة شاشة لاستعراض تطبيق نموذج ASP.NET.

حذف الموارد

إذا كنت لا تخطط للانتقال من خلال البرنامج التعليمي AKS، يجب حذف مجموعتك لتجنب تكبد رسوم Azure.

  1. في "مدخل Azure"، انتقل إلى مجموعة الموارد الخاصة بك.

  2. حدد Delete resource group.

  3. أدخل اسم مجموعة الموارد لتأكيد الحذف وحدد حذف.

  4. في مربع الحوار حذف التأكيد ، حدد حذف.

    إشعار

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

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

في هذا التشغيل السريع، قمت بنشر مجموعة Kubernetes ثم نشر نموذج تطبيق ASP.NET في حاوية Windows Server إليه. هذا التطبيق النموذجي هو لأغراض العرض التوضيحي فقط ولا يمثل جميع أفضل الممارسات لتطبيقات Kubernetes. للحصول على إرشادات حول إنشاء حلول كاملة باستخدام AKS للإنتاج، راجع إرشادات حل AKS.

لمعرفة المزيد حول AKS، وللسير عبر مثال كامل على التعليمات البرمجية للتوزيع، تابع إلى البرنامج التعليمي لنظام مجموعة Kubernetes.