SageMaker Operator Lama untuk Kubernetes - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

SageMaker Operator Lama untuk Kubernetes

Bagian ini didasarkan pada versi asli SageMaker Operator untuk Kubernetes.

penting

Kami menghentikan pengembangan dan dukungan teknis dari versi asli SageMaker Operator untuk Kubernetes.

Jika saat ini Anda menggunakan SageMaker Operator untuk Kubernetes versi v1.2.2 atau di bawah ini, kami sarankan untuk memigrasikan sumber daya Anda ke ACKpengontrol layanan untuk Amazon. SageMaker ACKService Controller adalah generasi baru SageMaker Operator untuk Kubernetes berdasarkan AWS Controller for Kubernetes (). ACK

Untuk informasi tentang langkah-langkah migrasi, lihatMigrasikan sumber daya ke Operator terbaru.

Untuk jawaban atas pertanyaan umum di akhir dukungan versi asli SageMaker Operator untuk Kubernetes, lihat Mengumumkan Berakhirnya Support Versi Original SageMaker Operator untuk Kubernetes

Instal SageMaker Operator untuk Kubernetes

Gunakan langkah-langkah berikut untuk menginstal dan menggunakan SageMaker Operator untuk Kubernetes untuk melatih, menyetel, dan menerapkan model pembelajaran mesin dengan Amazon. SageMaker

IAMpenyiapan berbasis peran dan penyebaran operator

Bagian berikut menjelaskan langkah-langkah untuk mengatur dan menyebarkan versi asli operator.

Awas

Pengingat: Langkah-langkah berikut tidak menginstal versi terbaru SageMaker Operator untuk Kubernetes. Untuk menginstal SageMaker Operator ACK berbasis baru untuk Kubernetes, lihat. SageMaker Operator Terbaru untuk Kubernetes

Prasyarat

Panduan ini mengasumsikan bahwa Anda telah menyelesaikan prasyarat berikut:

  • Instal alat-alat berikut pada mesin klien yang digunakan untuk mengakses klaster Kubernetes Anda:

    • kubectlVersi 1.13 atau yang lebih baru. Gunakan kubectl versi yang ada dalam satu versi minor dari bidang kontrol EKS cluster Amazon Anda. Misalnya, kubectl klien 1,13 bekerja dengan klaster Kubernetes 1,13 dan 1,14. OpenID Connect (OIDC) tidak didukung dalam versi yang lebih awal dari 1.13.

    • eksctlVersi 0.7.0 atau yang lebih baru

    • AWS CLIVersi 1.16.232 atau yang lebih baru

    • (opsional) Helm Versi 3.0 atau yang lebih baru

    • aws-iam-authenticator

  • Memiliki IAM izin untuk membuat peran dan melampirkan kebijakan ke peran.

  • Membuat cluster Kubernetes untuk menjalankan operator. Itu harus Kubernetes versi 1.13 atau 1.14. Untuk pembuatan klaster otomatis menggunakaneksctl, lihat Memulai dengan eksctl. Dibutuhkan 20-30 menit untuk menyediakan cluster.

Penerapan cakupan cluster

Sebelum Anda dapat menerapkan operator menggunakan IAM peran, kaitkan Penyedia Identitas OpenID OIDC Connect () (IDP) dengan peran Anda untuk mengautentikasi dengan layanan. IAM

Buat OIDC penyedia untuk klaster Anda

Petunjuk berikut menunjukkan cara membuat dan mengaitkan OIDC penyedia dengan EKS klaster Amazon Anda.

  1. Tetapkan variabel lokal CLUSTER_NAME dan AWS_REGION lingkungan sebagai berikut:

    # Set the Region and cluster export CLUSTER_NAME="<your cluster name>" export AWS_REGION="<your region>"
  2. Gunakan perintah berikut untuk mengaitkan OIDC penyedia dengan cluster Anda. Untuk informasi selengkapnya, lihat Mengaktifkan IAM Peran untuk Akun Layanan di Cluster Anda.

    eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \ --region ${AWS_REGION} --approve

    Output Anda akan terlihat seperti berikut:

    [_] eksctl version 0.10.1 [_] using region us-east-1 [_] IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"

