Öğretici: Düğümleri Azure Container Linux'a (ACL) taşıma

Bu öğreticide, beş bölümden üçüncüsü olan bu bölümde, mevcut düğümlerinizi ACL'ye taşırsınız. Aşağıdaki yöntemlerden birini kullanarak mevcut düğümlerinizi taşıyabilirsiniz:

  • Mevcut düğüm havuzlarını kaldırın ve yeni ACL düğüm havuzları ekleyin.
  • Yerinde işletim sistemi (OS) SKU geçişi gerçekleştirin.

Bu öğreticideki komutlar , Öğretici 1: AKS için ACL ile küme oluşturma bölümünde ayarlanan ortam değişkenlerini kullanır.

Geçirecek düğümleriniz yoksa sonraki öğreticiye geçin. Sonraki öğreticilerde, kümelerinizde telemetri ve izlemeyi etkinleştirmeyi ve ACL düğümlerini yükseltmeyi öğreneceksiniz.

Prerequisites

  • Önceki öğreticilerde bir ACL kümesi oluşturup dağıtmıştınız. Bu adımları tamamlamadıysanız ve takip etmek istiyorsanız bkz. Öğretici 1: AKS için ACL ile küme oluşturma.
  • Azure Container Linux için Azure CLI sürümü 2.86.0 veya üzeri gerekir. az version Sürümü bulmak için komutunu kullanın. En son sürüme yükseltmek için komutunu kullanın az upgrade .

Azure Container Linux (ACL) ile ilgili önemli noktalar ve sınırlamalar

Başlamadan önce ACL için aşağıdaki önemli noktaları ve sınırlamaları gözden geçirin:

ACL düğüm havuzları ekleme ve mevcut düğüm havuzlarını kaldırma

  1. komutunu kullanarak az aks nodepool add yeni bir ACL düğüm havuzu ekleyin. Yeni havuzun bir sonraki adımda özgün düğüm havuzunu silmenize olanak tanıyan sistem aracısı havuzu olarak görev yapabilmesi için kullanın --mode System . Aşağıdaki örnek, kümeye üç düğüm ekleyen aclsystem adlı bir düğüm havuzu oluşturur:

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --name aclsystem \
        --mode System \
        --os-sku AzureContainerLinux \
        --node-count 3
    

    Örnek çıkış:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/aclsystem",
      "name": "aclsystem",
      "osSku": "AzureContainerLinux",
      "provisioningState": "Succeeded"
    }
    
  2. komutunu kullanarak az aks nodepool delete mevcut düğüm havuzunuzu kaldırın.

    az aks nodepool delete \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --name <existing-node-pool-name>
    

Yerinde OS SKU geçişi

Yerinde işletim sistemi SKU geçişiyle ilgili sınırlamalar

