Tutorial: Memigrasikan simpul ke Azure Container Linux (ACL)

Dalam tutorial ini, bagian tiga dari lima, Anda memigrasikan simpul yang ada ke ACL. Anda dapat memigrasikan simpul yang ada menggunakan salah satu metode berikut:

  • Hapus kumpulan simpul yang ada dan tambahkan kumpulan simpul ACL baru.
  • Lakukan migrasi SKU sistem operasi (OS) di tempat.

Perintah dalam tutorial ini menggunakan variabel lingkungan yang diatur dalam Tutorial 1: Membuat kluster dengan ACL untuk AKS.

Jika Anda tidak memiliki simpul yang sudah ada untuk dimigrasikan, langsung saja ke tutorial berikutnya. Dalam tutorial selanjutnya, Anda mempelajari cara mengaktifkan telemetri dan pemantauan di kluster Anda dan meningkatkan simpul ACL.

Prerequisites

  • Dalam tutorial sebelumnya, Anda membuat dan menyebarkan kluster ACL. Jika Anda belum menyelesaikan langkah-langkah ini dan ingin mengikutinya, lihat Tutorial 1: Membuat kluster dengan ACL untuk AKS.
  • Azure Container Linux memerlukan versi Azure CLI 2.86.0 atau yang lebih tinggi. az version Gunakan perintah untuk menemukan versi. Untuk meningkatkan ke versi terbaru, gunakan az upgrade perintah .

Pertimbangan dan batasan Azure Container Linux (ACL)

Sebelum memulai, tinjau pertimbangan dan batasan berikut untuk ACL:

Menambahkan kumpulan simpul ACL dan menghapus kumpulan simpul yang ada

  1. Tambahkan kumpulan simpul ACL baru menggunakan az aks nodepool add perintah . Gunakan --mode System agar kumpulan baru dapat berfungsi sebagai kumpulan agen sistem, yang memungkinkan Anda menghapus kumpulan simpul asli di langkah berikutnya. Contoh berikut membuat kumpulan simpul bernama aclsystem yang menambahkan tiga simpul ke kluster:

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

    Contoh output:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/aclsystem",
      "name": "aclsystem",
      "osSku": "AzureContainerLinux",
      "provisioningState": "Succeeded"
    }
    
  2. Hapus kumpulan simpul yang ada menggunakan az aks nodepool delete perintah .

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

Migrasi SKU OS langsung

Batasan untuk migrasi SKU OS di tempat

Ada beberapa pengaturan yang dapat memblokir permintaan migrasi SKU OS. Untuk memastikan keberhasilan migrasi, tinjau panduan dan batasan berikut:

  • Fitur migrasi SKU OS tidak tersedia melalui PowerShell atau portal Microsoft Azure.
  • Fitur migrasi SKU OS tidak mendukung penggantian nama kumpulan simpul yang ada.
  • Ubuntu, Azure Linux, dan AzureContainerLinux adalah satu-satunya target migrasi SKU OS Linux yang didukung.
  • ACL memerlukan Trusted Launch. Jika belum diaktifkan pada pool node Anda, Anda harus menambahkan --enable-secure-boot dan --enable-vtpm saat bermigrasi ke SKU OS AzureContainerLinux. Ukuran VM kumpulan simpul Anda juga harus mendukung Trusted Launch. Jika ukuran VM Anda saat ini tidak mendukungnya, Anda perlu mengubah ukuran atau membuat ulang kumpulan simpul dengan ukuran VM yang didukung sebelum bermigrasi.
  • VM Generasi 1 tidak didukung.
  • SKU OS Ubuntu dengan UseGPUDedicatedVHD diaktifkan tidak dapat melakukan migrasi SKU OS.
  • Confidential Virtual Machines (CVM) tidak didukung.
  • Pod Sandboxing tidak didukung.
  • Migrasi SKU OS Windows tidak didukung.