Sekarang klaster memiliki penyedia OIDC identitas, Anda dapat membuat peran dan memberikan ServiceAccount izin Kubernetes untuk mengambil peran tersebut.

Dapatkan OIDC ID

Untuk mengatur ServiceAccount, dapatkan OIDC penerbit URL menggunakan perintah berikut:

aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text

Perintah mengembalikan URL seperti berikut:

https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID

Dalam hal iniURL, nilainya D48675832CA65BD10A532F597OIDCID adalah OIDC ID. OIDCID untuk cluster Anda berbeda. Anda memerlukan nilai OIDC ID ini untuk membuat peran.

Jika output AndaNone, itu berarti versi klien Anda sudah tua. Untuk mengatasinya, jalankan perintah berikut:

aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC

OIDCURLDikembalikan sebagai berikut:

OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Buat IAM peran
  1. Buat file bernama trust.json dan masukkan blok kode hubungan kepercayaan berikut ke dalamnya. Pastikan untuk mengganti all<OIDC ID>,<AWS account number>, dan <EKS Cluster region> placeholder dengan nilai yang sesuai dengan cluster Anda.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::<AWS account number>:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com", "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default" } } } ] }
  2. Jalankan perintah berikut untuk membuat peran dengan hubungan kepercayaan yang didefinisikan dalamtrust.json. Peran ini memungkinkan EKS kluster Amazon untuk mendapatkan dan menyegarkan kredensialnya. IAM

    aws iam create-role --region ${AWS_REGION} --role-name <role name> --assume-role-policy-document file://trust.json --output=text

    Output Anda akan terlihat seperti berikut:

    ROLE arn:aws:iam::123456789012:role/my-role 2019-11-22T21:46:10Z / ABCDEFSFODNN7EXAMPLE my-role ASSUMEROLEPOLICYDOCUMENT 2012-10-17 STATEMENT sts:AssumeRoleWithWebIdentity Allow STRINGEQUALS sts.amazonaws.com system:serviceaccount:sagemaker-k8s-operator-system:sagemaker-k8s-operator-default PRINCIPAL arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/

    PerhatikanROLE ARN; Anda meneruskan nilai ini ke operator Anda.

Lampirkan AmazonSageMakerFullAccess kebijakan ke peran

Untuk memberikan akses peran SageMaker, lampirkan AmazonSageMakerFullAccesskebijakan. Jika Anda ingin membatasi izin ke operator, Anda dapat membuat kebijakan khusus Anda sendiri dan melampirkannya.

Untuk melampirkanAmazonSageMakerFullAccess, jalankan perintah berikut:

aws iam attach-role-policy --role-name <role name> --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess

Kubernetes ServiceAccount sagemaker-k8s-operator-default harus memiliki izin. AmazonSageMakerFullAccess Konfirmasikan ini saat Anda menginstal operator.

Menyebarkan operator

Saat menerapkan operator, Anda dapat menggunakan YAML file atau bagan Helm.

Menyebarkan operator menggunakan YAML

Ini adalah cara paling sederhana untuk menyebarkan operator Anda. Prosesnya adalah sebagai berikut:

  1. Unduh skrip penginstal menggunakan perintah berikut:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
  2. Edit installer.yaml file untuk digantieks.amazonaws.com/role-arn. Ganti di ARN sini dengan Amazon Resource Name (ARN) untuk peran OIDC berbasis yang telah Anda buat.

  3. Gunakan perintah berikut untuk menyebarkan cluster:

    kubectl apply -f installer.yaml
Menerapkan operator menggunakan Helm Charts