İşletim sistemi SKU geçiş isteğini engelleyebilecek çeşitli ayarlar vardır. Geçişin başarılı olmasını sağlamak için aşağıdaki yönergeleri ve sınırlamaları gözden geçirin:

  • İşletim sistemi SKU'su geçiş özelliği PowerShell veya Azure portalı üzerinden kullanılamaz.
  • İşletim sistemi SKU geçiş özelliği, mevcut düğüm havuzlarını yeniden adlandırmayı desteklemez.
  • Ubuntu, Azure Linux ve AzureContainerLinux desteklenen tek Linux OS SKU geçiş hedefleridir.
  • ACL, Güvenilen Başlatma gerektirir. Düğüm havuzunuzda zaten etkinleştirilmemişse, AzureContainerLinux OS SKU’suna geçiş yaparken --enable-secure-boot ve --enable-vtpm öğelerini eklemelisiniz. Düğüm havuzunuzun VM boyutu da Güvenilen Başlatma’yı desteklemelidir. Geçerli VM boyutunuz bunu desteklemiyorsa, geçiş öncesinde düğüm havuzunu desteklenen bir VM boyutuyla yeniden boyutlandırmanız veya yeniden oluşturmanız gerekir.
  • 1. nesil VM'ler desteklenmez.
  • Etkinleştirilmiş UseGPUDedicatedVHD ile bir Ubuntu işletim sistemi SKU'su, işletim sistemi SKU geçişi gerçekleştiremez.
  • Gizli Sanal Makineler (CVM' ler) desteklenmez.
  • Pod Kapsülleme desteklenmez.
  • Windows işletim sistemi SKU geçişi desteklenmez.

Yerinde işletim sistemi SKU geçişi için önkoşullar

  • En az bir Linux düğüm havuzuna sahip mevcut bir AKS kümesi.
  • Üretim kümelerini geçirmeden önce bir geliştirme veya hazırlama ortamında ACL kümesi dağıtarak iş yüklerinizin ACL üzerinde başarıyla çalıştığını doğrulamanızı öneririz.
  • İşlemi bir üretim kümesinde kullanmadan önce test/geliştirme aşamasında geçiş özelliğinin sizin için çalıştığından emin olun.
  • Podlarınızın, AKS'nin yükseltme sırasında POD'ları VM'ler arasında taşımasına izin vermek için yeterli Pod Kesinti Bütçesine (PDB) sahip olduğundan emin olun.
  • Azure CLI sürüm 2.61.0 veya üzeri gerekir. az version Sürümü bulmak için komutunu kullanın. En son sürüme yükseltmek için komutunu kullanın az upgrade .

Yerinde işletim sistemi sürümü geçişini kullanarak ACL’ye geçiş yapın

Mevcut Ubuntu veya Azure Linux düğüm havuzlarınızı, düğüm havuzunun işletim sistemi SKU'sunu değiştirerek ACL'ye geçirebilirsiniz; bu işlem kümeyi standart düğüm görüntüsü yükseltme sürecinden geçirir. Bu yöntem yeni düğüm havuzları oluşturmayı gerektirmez; bunun yerine, mevcut düğüm havuzlarınız otomatik olarak yeniden oluşturulur.

Important

ACL, Güvenilen Başlatma gerektirir. AzureContainerLinux OS SKU’suna geçiş yaparken --enable-secure-boot ve --enable-vtpm eklemelisiniz. Düğüm havuzunuzun VM boyutunun da Güvenilir Başlatma'yı desteklemesi gerekir.

komutunu kullanarak düğüm havuzunuzun işletim sistemi SKU'sunu ACL'ye geçirin az aks nodepool update . Bu komut düğüm havuzunuzun yeniden görüntüsünü tetikler. İşletim sistemi SKU'su değişikliği, tamamlanması birkaç dakika süren anında bir yükseltme işlemini tetikler.

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --name <existing-node-pool-name> \
    --os-sku AzureContainerLinux \
    --enable-secure-boot \
    --enable-vtpm

Örnek çıkış:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureContainerLinux",
  "provisioningState": "Succeeded"
}

Note

İşletim sistemi SKU geçişi sırasında sorunlarla karşılaşırsanız önceki işletim sistemi SKU'nuza geri dönebilirsiniz.

İşletim sistemi SKU geçişini doğrulama

Test kümelerinizde geçiş tamamlandıktan sonra, geçişin başarılı olduğundan emin olmak için aşağıdakileri doğrulayın:

  1. Aşağıdaki komutu kullanarak yeni düğümlerin ACL çalıştırdığını onaylayın:

    kubectl get nodes -o wide
    
  2. Aşağıdaki komutu kullanarak tüm podlarınızın ve daemonsetlerinizin yeni düğüm havuzunda çalıştığını doğrulayın:

    kubectl get pods -o wide -A
    
  3. Aşağıdaki komutu kullanarak yükseltilen düğüm havuzunuzdaki tüm düğüm etiketlerinin beklediğiniz gibi olduğunu doğrulayın:

    kubectl get nodes --show-labels
    
  4. komutunu kullanarak az aks nodepool list düğüm görüntüsü sürümünü denetleyin.

    az aks nodepool list \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --query '[].{name: name, osSku: osSku, nodeImageVersion: nodeImageVersion}'
    

    Örnek çıkış:

    [
      {
        "name": "nodepool1",
        "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0",
        "osSku": "AzureContainerLinux"
      }
    ]
    

Tavsiye

Üretim kümelerinizi geçirmeden önce hizmetinizin durumunu birkaç hafta izlemenizi öneririz.

Önceki işletim sistemi SKU'nuza geri dönme

İşletim sistemi SKU geçişi sırasında sorunlarla karşılaşırsanız önceki işletim sistemi SKU'nuza geri dönebilirsiniz. Bunu yapmak için, işletim sistemi SKU'su alanını önceki değerinizle değiştirin ve dağıtımı yeniden gönderin; bu da başka bir yükseltme işlemini tetikler ve düğüm havuzunu önceki işletim sistemi SKU'su olarak yeniden başlatır.

komutunu kullanarak önceki işletim sistemi SKU'nuza geri dönün az aks nodepool update . Bu örnek ACL'den Azure Linux'a geri döner:

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --name <existing-node-pool-name> \
    --os-sku AzureLinux

Sonraki adım

Bu eğitimde mevcut düğümleri ACL'ye geçirdiniz. Sonraki öğreticide, ACL kümeniz için telemetri ve izlemeyi etkinleştirmeyi öğreneceksiniz.