ترقية إصدار نظام التشغيل لأحمال عمل Azure Kubernetes Service (AKS) Windows

عند ترقية إصدار نظام التشغيل من حمل عمل Windows قيد التشغيل على خدمة Azure Kubernetes (AKS)، تحتاج إلى نشر تجمع عقدة جديد لضمان تطابق إصدارات Windows على كل تجمع عقدة. توضح هذه المقالة خطوات ترقية إصدار نظام التشغيل لأحمال عمل Windows على AKS. بينما يركز هذا المثال على الترقية من Windows Server 2019 إلى Windows Server 2022، يمكن اتباع نفس العملية للترقية من أي إصدار Windows Server إلى إصدار آخر.

دعم إصدار نظام التشغيل Windows Server

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

إشعار

  • يتم إيقاف Windows Server 2019 بعد وصول الإصدار 1.32 من Kubernetes إلى نهاية العمر الافتراضي (EOL). لمزيد من المعلومات، راجع ملاحظات إصدار AKS.
  • يتم إيقاف Windows Server 2022 بعد أن يصل الإصدار 1.34 من Kubernetes إلى نهاية عمره الافتراضي (EOL). لمزيد من المعلومات، راجع ملاحظات إصدار AKS.

القيود

لا يمكن أن يتعايش Windows Server 2019 وWindows Server 2022 على نفس تجمع العقدة على AKS. تحتاج إلى إنشاء تجمع عقدة جديد لاستضافة إصدار نظام التشغيل الجديد. من المهم أن تتطابق الأذونات والوصول إلى تجمع العقدة السابق مع المجموعة الجديدة.

قبل البدء

  • تحديث العبارة FROM في Dockerfile إلى إصدار نظام التشغيل الجديد.
  • تحقق من التطبيق الخاص بك وتحقق من عمل تطبيق الحاوية على إصدار نظام التشغيل الجديد.
  • قم بتوزيع تطبيق الحاوية الذي تم التحقق منه على AKS في بيئة تطوير أو اختبار.
  • دون اسم الصورة أو العلامة الجديدة لاستخدامها في هذه المقالة.

إشعار

لمعرفة كيفية إنشاء Dockerfile لأحمال عمل Windows، راجع Dockerfile على Windows وتحسين Windows Dockerfiles.

إضافة تجمع عقدة Windows Server 2022 إلى مجموعة موجودة

تحديث ملف YAML

محدد العقدة هو الخيار الأكثر شيوعاً والموصى به لوضع حاويات Windows على عقد Windows.

  1. إضافة محدد العقدة إلى ملف YAML الخاص بك عن طريق إضافة التعليق التوضيحي التالي:

          nodeSelector:
            "kubernetes.io/os": windows
    

    يبحث التعليق التوضيحي عن أي عقدة Windows متوفرة ويضع الجراب على تلك العقدة (باتباع جميع قواعد الجدولة الأخرى). عند الترقية من Windows Server 2019 إلى Windows Server 2022، تحتاج إلى فرض الموضع على عقدة Windows وعقدة تقوم بتشغيل أحدث إصدار من نظام التشغيل. لإنجاز ذلك، ثمة خيار يتمثل في استخدام تعليق توضيحي مختلف:

          nodeSelector:
            "kubernetes.azure.com/os-sku": Windows2022
    
  2. بمجرد تحديث nodeSelector في ملف YAML، تحتاج أيضا إلى تحديث صورة الحاوية التي تريد استخدامها. يمكنك الحصول على هذه المعلومات من الخطوة السابقة التي قمت فيها بإنشاء إصدار جديد من التطبيق الحاوية عن طريق تغيير العبارة FROM على Dockerfile الخاص بك.

إشعار

يجب استخدام نفس ملف YAML الذي استخدمته لنشر التطبيق في البداية. يضمن هذا عدم تغيير أي تكوين آخر إلى جانب صورة الحاوية nodeSelector و.

