通過ACK One Fleet實例,您可以使用和單集群相同的方式創建TensorFlow任務。由Fleet實例根據TensorFlow任務需要的資源和關聯集群的剩余資源,執行動態調度策略,選擇適合的關聯集群下發TensorFlow任務。本文介紹如何創建TensorFlow任務并查看任務狀態。
前提條件
Fleet實例默認已安裝Training Operator的TensorFlow CRD,支持的TensorFlow CRD APIVersion為kubeflow.org/v1。
Fleet實例管理員可以通過以下命令查看CRD。
kubectl get crd tfjobs.kubeflow.org
如有定制需求,Fleet實例管理員可以修改kubeflow.org_tfjobs.yaml,通過以下命令修改CRD。
kubectl apply -f manifests/base/crds/kubeflow.org_tfjobs.yaml
Fleet實例管理員已下載Training Operator,并在所有關聯集群上完成安裝。
已從ACK One控制臺獲取Fleet實例的KubeConfig,并通過kubectl連接至Fleet實例。
已安裝AMC命令行工具。具體操作,請參見AMC命令行幫助。
操作步驟
開發者用戶使用以下YAML文件,在Fleet實例上創建任務。
示例的命名空間為
demo
,示例的任務名稱為pi
。apiVersion: "kubeflow.org/v1" kind: "TFJob" metadata: name: "dist-mnist-for-e2e-test" namespace: demo spec: tfReplicaSpecs: PS: replicas: 2 restartPolicy: Never template: spec: containers: - name: tensorflow image: acr-multiple-clusters-registry.cn-hangzhou.cr.aliyuncs.com/ack-multiple-clusters/tf-dist-mnist-test:v1.0 resources: requests: memory: "2Gi" cpu: "2" limits: memory: "2Gi" cpu: "2" Worker: replicas: 2 restartPolicy: Never template: spec: containers: - name: tensorflow image: acr-multiple-clusters-registry.cn-hangzhou.cr.aliyuncs.com/ack-multiple-clusters/tf-dist-mnist-test:v1.0 resources: requests: memory: "2Gi" cpu: "2" limits: memory: "2Gi" cpu: "2"
執行以下命令,在Fleet實例上獲取任務的調度結果。
如果調度失敗,則顯示為空。請檢查是否正確配置命名空間與配額。如果命名空間配置配額或者配額用完,任務將暫停調度。
kubectl get tfjob dist-mnist-for-e2e-test -n demo -o jsonpath='{.metadata.annotations.scheduling\.x-k8s\.io/placement}'
查看TensorFlow任務的狀態。
執行以下命令,在Fleet實例上獲取任務的運行狀態。
kubectl get tfjob dist-mnist-for-e2e-test -n demo
預期輸出:
NAME STATE AGE dist-mnist-for-e2e-test Running ***
執行以下命令獲取任務相關Pod的運行狀態。
kubectl amc get pod -j tfjob/dist-mnist-for-e2e-test -n demo
預期輸出:
Run on ManagedCluster managedcluster-c1***e5 NAME READY STATUS RESTARTS AGE dist-mnist-for-e2e-test-ps-0 1/1 Running 0 *** dist-mnist-for-e2e-test-ps-1 1/1 Running 0 *** dist-mnist-for-e2e-test-worker-0 1/1 Running 0 *** dist-mnist-for-e2e-test-worker-1 1/1 Running 0 ***
執行以下命令獲取Pod的運行日志。
kubectl amc logs dist-mnist-for-e2e-test-worker-0 -j tfjob/dist-mnist-for-e2e-test -n demo
預期輸出:
Run on ManagedCluster managedcluster-c1***e5 ... Training ends @ *** Training elapsed time: *** s ...
文檔內容是否對您有幫助?