通过ACK One主控实例,您可以像在单集群上一样,使用相同的方式创建任务Job。创建完成后,由主控实例根据任务Job需要的资源和子集群的剩余资源,执行动态调度策略,选择适合的子集群下发任务Job,任务Job在子集群上运行,并返回状态到主控实例。本文介绍如何在主控实例中创建任务。

前提条件

  • 开发用户从ACK One控制台获取主控实例的kubeconfig,通过Kubectl连接至主控实例。
  • 主控实例管理员(实例创建者)已配置命名空间和配额。具体操作,请参见管理命名空间与配额
  • 安装AMC命令行工具。具体操作,请参见AMC命令行帮助

操作步骤

  1. 开发用户使用以下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
  2. 执行以下命令,在主控集群上获取任务的调度结果。
    如果调度失败,则显示为空,请检查是否正确配置命名空间与配额,请参见管理命名空间与配额。如果命名空间配置配额或者配额用完,作业将暂停调度。
    kubectl get job pi -n demo -o jsonpath='{.metadata.annotations.scheduling\.x-k8s\.io/placement}'
  3. 执行以下命令,在主控实例上获取任务的运行状态。
    kubectl get job pi -n demo
    预期输出:
    NAME   COMPLETIONS   DURATION   AGE
    pi     2/1 of 2      28s        6m20s
  4. 执行以下命令获取任务相关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
  5. 执行以下命令获取Pod的运行日志。您需要安装主控实例AMC命令行。
    kubectl amc logs pi1-h6z98  -j job/pi -n demo
    预期输出:
    Run on ManagedCluster managedcluster-c1xxxe5
    3.1415926...