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