Gunakan Bagan Helm yang disediakan untuk menginstal operator.

  1. Kloning direktori installer Helm menggunakan perintah berikut:

    git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
  2. Arahkan ke amazon-sagemaker-operator-for-k8s/hack/charts/installer folder. Edit rolebased/values.yaml file, yang mencakup parameter tingkat tinggi untuk bagan. Ganti peran di ARN sini dengan Amazon Resource Name (ARN) untuk peran OIDC berbasis yang telah Anda buat.

  3. Instal Bagan Helm menggunakan perintah berikut:

    kubectl create namespace sagemaker-k8s-operator-system helm install --namespace sagemaker-k8s-operator-system sagemaker-operator rolebased/

    Jika Anda memutuskan untuk menginstal operator ke namespace selain yang ditentukan, Anda perlu menyesuaikan namespace yang ditentukan dalam file IAM peran trust.json agar sesuai.

  4. Setelah beberapa saat, bagan diinstal dengan nama yang dihasilkan secara acak. Verifikasi bahwa instalasi berhasil dengan menjalankan perintah berikut:

    helm ls

    Output Anda akan terlihat seperti berikut:

    NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION sagemaker-operator sagemaker-k8s-operator-system 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0
Verifikasi penyebaran operator
  1. Anda harus dapat melihat Definisi Sumber Daya SageMaker Kustom (CRDs) untuk setiap operator yang diterapkan ke klaster Anda dengan menjalankan perintah berikut:

    kubectl get crd | grep sagemaker

    Output Anda akan terlihat seperti berikut:

    batchtransformjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z endpointconfigs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z hostingdeployments.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z hyperparametertuningjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z models.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z trainingjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z
  2. Pastikan pod operator berjalan dengan sukses. Gunakan perintah berikut untuk membuat daftar semua pod:

    kubectl -n sagemaker-k8s-operator-system get pods

    Anda akan melihat sebuah pod bernama sagemaker-k8s-operator-controller-manager-***** di namespace sagemaker-k8s-operator-system sebagai berikut:

    NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s

Penerapan dengan cakupan ruang nama

Anda memiliki opsi untuk menginstal operator Anda dalam lingkup namespace Kubernetes individual. Dalam mode ini, pengontrol hanya memantau dan merekonsiliasi sumber daya dengan SageMaker jika sumber daya dibuat dalam namespace itu. Ini memungkinkan kontrol yang lebih halus atas pengontrol mana yang mengelola sumber daya mana. Ini berguna untuk menyebarkan ke beberapa AWS akun atau mengontrol pengguna mana yang memiliki akses ke pekerjaan tertentu.

Panduan ini menguraikan cara menginstal operator ke namespace tertentu yang telah ditentukan sebelumnya. Untuk menerapkan controller ke namespace kedua, ikuti panduan dari awal hingga akhir dan ubah namespace di setiap langkah.

Buat OIDC penyedia untuk EKS klaster Amazon Anda

Petunjuk berikut menunjukkan cara membuat dan mengaitkan OIDC penyedia dengan EKS klaster Amazon Anda.

  1. Tetapkan variabel lokal CLUSTER_NAME dan AWS_REGION lingkungan sebagai berikut:

    # Set the Region and cluster export CLUSTER_NAME="<your cluster name>" export AWS_REGION="<your region>"
  2. Gunakan perintah berikut untuk mengaitkan OIDC penyedia dengan cluster Anda. Untuk informasi selengkapnya, lihat Mengaktifkan IAM Peran untuk Akun Layanan di Cluster Anda.

    eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \ --region ${AWS_REGION} --approve

    Output Anda akan terlihat seperti berikut:

    [_] eksctl version 0.10.1 [_] using region us-east-1 [_] IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"

Sekarang klaster memiliki penyedia OIDC identitas, buat peran dan berikan ServiceAccount izin Kubernetes untuk mengambil peran tersebut.

Dapatkan OIDC ID Anda

Untuk mengatur ServiceAccount, pertama-tama dapatkan penerbit OpenID Connect URL menggunakan perintah berikut:

aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text

Perintah mengembalikan URL seperti berikut:

https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID

Dalam hal iniURL, nilai D48675832 CA65BD1 0A532F597 adalah ID. OIDCID OIDC OIDCID untuk cluster Anda berbeda. Anda memerlukan nilai OIDC ID ini untuk membuat peran.

Jika output AndaNone, itu berarti versi klien Anda sudah tua. Untuk mengatasinya, jalankan perintah berikut:

aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC

OIDCURLDikembalikan sebagai berikut:

OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
Buat IAM peran Anda
  1. Buat file bernama trust.json dan masukkan blok kode hubungan kepercayaan berikut ke dalamnya. Pastikan untuk mengganti semua<OIDC ID>,, <AWS account number><EKS Cluster region>, dan <Namespace> placeholder dengan nilai yang sesuai dengan cluster Anda. Untuk keperluan panduan ini, my-namespace digunakan untuk <Namespace> nilai.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::<AWS account number>:oidc-provider/oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:aud": "sts.amazonaws.com", "oidc.eks.<EKS Cluster region>.amazonaws.com/id/<OIDC ID>:sub": "system:serviceaccount:<Namespace>:sagemaker-k8s-operator-default" } } } ] }
  2. Jalankan perintah berikut untuk membuat peran dengan hubungan kepercayaan yang didefinisikan dalamtrust.json. Peran ini memungkinkan EKS kluster Amazon untuk mendapatkan dan menyegarkan kredensialnya. IAM

    aws iam create-role --region ${AWS_REGION} --role-name <role name> --assume-role-policy-document file://trust.json --output=text

    Output Anda akan terlihat seperti berikut:

    ROLE arn:aws:iam::123456789012:role/my-role 2019-11-22T21:46:10Z / ABCDEFSFODNN7EXAMPLE my-role ASSUMEROLEPOLICYDOCUMENT 2012-10-17 STATEMENT sts:AssumeRoleWithWebIdentity Allow STRINGEQUALS sts.amazonaws.com system:serviceaccount:my-namespace:sagemaker-k8s-operator-default PRINCIPAL arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/

PerhatikanROLE ARN. Anda meneruskan nilai ini ke operator Anda.

Lampirkan AmazonSageMakerFullAccess kebijakan ke peran Anda

Untuk memberikan akses peran SageMaker, lampirkan AmazonSageMakerFullAccesskebijakan. Jika Anda ingin membatasi izin ke operator, Anda dapat membuat kebijakan khusus Anda sendiri dan melampirkannya.

Untuk melampirkanAmazonSageMakerFullAccess, jalankan perintah berikut:

aws iam attach-role-policy --role-name <role name> --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess

Kubernetes ServiceAccount sagemaker-k8s-operator-default harus memiliki izin. AmazonSageMakerFullAccess Konfirmasikan ini saat Anda menginstal operator.

Terapkan operator ke namespace Anda

Saat menerapkan operator, Anda dapat menggunakan YAML file atau bagan Helm.

Terapkan operator ke namespace Anda menggunakan YAML

Ada dua bagian untuk menerapkan operator dalam lingkup namespace. Yang pertama adalah himpunan CRDs yang dipasang pada tingkat cluster. Definisi sumber daya ini hanya perlu diinstal satu kali per klaster Kubernetes. Bagian kedua adalah izin operator dan penyebaran itu sendiri.

Jika Anda belum menginstal CRDs ke dalam cluster, terapkan CRD installer YAML menggunakan perintah berikut:

kubectl apply -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml

Untuk menginstal operator ke cluster:

  1. Unduh penginstal operator YAML menggunakan perintah berikut:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
  2. Perbarui penginstal YAML untuk menempatkan sumber daya ke namespace yang Anda tentukan menggunakan perintah berikut:

    sed -i -e 's/PLACEHOLDER-NAMESPACE/<YOUR NAMESPACE>/g' operator.yaml
  3. Edit operator.yaml file untuk menempatkan sumber daya ke dalam file Andaeks.amazonaws.com/role-arn. Ganti di ARN sini dengan Amazon Resource Name (ARN) untuk peran OIDC berbasis yang telah Anda buat.

  4. Gunakan perintah berikut untuk menyebarkan cluster:

    kubectl apply -f operator.yaml