Prasyarat untuk migrasi SKU OS di tempat

  • Kluster AKS yang sudah ada dengan setidaknya satu pool node Linux.
  • Kami menyarankan agar Anda memverifikasi bahwa beban kerja Anda berjalan dengan sukses di ACL dengan menyebarkan kluster ACL di lingkungan pengembangan atau penahapan sebelum memigrasikan kluster produksi.
  • Pastikan fitur migrasi berfungsi untuk Anda dalam pengujian/dev sebelum menggunakan proses pada kluster produksi.
  • Pastikan pod Anda memiliki cukup Pod Disruption Budget (PDB) agar AKS dapat memindahkan pod di antara VM selama proses upgrade.
  • Anda memerlukan Azure CLI versi 2.61.0 atau yang lebih tinggi. az version Gunakan perintah untuk menemukan versi. Untuk meningkatkan ke versi terbaru, gunakan az upgrade perintah .

Migrasi ke ACL menggunakan migrasi SKU OS secara langsung

Anda dapat memigrasikan kumpulan simpul Ubuntu atau Azure Linux yang ada ke ACL dengan mengubah SKU sistem operasi kumpulan simpul, yang akan memperbarui kluster melalui proses peningkatan image simpul standar. Metode ini tidak memerlukan pembuatan kumpulan simpul baru; sebagai gantinya, kumpulan simpul Anda yang ada secara otomatis direimage.

Important

ACL memerlukan Trusted Launch. Anda harus menyertakan --enable-secure-boot dan --enable-vtpm saat bermigrasi ke AzureContainerLinux SKU OS. Ukuran VM kumpulan simpul Anda juga harus mendukung Trusted Launch.

Migrasi SKU OS dari node pool Anda ke ACL menggunakan perintah az aks nodepool update. Perintah ini memicu gambaran ulang kumpulan simpul Anda. Perubahan SKU OS memicu operasi peningkatan segera, yang membutuhkan waktu beberapa menit untuk diselesaikan.

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

Contoh output:

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

Note

Jika Anda mengalami masalah selama migrasi SKU OS, Anda dapat kembali ke SKU OS Anda sebelumnya.

Memverifikasi migrasi SKU OS

Setelah migrasi selesai pada kluster pengujian Anda, verifikasi hal berikut untuk memastikan keberhasilan migrasi:

  1. Konfirmasikan bahwa simpul baru menjalankan ACL menggunakan perintah berikut:

    kubectl get nodes -o wide
    
  2. Pastikan semua pod dan daemonset Anda berjalan di pool node baru dengan menggunakan perintah berikut:

    kubectl get pods -o wide -A
    
  3. Pastikan semua label node dalam kumpulan node yang telah ditingkatkan sesuai dengan yang Anda harapkan dengan menggunakan perintah berikut:

    kubectl get nodes --show-labels
    
  4. Periksa versi gambar simpul menggunakan az aks nodepool list perintah .

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

    Contoh output:

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

Tip

Sebaiknya pantau kesehatan layanan Anda selama beberapa minggu sebelum memigrasikan kluster produksi Anda.

Kembali ke SKU sistem operasi Anda sebelumnya

Jika Anda mengalami masalah selama migrasi SKU OS, Anda dapat kembali ke SKU OS Anda sebelumnya. Untuk melakukannya, ubah kolom SKU OS kembali ke nilai yang sebelumnya Anda gunakan dan kirim ulang penyebaran tersebut, yang akan memicu operasi peningkatan versi lain dan mencitra ulang kumpulan node ke SKU OS sebelumnya.

Kembali ke SKU OS Anda sebelumnya menggunakan perintah az aks nodepool update. Contoh ini kembali dari ACL ke Azure Linux:

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

Langkah selanjutnya

Dalam tutorial ini, Anda memigrasikan simpul yang ada ke ACL. Dalam tutorial berikutnya, Anda mempelajari cara mengaktifkan telemetri dan pemantauan untuk kluster ACL Anda.