翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Kubernetes の古い SageMaker 演算子
このセクションでは、SageMaker Operators for Kubernetes
重要
元のバージョンの SageMaker Operators for Kubernetes
Kubernetes 用の SageMaker Operators v1.2.2
以下を現在使用している場合は、ACKAmazon 用のサービスコントローラー SageMaker
移行ステップについては、「リソースを最新のオペレータに移行する」を参照してください。
SageMaker Operators for Kubernetes のオリジナルバージョンのサポート終了に関するよくある質問への回答については、「」を参照してください。 元のバージョンの SageMaker Operators for Kubernetes のサポート終了のお知らせ
内容
SageMaker Operators for Kubernetes をインストールする
次の手順を使用して、Amazon で機械学習モデルをトレーニング、調整、デプロイするための SageMaker Operators for Kubernetes をインストールして使用します SageMaker。
IAM ロールベースのセットアップとオペレータのデプロイ
以下のセクションでは、オペレーターの元のバージョンを設定、デプロイする手順について説明します。
警告
注意: 次の手順では、最新バージョンの SageMaker Operators for Kubernetes はインストールされません。新しい ACKベースの SageMaker Operators for Kubernetes をインストールするには、「」を参照してくださいKubernetes の最新 SageMaker オペレーター。
前提条件
このガイドでは、次の前提条件を満たしていることを前提としています。
-
Kubernetes クラスターへのアクセスに使用するクライアントマシンに次のツールをインストールします。
-
ロールを作成し、ロールにポリシーをアタッチするIAMアクセス許可を持つ。
-
オペレーターを実行する Kubernetes クラスターが作成されていること。Kubernetes バージョン 1.13 または 1.14 のいずれかである必要があります。
eksctl
を使用したクラスターの自動作成については、「Amazon EKS の開始方法 – eksctl」を参照してください。クラスターのプロビジョニングには 20~30 分かかります。
クラスターを対象範囲とするデプロイ
IAM ロールを使用してオペレータをデプロイする前に、OpenID Connect (OIDC) Identity Provider (IdP ) をロールに関連付けて、 IAM サービスで認証します。
クラスターのOIDCプロバイダーを作成する
次の手順は、OIDCプロバイダーを作成して Amazon EKSクラスターに関連付ける方法を示しています。
-
以下の手順を実行して、ローカルの
CLUSTER_NAME
とAWS_REGION
環境変数を設定します。# Set the Region and cluster export CLUSTER_NAME="
<your cluster name>
" export AWS_REGION="<your region>
" -
次のコマンドを使用して、OIDCプロバイダーをクラスターに関連付けます。詳細については、「クラスターでのサービスアカウントのIAMロールの有効化」を参照してください。
eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \ --region ${AWS_REGION} --approve
出力は次のようになります。
[_] eksctl version 0.10.1 [_] using region us-east-1 [_] IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
クラスターに OIDC ID プロバイダーができたので、ロールを作成し、そのロールを引き受けるアクセス ServiceAccount 許可を Kubernetes に付与できます。
OIDC ID を取得する
を設定するには ServiceAccount、次のコマンドURLを使用してOIDC発行者を取得します。
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text
コマンドはURL、次のような を返します。
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
この ではURL、値は OIDC ID D48675832CA65BD10A532F597OIDCID
です。クラスターの OIDC ID は異なります。ロールを作成するには、この OIDC ID 値が必要です。
出力が None
となる場合は、クライアントのバージョンが古いことを意味します。この問題を回避するには、以下のコマンドを実行します。
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
OIDC URL は次のように返されます。
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
IAM ロールを作成する
-
trust.json
という名前のファイルを作成し、以下の信頼関係コードブロックを挿入します。<OIDC ID>
、<AWS account number>
、<EKS Cluster region>
のプレースホルダーはすべて、クラスターに対応する値に必ず置き換えてください。{ "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" } } } ] } -
以下のコマンドを実行して、
trust.json
で定義される信頼関係を持つロールを作成します。このロールにより、Amazon EKSクラスターは から認証情報を取得および更新できますIAM。aws iam create-role --region ${AWS_REGION} --role-name
<role name>
--assume-role-policy-document file://trust.json --output=text出力は次のようになります。
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/
ROLE ARN
を書き留めておき、この値をオペレーターに渡します。
AmazonSageMakerFullAccess ポリシーをロールにアタッチする
ロールに へのアクセスを許可するには SageMaker、AmazonSageMakerFullAccess
AmazonSageMakerFullAccess
をアタッチするには、以下のコマンドを実行します。
aws iam attach-role-policy --role-name
<role name>
--policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
Kubernetes ServiceAccount sagemaker-k8s-operator-default
にはAmazonSageMakerFullAccess
アクセス許可が必要です。オペレーターをインストールするときにこれを確認します。
オペレーターをデプロイする
演算子をデプロイするときは、YAMLファイルまたは Helm チャートを使用できます。
を使用して演算子をデプロイする YAML
これは、最も簡単なオペレーターのデプロイ方法です。手順は次のとおりです。
-
以下のコマンドを使用して、インストーラスクリプトをダウンロードします。
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
-
installer.yaml
ファイルを編集して、eks.amazonaws.com/role-arn
を置き換えます。ここで を、作成した OIDCベースのロールの Amazon リソースネーム (ARN) ARNに置き換えます。 -
以下のコマンドを使用してクラスターをデプロイします。
kubectl apply -f installer.yaml
Helm チャートを使用してオペレーターをデプロイする
提供された Helm チャートを使用して、オペレーターをインストールします。
-
以下のコマンドを使用して Helm インストーラディレクトリのクローンを作成します。
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
-
amazon-sagemaker-operator-for-k8s/hack/charts/installer
フォルダに移動します。rolebased/values.yaml
ファイルを編集します。このファイルには、チャートの高レベルパラメータが含まれています。ARN ここでロールを、作成した OIDCベースのロールの Amazon リソースネーム (ARN) に置き換えます。 -
以下のコマンドを使用して、Helm チャートをインストールします。
kubectl create namespace sagemaker-k8s-operator-system helm install --namespace sagemaker-k8s-operator-system sagemaker-operator rolebased/
指定された名前空間以外の名前空間に演算子をインストールする場合は、IAMロール
trust.json
ファイルで定義された名前空間を一致させるように調整する必要があります。 -
しばらくすると、ランダムに生成された名前でチャートがインストールされます。以下のコマンドを使用して、正常にインストールされたことを確認します。
helm ls
出力は次のようになります。
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
オペレーターのデプロイを確認する
-
次のコマンドを実行すると、クラスターにデプロイされた各オペレーターの SageMaker カスタムリソース定義 (CRDs) を表示できます。
kubectl get crd | grep sagemaker
出力は次のようになります。
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
-
オペレーターポッドが正常に実行されていることを確認します。すべてのポッドを一覧表示するには、以下のコマンドを使用します。
kubectl -n sagemaker-k8s-operator-system get pods
以下のように、名前空間
sagemaker-k8s-operator-system
にsagemaker-k8s-operator-controller-manager-*****
という名前のポッドが表示されます。NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s
名前空間を対象範囲とするデプロイ
個々の Kubernetes 名前空間の範囲内にオペレーターをインストールするオプションもあります。このモードでは、リソースがその名前空間内に作成された SageMaker 場合にのみ、コントローラーはリソースをモニタリングして と照合します。これにより、リソースを管理するコントローラーはどのコントローラーか細かく制御できます。これは、複数の AWS アカウントにデプロイしたり、特定のジョブにアクセスできるユーザーを制御するのに役立ちます。
このガイドでは、オペレーターを特定の定義済み名前空間にインストールする方法を説明します。コントローラーを 2 番目の名前空間にデプロイするには、このガイドの手順を最初から最後まで実行し、各ステップで名前空間を変更します。
Amazon EKSクラスターのOIDCプロバイダーを作成する
次の手順は、OIDCプロバイダーを作成して Amazon EKSクラスターに関連付ける方法を示しています。
-
以下の手順を実行して、ローカルの
CLUSTER_NAME
とAWS_REGION
環境変数を設定します。# Set the Region and cluster export CLUSTER_NAME="
<your cluster name>
" export AWS_REGION="<your region>
" -
次のコマンドを使用して、OIDCプロバイダーをクラスターに関連付けます。詳細については、「クラスターでのサービスアカウントのIAMロールの有効化」を参照してください。
eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} \ --region ${AWS_REGION} --approve
出力は次のようになります。
[_] eksctl version 0.10.1 [_] using region us-east-1 [_] IAM OpenID Connect provider is associated with cluster "my-cluster" in "us-east-1"
クラスターに OIDC ID プロバイダーができたので、ロールを作成し、そのロールを引き受けるアクセス ServiceAccount 許可を Kubernetes に付与します。
OIDC ID を取得する
を設定するには ServiceAccount、まず次のコマンドURLを使用して OpenID Connect 発行者を取得します。
aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} \ --query cluster.identity.oidc.issuer --output text
コマンドはURL、次のような を返します。
https://oidc.eks.${AWS_REGION}.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
この ではURL、値 D48675832CA65BD10A532F597OIDCID が OIDC ID です。クラスターの OIDC ID は異なります。ロールを作成するには、この OIDC ID 値が必要です。
出力が None
となる場合は、クライアントのバージョンが古いことを意味します。この問題を回避するには、以下のコマンドを実行します。
aws eks describe-cluster --region ${AWS_REGION} --query cluster --name ${CLUSTER_NAME} --output text | grep OIDC
OIDC URL は次のように返されます。
OIDC https://oidc.eks.us-east-1.amazonaws.com/id/D48675832CA65BD10A532F597OIDCID
IAM ロールを作成する
-
trust.json
という名前のファイルを作成し、以下の信頼関係コードブロックを挿入します。<OIDC ID>
、<AWS account number>
、<EKS Cluster region>
、<Namespace>
のプレースホルダーはすべて、クラスターに対応する値に必ず置き換えてください。このガイドでは、<Namespace>
の値にmy-namespace
が使用されます。{ "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" } } } ] } -
以下のコマンドを実行して、
trust.json
で定義される信頼関係を持つロールを作成します。このロールにより、Amazon EKSクラスターは から認証情報を取得および更新できますIAM。aws iam create-role --region ${AWS_REGION} --role-name
<role name>
--assume-role-policy-document file://trust.json --output=text出力は次のようになります。
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/
ROLE ARN
を書き留めておき、この値をオペレーターに渡します。
AmazonSageMakerFullAccess ポリシーをロールにアタッチする
ロールに へのアクセスを許可するには SageMaker、AmazonSageMakerFullAccess
AmazonSageMakerFullAccess
をアタッチするには、以下のコマンドを実行します。
aws iam attach-role-policy --role-name
<role name>
--policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
Kubernetes ServiceAccount sagemaker-k8s-operator-default
にはAmazonSageMakerFullAccess
アクセス許可が必要です。オペレーターをインストールするときにこれを確認します。
オペレーターを名前空間にデプロイする
演算子をデプロイするときは、YAMLファイルまたは Helm チャートを使用できます。
を使用して 演算子を名前空間にデプロイする YAML
名前空間の範囲内へのオペレーターのデプロイは、2 つの部分で構成されます。1 つ目は、クラスターレベルでインストールCRDsされる のセットです。これらのリソース定義は、Kubernetes クラスターごとに 1 回だけインストールする必要があります。2 つ目の部分は、オペレーターのアクセス許可とデプロイそのものです。
クラスターCRDsに をまだインストールしていない場合は、次のコマンドYAMLを使用してCRDインストーラを適用します。
kubectl apply -f https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/crd.yaml
オペレーターをクラスターにインストールするには:
-
次のコマンドYAMLを使用して、オペレータインストーラをダウンロードします。
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/namespaced/operator.yaml
-
次のコマンドを使用して、インストーラを更新YAMLして、指定された名前空間にリソースを配置します。
sed -i -e 's/PLACEHOLDER-NAMESPACE/
<YOUR NAMESPACE>
/g' operator.yaml -
operator.yaml
ファイルを編集して、eks.amazonaws.com/role-arn
にリソースを配置します。ここで、 を、作成した OIDCベースのロールの Amazon リソースネーム (ARN) ARNに置き換えます。 -
以下のコマンドを使用してクラスターをデプロイします。
kubectl apply -f operator.yaml
Helm チャートを使用してオペレーターを名前空間にデプロイする
名前空間の範囲内へのオペレーターのデプロイには、2 つの部分が必要です。1 つ目は、クラスターレベルでインストールCRDsされる のセットです。これらのリソース定義は、Kubernetes クラスターごとに 1 回だけインストールする必要があります。2 つ目の部分は、オペレーターのアクセス許可とデプロイそのものです。Helm チャートを使用する場合は、最初に kubectl
を使用して名前空間を作成する必要があります。
-
以下のコマンドを使用して Helm インストーラディレクトリのクローンを作成します。
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
-
amazon-sagemaker-operator-for-k8s/hack/charts/installer/namespaced
フォルダに移動します。rolebased/values.yaml
ファイルを編集します。このファイルには、チャートの高レベルパラメータが含まれています。ARN ここでロールを、作成した OIDCベースのロールの Amazon リソースネーム (ARN) に置き換えます。 -
以下のコマンドを使用して、Helm チャートをインストールします。
helm install crds crd_chart/
-
必要な名前空間を作成し、以下のコマンドを使用してオペレーターをインストールします。
kubectl create namespace
<namespace>
helm install --n<namespace>
op operator_chart/ -
しばらくすると、名前
sagemaker-operator
でチャートがインストールされます。以下のコマンドを使用して、正常にインストールされたことを確認します。helm ls
出力は次のようになります。
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
名前空間へのオペレーターのデプロイを確認する
-
次のコマンドを実行すると、クラスターにデプロイされた各オペレーターの SageMaker カスタムリソース定義 (CRDs) を表示できます。
kubectl get crd | grep sagemaker
出力は次のようになります。
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
-
オペレーターポッドが正常に実行されていることを確認します。すべてのポッドを一覧表示するには、以下のコマンドを使用します。
kubectl -n my-namespace get pods
以下のように、名前空間
my-namespace
にsagemaker-k8s-operator-controller-manager-*****
という名前のポッドが表示されます。NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s
SageMaker ログkubectl
プラグインをインストールする
SageMaker Operators for Kubernetes の一部として、 のsmlogs
プラグインkubectl
。これにより、 で SageMaker CloudWatch ログをストリーミングできますkubectl
。 は にインストールkubectl
する必要がありますPATHsagemaker-k8s-bin
ディレクトリにバイナリを配置し、そのディレクトリを PATH
に追加します。
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
以下のコマンドを使用して、kubectl
プラグインが正しくインストールされていることを確認します。
kubectl smlogs
kubectl
プラグインが正しくインストールされていると、以下のような出力になります。
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.
リソースをクリーンアップする
クラスターから演算子をアンインストールするには、まずクラスターからすべての SageMakerリソースを削除する必要があります。リソースが残っていると、オペレーターの削除オペレーションがハングします。次のコマンドを実行してすべてのジョブを停止します。
# 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
次のような出力が表示されます:
$ 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
すべての SageMaker ジョブを削除したら、オペレーターを削除する「」を参照してクラスターから演算子を削除します。
オペレーターを削除する
クラスターベースのオペレーターを削除する
を使用してインストールされたオペレーター YAML
クラスターから演算子をアンインストールするには、すべての SageMaker リソースがクラスターから削除されていることを確認します。リソースが残っていると、オペレーターの削除オペレーションがハングします。
注記
クラスターを削除する前に、必ずクラスターからすべての SageMaker リソースを削除してください。詳細については、「リソースをクリーンアップする」を参照してください。
すべての SageMaker ジョブを削除したら、 kubectl
を使用してクラスターから演算子を削除します。
# Delete the operator and its resources kubectl delete -f /installer.yaml
次のような出力が表示されます:
$ 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
Helm チャートを使用してインストールしたオペレーター
演算子 を削除するにはCRDs、まず実行中のすべてのジョブを削除します。次に、以下のコマンドを使用して、オペレーターのデプロイに使用した Helm チャートを削除します。
# get the helm charts helm ls # delete the charts helm delete
<chart_name>
名前空間ベースのオペレーターを削除する
でインストールされたオペレーター YAML
クラスターから演算子をアンインストールするには、まずすべての SageMaker リソースがクラスターから削除されていることを確認します。リソースが残っていると、オペレーターの削除オペレーションがハングします。
注記
クラスターを削除する前に、必ずクラスターからすべての SageMaker リソースを削除してください。詳細については、「リソースをクリーンアップする」を参照してください。
すべての SageMaker ジョブを削除したら、 kubectl
を使用してまず名前空間から演算子を削除し、次にクラスターCRDsから を削除します。以下のコマンドを実行してクラスターからオペレーターを削除します。
# 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>
Helm チャートを使用してインストールしたオペレーター
演算子 を削除するにはCRDs、まず実行中のすべてのジョブを削除します。次に、以下のコマンドを使用して、オペレーターのデプロイに使用した Helm チャートを削除します。
# Delete the operator helm delete
<chart_name>
# delete the crds helm delete crds # optionally delete the namespace kubectl delete namespace<namespace>
トラブルシューティング
失敗したジョブをデバッグする
以下の手順を使用して、失敗したジョブをデバッグします。
-
以下を実行して、ジョブのステータスを確認します。
kubectl get
<CRD Type>
<job name>
-
ジョブが で作成された場合は SageMaker、次のコマンドを使用して
STATUS
と を表示できますSageMaker Job Name
。kubectl get
<crd type>
<job name>
-
以下のコマンドを使用すると、
smlogs
を使って問題の原因を特定できます。kubectl smlogs
<crd type>
<job name>
-
また、以下のコマンドを使用すると、
describe
コマンドを使用してジョブの詳細を取得できます。出力にはadditional
フィールドがあり、ジョブのステータスに関する詳細情報が記載されています。kubectl describe
<crd type>
<job name>
-
ジョブが で作成されていない場合は SageMaker、オペレーターのポッドのログを使用して、次のように問題の原因を見つけます。
$ 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
演算子の削除 CRD
ジョブの削除が機能しない場合は、オペレーターが実行中かどうかを確認します。オペレーターが実行中でない場合は、以下の手順を使用して、ファイナライザーを削除する必要があります。
-
新しいターミナルで、
kubectl edit
を以下のように使用してジョブをエディタで開きます。kubectl edit
<crd type>
<job name>
-
ファイルから以下の 2 行を削除してジョブを編集し、ファイナライザーを削除します。ファイルを保存すると、ジョブが削除されます。
finalizers: - sagemaker-operator-finalizer
各リージョンSMlogsの画像と
次の表に、各リージョンSMLogsで使用可能なオペレータイメージと を示します。