Terapkan operator ke namespace Anda menggunakan Helm Charts

Ada dua bagian yang diperlukan untuk menyebarkan operator dalam lingkup namespace. Yang pertama adalah himpunan CRDs yang dipasang pada tingkat cluster. Definisi sumber daya ini hanya perlu diinstal satu kali per klaster Kubernetes. Bagian kedua adalah izin operator dan penyebaran itu sendiri. Saat menggunakan Helm Charts, Anda harus terlebih dahulu membuat namespace menggunakan. kubectl

  1. Kloning direktori installer Helm menggunakan perintah berikut:

    git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
  2. Arahkan ke amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced folder. Edit rolebased/values.yaml file, yang mencakup parameter tingkat tinggi untuk bagan. Ganti peran di ARN sini dengan Amazon Resource Name (ARN) untuk peran OIDC berbasis yang telah Anda buat.

  3. Instal Bagan Helm menggunakan perintah berikut:

    helm install crds crd_chart/
  4. Buat namespace yang diperlukan dan instal operator menggunakan perintah berikut:

    kubectl create namespace <namespace> helm install --n <namespace> op operator_chart/
  5. Setelah beberapa saat, bagan dipasang dengan namasagemaker-operator. Verifikasi bahwa instalasi berhasil dengan menjalankan perintah berikut:

    helm ls

    Output Anda akan terlihat seperti berikut:

    NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION sagemaker-operator my-namespace 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0
Verifikasi penyebaran operator ke namespace Anda
  1. Anda harus dapat melihat Definisi Sumber Daya SageMaker Kustom (CRDs) untuk setiap operator yang diterapkan ke klaster Anda dengan menjalankan perintah berikut:

    kubectl get crd | grep sagemaker

    Output Anda akan terlihat seperti berikut:

    batchtransformjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z endpointconfigs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z hostingdeployments.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z hyperparametertuningjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z models.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z trainingjobs.sagemaker.aws.amazon.com 2019-11-20T17:12:34Z
  2. Pastikan pod operator berjalan dengan sukses. Gunakan perintah berikut untuk membuat daftar semua pod:

    kubectl -n my-namespace get pods

    Anda akan melihat sebuah pod bernama sagemaker-k8s-operator-controller-manager-***** di namespace my-namespace sebagai berikut:

    NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s

Instal kubectl plugin SageMaker log

Sebagai bagian dari SageMaker Operator untuk Kubernetes, Anda dapat menggunakan plugin untuk. smlogs kubectl Hal ini memungkinkan SageMaker CloudWatch log untuk dialirkan dengankubectl. kubectlharus diinstal ke Anda PATH. Perintah berikut menempatkan biner di sagemaker-k8s-bin direktori di direktori home Anda, dan menambahkan direktori itu ke direktori AndaPATH.

export os="linux" wget https://amazon-sagemaker-operator-for-k8s-us-east-1.s3.amazonaws.com/kubectl-smlogs-plugin/v1/${os}.amd64.tar.gz tar xvzf ${os}.amd64.tar.gz # Move binaries to a directory in your homedir. mkdir ~/sagemaker-k8s-bin cp ./kubectl-smlogs.${os}.amd64/kubectl-smlogs ~/sagemaker-k8s-bin/. # This line adds the binaries to your PATH in your .bashrc. echo 'export PATH=$PATH:~/sagemaker-k8s-bin' >> ~/.bashrc # Source your .bashrc to update environment variables: source ~/.bashrc

Gunakan perintah berikut untuk memverifikasi bahwa kubectl plugin diinstal dengan benar:

kubectl smlogs

Jika kubectl plugin diinstal dengan benar, output Anda akan terlihat seperti berikut:

