本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Kubernetes 的舊 SageMaker 運算子
本節以 SageMaker Kubernetes 的 Operators
重要
我們正在停止 Kubernetes 的 SageMaker Operators
如果您目前正在使用 版本 v1.2.2
或以下的 SageMaker Operators for Kubernetes
如需與移轉步驟相關的資訊,請參閱將資源遷移到最新的運算子。
如需 Kubernetes 原始版本 SageMaker Operators 支援結束時常見問題的解答,請參閱 宣佈 Kubernetes 運算子原始版本 SageMaker支援結束
目錄
為 Kubernetes 安裝 SageMaker 運算子
使用下列步驟安裝和使用 SageMaker Operators for Kubernetes,以使用 Amazon 訓練、調校和部署機器學習模型 SageMaker。
IAM 角色型設定和運算子部署
以下各節說明設定和部署原始版本運算子的步驟。
警告
提醒:下列步驟不會安裝最新版本的 SageMaker Operators for Kubernetes。若要為 Kubernetes 安裝新的 ACK型 SageMaker 運算子,請參閱 Kubernetes 的最新 SageMaker 運算子。
必要條件
本指南假設已完成下列先決條件:
-
在用來存取 Kubernetes 叢集的用戶端電腦上安裝下列工具:
-
具有建立角色和將政策連接至角色的IAM許可。
-
已建立要在其上執行運算子的 Kubernetes 叢集。應該是 Kubernetes 版本 1.13 或 1.14。對於使用
eksctl
自動建立的叢集,請參閱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身分提供者,您可以建立角色,並授予 Kubernetes 擔任角色的 ServiceAccount 許可。
取得 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,值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>
預留位置。{ "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 Chart。
使用 部署運算子 YAML
這是部署運算子的最簡單方法。程序如下:
-
使用以下命令下載安裝程式指令碼:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/release/rolebased/installer.yaml
-
編輯
installer.yaml
檔案以取代eks.amazonaws.com/role-arn
。將ARN此處的 取代為您建立的 OIDC型角色的 Amazon Resource Name (ARN)。 -
使用下列命令部署叢集:
kubectl apply -f installer.yaml
使用 Helm Chart 部署運算子
使用提供的 Helm Chart 安裝運算子。
-
使用以下命令複製 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 Resource Name (ARN)。 -
使用以下命令安裝 Helm Chart:
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
-
確定運算子 pod 已成功執行。使用下列命令列出所有 pod:
kubectl -n sagemaker-k8s-operator-system get pods
您應該會看到命名空間
sagemaker-k8s-operator-system
中名為sagemaker-k8s-operator-controller-manager-*****
的 pod,如下所示:NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s
命名空間範圍部署
您可以選擇在個別 Kubernetes 命名空間的範圍內安裝操作員。在此模式中, SageMaker 如果資源是在該命名空間內建立,控制器只會監控和調節資源。這樣可以更好地控制由哪個控制器管理哪些資源。這對於部署到多個 AWS 帳戶或控制哪些使用者有權存取特定任務非常有用。
本指南概述如何將運算子安裝到預先定義的特定命名空間。若要將控制器部署到第二個命名空間,請從頭到尾遵循指南進行操作,並在每個步驟中變更命名空間。
為您的 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身分提供者,請建立角色並授予 Kubernetes 擔任角色的 ServiceAccount 許可。
取得您的 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>
預留位置。在本指南中,使用my-namespace
作為<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 Chart。
使用 將運算子部署到您的命名空間 YAML
在命名空間範圍內部署運算子分為兩個部分。第一個是在叢集層級安裝CRDs的 集合。每個 Kubernetes 叢集只需安裝一次這些資源定義。第二部分是運算子許可和部署本身。
如果您尚未在叢集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
。將ARN此處的 取代為您建立的 OIDC型角色的 Amazon Resource Name (ARN)。 -
使用下列命令部署叢集:
kubectl apply -f operator.yaml
使用 Helm Chart 將運算子部署到命名空間
在命名空間範圍內部署運算子需要分為兩個部分。第一個是在叢集層級安裝CRDs的 集合。每個 Kubernetes 叢集只需安裝一次這些資源定義。第二部分是運算子許可和部署本身。使用 Helm Chart 時,您必須首先使用 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 Resource Name (ARN)。 -
使用以下命令安裝 Helm Chart:
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
-
確定運算子 pod 已成功執行。使用下列命令列出所有 pod:
kubectl -n my-namespace get pods
您應該會看到命名空間
my-namespace
中名為sagemaker-k8s-operator-controller-manager-*****
的 pod,如下所示:NAME READY STATUS RESTARTS AGE sagemaker-k8s-operator-controller-manager-12345678-r8abc 2/2 Running 0 23s
安裝 SageMaker 日誌kubectl
外掛程式
作為 Kubernetes 的 SageMaker Operators 的一部分,您可以使用 的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 Chart 安裝的運算子
若要刪除運算子 CRDs,請先刪除所有執行中的任務。然後使用以下命令刪除用於部署運算子的 Helm Chart:
# 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 Chart 安裝的運算子
若要刪除運算子 CRDs,請先刪除所有執行中的任務。然後使用以下命令刪除用於部署運算子的 Helm Chart:
# 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,請使用運算子 Pod 的日誌來尋找問題的原因,如下所示:
$ 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>
-
透過從檔案中移除以下兩行來編輯工作,以刪除終結器。儲存檔案,該作業將被刪除。
finalizers: - sagemaker-operator-finalizer
SMlogs 每個區域中的影像和
下表列出SMLogs每個區域中可用的運算子映像和 。
區域 | 控制器映像 | 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 |