Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tingkatkan add-on tata kelola tugas
Gunakan bagian ini untuk meningkatkan tata kelola HyperPod tugas Amazon EKS add-on antar versi. Setiap subbagian menyediakan prosedur khusus versi untuk meningkatkan add-on Anda sambil mempertahankan konfigurasi yang ada.
Tingkatkan dari v1.5 ke v1.6
Versi v1.6.0-eksbuild.1 paket Kueue v0.19.2. Anda dapat meningkatkan langsung dari v1.5 denganaws eks update-addon. Upgrade ini tidak memigrasikan versi penyimpanan definisi sumber daya kustom (CRD), jadi Anda tidak perlu membuat cadangan atau membuat ulang objek Kueue apa pun.
Untuk memutakhirkan add-on ke v1.6 melalui antarmuka add-on Amazon EKS, jalankan perintah berikut. Ganti region dengan Wilayah Anda dan cluster-name dengan nama cluster Amazon EKS Anda.
aws eks update-addon --regionregion--cluster-namecluster-name\ --addon-name amazon-sagemaker-hyperpod-taskgovernance \ --addon-version v1.6.0-eksbuild.1 --resolve-conflicts OVERWRITE
Tunggu sampai statusnyaACTIVE:
aws eks describe-addon --regionregion--cluster-namecluster-name\ --addon-name amazon-sagemaker-hyperpod-taskgovernance \ --query 'addon.status' --output text
Topology-aware penjadwalan validasi ukuran irisan
Dimulai dengan v1.6 (Kueue v0.19.2), tata kelola tugas memvalidasi ukuran irisan penjadwalan yang sadar topologi (jumlah pod yang dikelompokkan bersama untuk penempatan) saat Anda mengirimkan pekerjaan. Jika Anda mengirimkan pekerjaan yang menetapkan kueue.x-k8s.io/podset-slice-size anotasi ke nilai kurang dari1, tata kelola tugas menolak pekerjaan dengan kesalahan seperti berikut:
admission webhook "vjob.kb.io" denied the request: spec.template.metadata.annotations[kueue.x-k8s.io/podset-slice-size]: Invalid value: "0": must be greater than or equal to 1
Versi sebelumnya tidak memvalidasi nilai ini. Sebelum Anda memutakhirkan, perbarui templat pekerjaan apa pun yang menggunakan irisan penjadwalan sadar topologi untuk disetel ke atau lebih besar. kueue.x-k8s.io/podset-slice-size 1
Tingkatkan dari v1.3.x ke v1.5 atau yang lebih baru
Cara yang disarankan untuk meningkatkan dari v1.3.x adalah opsi peningkatan di HyperPod konsol SageMaker AI, yang memigrasikan CRD Kueue secara otomatis. Gunakan prosedur manual di bagian ini hanya jika Anda tidak dapat menggunakan konsol. Prosedur ini mendukung v1.5 dan yang lebih baru sebagai versi target.
Langsung aws eks update-addon dari v1.3.x ke v1.5 atau yang lebih baru gagal karena v1.3.x menyimpan beberapa definisi sumber daya kustom Kueue (CRD) di bawah versi API, yang dihapus v1.5: v1alpha1
CustomResourceDefinition.apiextensions.k8s.io "cohorts.kueue.x-k8s.io" is invalid: status.storedVersions[0]: Invalid value: "v1alpha1": missing from spec.versions
Prosedur ini mencadangkan objek Kueue Anda dan menghapus versi lama yang disimpan. Kemudian memutakhirkan add-on dan mengembalikan objek Anda di bawah skema baru.
Dampak dan waktu data
Prosedur ini menghapus dan membuat ulang objek sumber daya kustom Kueue Anda (ClusterQueues,,, Topologi LocalQueues ResourceFlavors, dan objek terkait). Ini mendukungnya terlebih dahulu dan mengembalikannya, jadi tidak ada konfigurasi yang hilang. Itu tidak menghapus namespace apa pun, tidak menghapus CRD apa pun, dan tidak mengubah SageMaker AI ComputeQuota atau catatan apa pun. ClusterSchedulerConfig
Jalankan ini ketika tidak ada beban kerja baru yang perlu dikirimkan. Pod yang sedang berjalan umumnya tidak terganggu, tetapi kami sarankan untuk tidak mengandalkan beban kerja aktif selama migrasi. Beban kerja baru tidak dapat dijadwalkan sampai prosedur selesai. Jalankan melawan satu cluster pada satu waktu.
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
-
kubectldikonfigurasi untuk cluster Amazon EKS target dengan akses cluster-administrator -
AWS CLI Konfigurasi untuk akun cluster dan Wilayah
-
jqdipasang -
Add-on saat ini di v1.3.x dengan status atau
ACTIVEDEGRADED
Secara keseluruhan, ganti region dengan Wilayah Anda dan cluster-name dengan nama cluster Amazon EKS Anda.
Untuk memutakhirkan add-on dari v1.3.x ke v1.5, selesaikan langkah-langkah berikut:
-
Konfirmasikan versi add-on saat ini dan atur direktori kerja.
aws eks describe-addon --regionregion--cluster-namecluster-name\ --addon-name amazon-sagemaker-hyperpod-taskgovernance \ --query 'addon.addonVersion' --output textKonfirmasikan output dimulai dengan
v1.3.. Kemudian aturBACKUP_DIRke jalur absolut dalam direktori yang dapat ditulis dan buat. Langkah-langkah selanjutnya membaca dari dan menulis ke variabel ini, jadi jalankan setiap langkah dalam sesi shell yang sama.export BACKUP_DIR=/absolute/path/to/backup-dirmkdir -p "$BACKUP_DIR" -
Cadangkan setiap sumber daya kustom Kueue ke file lokal.
for crd in admissionchecks clusterqueues cohorts localqueues multikueueclusters \ multikueueconfigs provisioningrequestconfigs resourceflavors topologies \ workloadpriorityclasses workloads; do kubectl get "${crd}.kueue.x-k8s.io" --all-namespaces -o json \ > "$BACKUP_DIR/${crd}.json" 2>/dev/null echo "${crd}: $(jq '.items | length' "$BACKUP_DIR/${crd}.json" 2>/dev/null || echo 0)" doneVerifikasi cadangan sebelum melanjutkan
Konfirmasikan bahwa direktori cadangan berisi file JSON untuk setiap sumber daya kustom dalam perintah sebelumnya, dan bahwa objek yang dihitung dalam output perintah cocok dengan apa yang dimiliki cluster Anda. Jangan melanjutkan jika ada file yang hilang atau kosong.
-
Hapus objek yang dicadangkan dan hapus versi lama yang disimpan dari setiap CRD.
Ini menghapus entri
v1alpha1(atauv1beta1) daristatus.storedVersionssehingga CRD v1.5 atau yang lebih baru dapat diinstal. Objek aman di cadangan Anda dan dipulihkan di langkah selanjutnya.for crd in admissionchecks clusterqueues cohorts localqueues multikueueclusters \ multikueueconfigs provisioningrequestconfigs resourceflavors topologies \ workloadpriorityclasses workloads; do kubectl get crd "${crd}.kueue.x-k8s.io" >/dev/null 2>&1 || continue kubectl delete "${crd}.kueue.x-k8s.io" --all --all-namespaces \ --ignore-not-found=true --wait=false --request-timeout=30s kubectl patch crd "${crd}.kueue.x-k8s.io" --subresource=status --type=merge \ --request-timeout=30s -p '{"status":{"storedVersions":["v1beta2"]}}' doneTentang --all-namespaces dan --wait=false
--all-namespacesdi sini memilih sumber daya khusus di semua ruang nama untuk dihapus; itu tidak menghapus namespace apa pun.--wait=falsemenghindari pemblokiran pada finalizer. Pembaruan add-on pada langkah berikutnya menyelesaikannya. -
Perbarui add-on ke versi target Anda (v1.5.0-eksbuild.1 atau yang lebih baru).
Ganti
target-versiondengan versi add-on target, misalnyav1.5.0-eksbuild.1atauv1.6.0-eksbuild.1.aws eks update-addon --regionregion--cluster-namecluster-name\ --addon-name amazon-sagemaker-hyperpod-taskgovernance \ --addon-versiontarget-version--resolve-conflicts OVERWRITETunggu sampai statusnya
ACTIVE:aws eks describe-addon --regionregion--cluster-namecluster-name\ --addon-name amazon-sagemaker-hyperpod-taskgovernance \ --query 'addon.status' --output text -
Tunggu hingga instalasi baru selesai sebelum memulihkan.
Jangan memulihkan segera setelah laporan
ACTIVEadd-on. Tunggu pengontrol, webhok-nya, dan pekerjaan pasca-instal siap, atau pemulihan pada langkah berikutnya dapat digantung.kubectl rollout status deploy/kueue-controller-manager -n kueue-system --timeout=300suntil [ -n "$(kubectl get endpoints -n kueue-system kueue-webhook-service \ -o jsonpath='{.subsets[*].addresses[*].ip}' 2>/dev/null)" ]; do echo "waiting for kueue webhook endpoint..."; sleep 5 donekubectl wait --for=condition=complete job -l app.kubernetes.io/name=kueue \ -n kueue-system --timeout=180s || true -
Kembalikan objek Anda di bawah skema baru.
Ini mengubah setiap objek yang dicadangkan ke skema v1.5 atau later (
v1beta2) dan menerapkannya kembali.transform() { jq ' .apiVersion = "kueue.x-k8s.io/v1beta2" | del(.status) | del(.metadata.resourceVersion, .metadata.uid, .metadata.creationTimestamp, .metadata.generation, .metadata.managedFields, .metadata.selfLink) | del(.metadata.annotations."kubectl.kubernetes.io/last-applied-configuration") | if .kind == "Cohort" and (.spec.parent != null) then .spec.parentName = (.spec.parentName // .spec.parent) | del(.spec.parent) else . end | if .kind == "ClusterQueue" and (.spec.cohort != null) then .spec.cohortName = (.spec.cohortName // .spec.cohort) | del(.spec.cohort) else . end | if .kind == "ClusterQueue" then del(.spec.admissionChecks) else . end | if .kind == "AdmissionCheck" then del(.spec.retryDelayMinutes) else . end ' } for crd in resourceflavors topologies workloadpriorityclasses admissionchecks cohorts \ provisioningrequestconfigs multikueueclusters multikueueconfigs \ clusterqueues localqueues workloads; do f="$BACKUP_DIR/${crd}.json" [ -s "$f" ] || continue count=$(jq '.items | length' "$f") for (( i=0; i<count; i++ )); do obj=$(jq -c ".items[$i]" "$f" | transform) name=$(printf '%s' "$obj" | jq -r '.kind + "/" + .metadata.name') if printf '%s' "$obj" | kubectl apply --request-timeout=30s -f - >/dev/null 2>&1; then echo "applied $name" else echo "check $name (may already be recreated by the add-on)" fi done done -
Verifikasi hasilnya.
aws eks describe-addon --regionregion--cluster-namecluster-name\ --addon-name amazon-sagemaker-hyperpod-taskgovernance \ --query 'addon.{version:addonVersion,status:status}'Output contoh adalah sebagai berikut (
versionkecocokan Anda dengan yangtarget-versionAnda tetapkan pada langkah 4).{ "version": "v1.5.0-eksbuild.1", "status": "ACTIVE" }Konfirmasikan objek Anda ada dan tidak ada daftar
v1alpha1CRD:kubectl get clusterqueues kubectl get localqueues --all-namespaces kubectl get crd clusterqueues.kueue.x-k8s.io -o jsonpath='{.status.storedVersions}'storedVersionsOutput harus berisi hanyav1beta2(atauv1beta1danv1beta2), tidak pernahv1alpha1. Bandingkan objek yang dipulihkan dengan file$BACKUP_DIRuntuk mengonfirmasi bahwa nilai konfigurasi Anda tidak berubah.