View SageMaker logs via Kubernetes Usage: smlogs [command] Aliases: smlogs, SMLogs, Smlogs Available Commands: BatchTransformJob View BatchTransformJob logs via Kubernetes TrainingJob View TrainingJob logs via Kubernetes help Help about any command Flags: -h, --help help for smlogs Use "smlogs [command] --help" for more information about a command.

Pembersihan sumber daya

Untuk menghapus instalan operator dari cluster Anda, Anda harus terlebih dahulu memastikan untuk menghapus semua SageMaker sumber daya dari cluster. Kegagalan untuk melakukannya menyebabkan operasi penghapusan operator hang. Jalankan perintah berikut untuk menghentikan semua pekerjaan:

# Delete all SageMaker jobs from Kubernetes kubectl delete --all --all-namespaces hyperparametertuningjob.sagemaker.aws.amazon.com kubectl delete --all --all-namespaces trainingjobs.sagemaker.aws.amazon.com kubectl delete --all --all-namespaces batchtransformjob.sagemaker.aws.amazon.com kubectl delete --all --all-namespaces hostingdeployment.sagemaker.aws.amazon.com

Anda akan melihat output yang serupa dengan yang berikut:

$ kubectl delete --all --all-namespaces trainingjobs.sagemaker.aws.amazon.com trainingjobs.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted $ kubectl delete --all --all-namespaces hyperparametertuningjob.sagemaker.aws.amazon.com hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted $ kubectl delete --all --all-namespaces batchtransformjob.sagemaker.aws.amazon.com batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted $ kubectl delete --all --all-namespaces hostingdeployment.sagemaker.aws.amazon.com hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted

Setelah Anda menghapus semua SageMaker pekerjaan, lihat Hapus operator untuk menghapus operator dari klaster Anda.

Hapus operator

Hapus operator berbasis cluster

Operator diinstal menggunakan YAML

Untuk menghapus instalan operator dari cluster Anda, pastikan bahwa semua SageMaker sumber daya telah dihapus dari cluster. Kegagalan untuk melakukannya menyebabkan operasi penghapusan operator hang.

catatan

Sebelum menghapus cluster Anda, pastikan untuk menghapus semua SageMaker sumber daya dari cluster. Untuk informasi selengkapnya, lihat Pembersihan sumber daya.

Setelah Anda menghapus semua SageMaker pekerjaan, gunakan kubectl untuk menghapus operator dari cluster:

# Delete the operator and its resources kubectl delete -f /installer.yaml

Anda akan melihat output yang serupa dengan yang berikut:

$ kubectl delete -f raw-yaml/installer.yaml namespace "sagemaker-k8s-operator-system" deleted customresourcedefinition.apiextensions.k8s.io "batchtransformjobs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "endpointconfigs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "hostingdeployments.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "hyperparametertuningjobs.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "models.sagemaker.aws.amazon.com" deleted customresourcedefinition.apiextensions.k8s.io "trainingjobs.sagemaker.aws.amazon.com" deleted role.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-role" deleted clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-role" deleted clusterrole.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-role" deleted rolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-leader-election-rolebinding" deleted clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-manager-rolebinding" deleted clusterrolebinding.rbac.authorization.k8s.io "sagemaker-k8s-operator-proxy-rolebinding" deleted service "sagemaker-k8s-operator-controller-manager-metrics-service" deleted deployment.apps "sagemaker-k8s-operator-controller-manager" deleted secrets "sagemaker-k8s-operator-abcde" deleted
Operator diinstal menggunakan Helm Charts

Untuk menghapus operatorCRDs, pertama-tama hapus semua pekerjaan yang sedang berjalan. Kemudian hapus Bagan Helm yang digunakan untuk menyebarkan operator menggunakan perintah berikut:

# get the helm charts helm ls # delete the charts helm delete <chart_name>

Hapus operator berbasis namespace

Operator diinstal dengan YAML

Untuk menghapus instalan operator dari cluster Anda, pertama-tama pastikan bahwa semua SageMaker sumber daya telah dihapus dari cluster. Kegagalan untuk melakukannya menyebabkan operasi penghapusan operator hang.