تطبيق ملف YAML المحدث على حمل العمل الحالي

  1. عرض العقد على نظام المجموعة باستخدام kubectl get nodes الأمر .

    kubectl get nodes -o wide
    

    يظهر إخراج المثال التالي جميع العقد على نظام المجموعة، بما في ذلك تجمع العقدة الجديد الذي قمت بإنشائه وتجمعات العقد الموجودة:

    NAME                                STATUS   ROLES   AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION     CONTAINER-RUNTIME
    aks-agentpool-18877473-vmss000000   Ready    agent   5h40m   v1.23.8   10.240.0.4     <none>        Ubuntu 18.04.6 LTS               5.4.0-1085-azure   containerd://1.5.11+azure-2
    akspoolws000000                     Ready    agent   3h15m   v1.23.8   10.240.0.208   <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akspoolws000001                     Ready    agent   3h17m   v1.23.8   10.240.0.239   <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akspoolws000002                     Ready    agent   3h17m   v1.23.8   10.240.1.14    <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akswspool000000                     Ready    agent   5h37m   v1.23.8   10.240.0.115   <none>        Windows Server 2019 Datacenter   10.0.17763.3165    containerd://1.6.6+azure
    akswspool000001                     Ready    agent   5h37m   v1.23.8   10.240.0.146   <none>        Windows Server 2019 Datacenter   10.0.17763.3165    containerd://1.6.6+azure
    akswspool000002                     Ready    agent   5h37m   v1.23.8   10.240.0.177   <none>        Windows Server 2019 Datacenter   10.0.17763.3165    containerd://1.6.6+azure
    
  2. قم بتطبيق ملف YAML المحدث على حمل العمل الحالي باستخدام kubectl apply الأمر وحدد اسم ملف YAML.

    kubectl apply -f <filename>
    

    يظهر إخراج المثال التالي حالة مكونة للتوزيع:

    deployment.apps/sample configured
    service/sample unchanged
    

    عند هذه النقطة، تبدأ AKS عملية إنهاء الجرابات الموجودة ونشر pods جديدة إلى عقد Windows Server 2022.

  3. تحقق من حالة النشر باستخدام kubectl get pods الأمر .

    kubectl get pods -o wide
    

    يظهر إخراج المثال التالي الحجيرات في default مساحة الاسم:

    NAME                      READY   STATUS    RESTARTS   AGE     IP             NODE              NOMINATED NODE   READINESS GATES
    sample-7794bfcc4c-k62cq   1/1     Running   0          2m49s   10.240.0.238   akspoolws000000   <none>           <none>
    sample-7794bfcc4c-rswq9   1/1     Running   0          2m49s   10.240.1.10    akspoolws000001   <none>           <none>
    sample-7794bfcc4c-sh78c   1/1     Running   0          2m49s   10.240.0.228   akspoolws000000   <none>           <none>
    

اعتبارات الأمان والمصادقة

إذا كنت تستخدم حسابات الخدمة المدارة للمجموعة (gMSA)، فأنت بحاجة إلى تحديث تكوين الهوية المدارة لتجمع العقدة الجديد. يستخدم gMSA بيانات سرية (حساب المستخدم وكلمة المرور) بحيث يمكن للعقدة التي تقوم بتشغيل جراب Windows مصادقة الحاوية مقابل معرف Microsoft Entra. للوصول إلى هذه البيانات السرية على Azure Key Vault، تستخدم العقدة هوية مدارة تسمح للعقدة بالوصول إلى المورد. نظرًا لأن الهويات المُدارة يتم تكوينها لكل تجمع عقدة، وتوجد الحاوية الآن في تجمع عقد جديد، فأنت بحاجة إلى تحديث هذا التكوين. لمزيد من المعلومات، راجع تمكين حسابات الخدمة المدارة للمجموعة (GMSA) لعقد Windows Server على نظام مجموعة Azure Kubernetes Service (AKS).

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

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

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