Azure Kubernetes Service (AKS) Windows iş yüklerinizin işletim sistemi sürümünü yükseltme

Azure Kubernetes Service'te (AKS) çalışan bir Windows iş yükünün işletim sistemi sürümünü yükseltirken, Windows sürümlerinin her düğüm havuzunda eşleştiğinden emin olmak için yeni bir düğüm havuzu dağıtmanız gerekir. Bu makalede AKS üzerindeki Windows iş yükleri için işletim sistemi sürümünü yükseltme adımları açıklanmaktadır. Bu örnek, Windows Server 2019'dan Windows Server 2022'ye yükseltmeye odaklansa da, herhangi bir Windows Server sürümünden diğerine yükseltmek için aynı işlem izlenebilir.

Windows Server işletim sistemi sürümü desteği

Windows Server işletim sisteminin yeni bir sürümü yayınlandığında, AKS bunu desteklemeye kararlıdır ve düzeltmelerden, iyileştirmelerden ve yeni işlevlerden yararlanmak için en son sürüme yükseltmenizi önerir. AKS, Windows Server 2022'den başlayarak her Windows Server sürümü için beş yıllık destek yaşam döngüsü sağlar. Bu süre boyunca AKS, yükseltmeniz için Windows Server işletim sisteminin daha yeni bir sürümünü destekleyen yeni bir sürüm yayınlar.

Not

  • Windows Server 2019, Kubernetes sürüm 1.32 kullanım ömrü sonuna (EOL) ulaştıktan sonra kullanımdan kaldırılıyor. Daha fazla bilgi için bkz . AKS sürüm notları.
  • Windows Server 2022, Kubernetes sürüm 1.34 kullanım ömrü sonuna (EOL) ulaştıktan sonra kullanımdan kaldırılıyor. Daha fazla bilgi için bkz . AKS sürüm notları.

Sınırlamalar

Windows Server 2019 ve Windows Server 2022, AKS'de aynı düğüm havuzunda birlikte kullanılamaz. Yeni işletim sistemi sürümünü barındırmak için yeni bir düğüm havuzu oluşturmanız gerekir. Önceki düğüm havuzunun izinlerini ve erişimini yeniyle eşleştirmeniz önemlidir.

Başlamadan önce

  • FROM Dockerfile dosyanızdaki deyimini yeni işletim sistemi sürümüne güncelleştirin.
  • Uygulamanızı denetleyin ve kapsayıcı uygulamasının yeni işletim sistemi sürümünde çalıştığını doğrulayın.
  • AKS'de doğrulanmış kapsayıcı uygulamasını bir geliştirme veya test ortamına dağıtın.
  • Bu makalede kullanmak üzere yeni görüntü adını veya etiketini not alın.

Not

Windows iş yükleri için Dockerfile oluşturmayı öğrenmek için bkz . Windows'ta Dockerfile ve Windows Dockerfile'ları iyileştirme.

Var olan bir kümeye Windows Server 2022 düğüm havuzu ekleme

YAML dosyasını güncelleştirme

Düğüm Seçici, Windows düğümlerine Windows podlarının yerleştirilmesi için en yaygın ve önerilen seçenektir.

  1. Aşağıdaki ek açıklamayı ekleyerek YAML dosyanıza Düğüm Seçici ekleyin:

          nodeSelector:
            "kubernetes.io/os": windows
    

    Ek açıklama kullanılabilir herhangi bir Windows düğümünü bulur ve podu bu düğüme yerleştirir (diğer tüm zamanlama kurallarını izleyerek). Windows Server 2019'dan Windows Server 2022'ye yükseltirken, bir Windows düğümünde ve en son işletim sistemi sürümünü çalıştıran bir düğümde yerleştirmeyi zorunlu kılmanız gerekir. Bunu başarmak için bir seçenek farklı bir ek açıklama kullanmaktır:

          nodeSelector:
            "kubernetes.azure.com/os-sku": Windows2022
    
  2. YAML dosyasındaki öğesini nodeSelector güncelleştirdikten sonra, kullanmak istediğiniz kapsayıcı görüntüsünü de güncelleştirmeniz gerekir. Bu bilgileri, Dockerfile dosyanızdaki deyimini değiştirerek FROM kapsayıcılı uygulamanın yeni bir sürümünü oluşturduğunuz önceki adımdan alabilirsiniz.

Not

Uygulamayı ilk kez dağıtmak için kullandığınız YAML dosyasını kullanmanız gerekir. Bu, ve kapsayıcı görüntüsü dışında başka yapılandırma değişikliği olmamasını nodeSelector sağlar.

Güncelleştirilmiş YAML dosyasını mevcut iş yüküne uygulama

  1. komutunu kullanarak kümenizdeki düğümleri kubectl get nodes görüntüleyin.

    kubectl get nodes -o wide
    

    Aşağıdaki örnek çıktı, oluşturduğunuz yeni düğüm havuzu ve mevcut düğüm havuzları dahil olmak üzere kümedeki tüm düğümleri gösterir:

    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. komutunu kullanarak güncelleştirilmiş YAML dosyasını mevcut iş yüküne kubectl apply uygulayın ve YAML dosyasının adını belirtin.

    kubectl apply -f <filename>
    

    Aşağıdaki örnek çıktıda dağıtım için yapılandırılmış bir durum gösterilmektedir:

    deployment.apps/sample configured
    service/sample unchanged
    

    Bu noktada AKS, mevcut podları sonlandırma ve Yeni podları Windows Server 2022 düğümlerine dağıtma işlemini başlatır.

  3. komutunu kullanarak kubectl get pods dağıtımın durumunu denetleyin.

    kubectl get pods -o wide
    

    Aşağıdaki örnek çıktı, ad alanında default podları gösterir:

    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>
    

Güvenlik ve kimlik doğrulamasıyla ilgili dikkat edilmesi gerekenler

Grup Yönetilen Hizmet Hesapları (gMSA) kullanıyorsanız, yeni düğüm havuzu için Yönetilen Kimlik yapılandırmasını güncelleştirmeniz gerekir. gMSA bir gizli dizi (kullanıcı hesabı ve parola) kullanır, böylece Windows podunu çalıştıran düğüm Microsoft Entra Kimliği'ne göre kapsayıcının kimliğini doğrulayabilir. Azure Key Vault'ta bu gizli diziye erişmek için düğüm, düğümün kaynağa erişmesine izin veren bir Yönetilen Kimlik kullanır. Yönetilen Kimlikler düğüm havuzu başına yapılandırıldığından ve pod artık yeni bir düğüm havuzunda bulunduğundan, bu yapılandırmayı güncelleştirmeniz gerekir. Daha fazla bilgi için bkz . Azure Kubernetes Service (AKS) kümenizdeki Windows Server düğümleriniz için Grup Yönetilen Hizmet Hesaplarını (GMSA) Etkinleştirme.

Aynı ilke, diğer Azure kaynaklarına erişirken diğer pod veya düğüm havuzları için Yönetilen Kimlikler için de geçerlidir. Yönetilen Kimlik'in sağladığı tüm erişimi yeni düğüm havuzunu yansıtacak şekilde güncelleştirmeniz gerekir. Güncelleştirme ve oturum açma etkinliklerini görüntülemek için bkz . Yönetilen Kimlik etkinliğini görüntüleme.

Sonraki adımlar

Bu makalede, AKS üzerindeki Windows iş yükleri için işletim sistemi sürümünü yükseltmeyi öğrendiniz. AKS'de Windows iş yükleri hakkında daha fazla bilgi edinmek için bkz . Azure Kubernetes Service'te (AKS) Windows kapsayıcı uygulaması dağıtma.