catatan

Sebelum menghapus cluster Anda, pastikan untuk menghapus semua SageMaker sumber daya dari cluster. Untuk informasi selengkapnya, lihat Pembersihan sumber daya.

Setelah Anda menghapus semua SageMaker pekerjaan, gunakan kubectl untuk pertama menghapus operator dari namespace dan kemudian CRDs dari cluster. Jalankan perintah berikut untuk menghapus operator dari cluster:

# Delete the operator using the same yaml file that was used to install the operator kubectl delete -f operator.yaml # Now delete the CRDs using the CRD installer yaml kubectl delete -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml # Now you can delete the namespace if you want kubectl delete namespace <namespace>
Operator diinstal dengan Helm Charts

Untuk menghapus operatorCRDs, pertama-tama hapus semua pekerjaan yang sedang berjalan. Kemudian hapus Bagan Helm yang digunakan untuk menyebarkan operator menggunakan perintah berikut:

# Delete the operator helm delete <chart_name> # delete the crds helm delete crds # optionally delete the namespace kubectl delete namespace <namespace>

Pemecahan Masalah

Mendebug pekerjaan yang gagal

Gunakan langkah-langkah ini untuk men-debug pekerjaan yang gagal.

  • Periksa status pekerjaan dengan menjalankan yang berikut:

    kubectl get <CRD Type> <job name>
  • Jika pekerjaan dibuat di SageMaker, Anda dapat menggunakan perintah berikut untuk melihat STATUS danSageMaker Job Name:

    kubectl get <crd type> <job name>
  • Anda dapat menggunakan smlogs untuk menemukan penyebab masalah menggunakan perintah berikut:

    kubectl smlogs <crd type> <job name>
  • Anda juga dapat menggunakan describe perintah untuk mendapatkan detail lebih lanjut tentang pekerjaan menggunakan perintah berikut. Output memiliki additional bidang yang memiliki informasi lebih lanjut tentang status pekerjaan.

    kubectl describe <crd type> <job name>
  • Jika pekerjaan tidak dibuat SageMaker, gunakan log pod operator untuk menemukan penyebab masalah sebagai berikut:

    $ kubectl get pods -A | grep sagemaker # Output: sagemaker-k8s-operator-system sagemaker-k8s-operator-controller-manager-5cd7df4d74-wh22z 2/2 Running 0 3h33m $ kubectl logs -p <pod name> -c manager -n sagemaker-k8s-operator-system

Menghapus operator CRD

Jika menghapus pekerjaan tidak berfungsi, periksa apakah operator sedang berjalan. Jika operator tidak berjalan, maka Anda harus menghapus finalizer menggunakan langkah-langkah berikut:

  1. Di terminal baru, buka pekerjaan di editor menggunakan kubectl edit sebagai berikut:

    kubectl edit <crd type> <job name>
  2. Edit pekerjaan untuk menghapus finalizer dengan menghapus dua baris berikut dari file. Simpan file dan pekerjaan akan dihapus.

    finalizers: - sagemaker-operator-finalizer

Gambar dan SMlogs di setiap Wilayah

Tabel berikut mencantumkan gambar operator yang tersedia dan SMLogs di setiap Wilayah.

Wilayah Gambar Pengontrol Linux SMLogs
us-east-1 957583890962.dkr.ecr.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1 https://s3.us-east-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz
us-east-2 922499468684.dkr.ecr.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1 https://s3.us-east-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-east-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz
us-west-2 640106867763.dkr.ecr.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1 https://s3.us-west-2.amazonaws.com/amazon-sagemaker-operator-for-k8s-us-west-2/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz
eu-west-1 613661167059.dkr.ecr.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s:v1 https://s3.eu-west-1.amazonaws.com/amazon-sagemaker-operator-for-k8s-eu-west-1/kubectl-smlogs-plugin/v1/linux.amd64.tar.gz