通过ACK One主控实例,您可以像在单集群上一样,使用相同的方式创建任务Job。创建完成后,由主控实例根据任务Job需要的资源和子集群的剩余资源,执行动态调度策略,选择适合的子集群下发任务Job,任务Job在子集群上运行,并返回状态到主控实例。本文介绍如何在主控实例中创建任务。
操作步骤
- 开发用户使用以下YAML文件,在主控实例上创建任务。
示例的命名空间为
demo
,示例任务名
pi
。
apiVersion: batch/v1
kind: Job
metadata:
name: pi
namespace: demo
spec:
parallelism: 2
template:
spec:
containers:
- name: pi1
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
restartPolicy: Never
backoffLimit: 4
- 执行以下命令,在主控集群上获取任务的调度结果。
如果调度失败,则显示为空,请检查是否正确配置命名空间与配额,请参见
管理命名空间与配额。如果命名空间配置配额或者配额用完,作业将暂停调度。
kubectl get job pi -n demo -o jsonpath='{.metadata.annotations.scheduling\.x-k8s\.io/placement}'
- 执行以下命令,在主控实例上获取任务的运行状态。
kubectl get job pi -n demo
预期输出:
NAME COMPLETIONS DURATION AGE
pi 2/1 of 2 28s 6m20s
- 执行以下命令获取任务相关Pod的运行状态。您需要安装主控实例AMC命令行。
kubectl amc get pod -j job/pi -n demo
预期输出:
Run on ManagedCluster managedcluster-c1xxxe5
NAME READY STATUS RESTARTS AGE
pi-h6z98 0/1 Completed 0 11d
pi-xfg6r 0/1 Completed 0 11d
- 执行以下命令获取Pod的运行日志。您需要安装主控实例AMC命令行。
kubectl amc logs pi1-h6z98 -j job/pi -n demo
预期输出:
Run on ManagedCluster managedcluster-c1xxxe5
3.1415926...