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.3.x ke v1.5
Cara yang disarankan untuk meningkatkan dari v1.3.x ke v1.5 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.
Langsung aws eks update-addon dari v1.3.x ke v1.5 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 Region
-
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 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 v1.5.
aws eks update-addon --regionregion--cluster-namecluster-name\ --addon-name amazon-sagemaker-hyperpod-taskgovernance \ --addon-version v1.5.0-eksbuild.1 --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 (
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}'Contoh output adalah sebagai berikut.
{ "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.