全部產品
Search
文件中心

Container Service for Kubernetes:通過ACK Serverless叢集運行Job任務

更新時間:Jun 19, 2024

ACK Serverless叢集中,您可以按需按量建立Pod。當Pod結束後停止收費,無需為Job任務預留計算資源,從而擺脫叢集計算力不足和擴容的煩擾,同時結合搶佔式執行個體可以降低Job任務的計算成本。本文主要為您介紹如何通過ACK Serverless按需建立Job任務。

前提條件

操作步驟

  1. 通過kubectl用戶端建立job.yaml檔案,並拷貝以下內容到該檔案。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi
    spec:
      template:
        spec:
          containers:
          - name: pi
            image: perl
            command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
            resources:
              requests:
                cpu: 16
                memory: 32Gi
          restartPolicy: Never
      backoffLimit: 4
  2. 執行以下命令部署一個Job任務。

    kubectl apply -f job.yaml
  3. 執行以下命令,查看Pod的運行狀態。

    查看Pod的狀態。

    kubectl get pod

    預期輸出:

    NAME       READY   STATUS      RESTARTS   AGE
    pi-4f7w5   0/1     Completed   0          80s

    查看Pod的具體運行狀態。

    kubectl describe pod

    預期輸出:

    Name:               pi-4f7w5
    Namespace:          default
    Priority:           0
    PriorityClassName:  <none>
    Node:               virtual-kubelet-cn-hongkong-b/10.10.66.169
    ...
    Events:
      Type    Reason                 Age   From          Message
      ----    ------                 ----  ----          -------
      Normal  SuccessfulMountVolume  114s  kubelet, eci  MountVolume.SetUp succeeded for volume "default-token-8k4jz"
      Normal  Pulling                113s  kubelet, eci  pulling image "perl"
      Normal  Pulled                 64s   kubelet, eci  Successfully pulled image "perl"
      Normal  Created                64s   kubelet, eci  Created container
      Normal  Started                64s   kubelet, eci  Started container
  4. 可選:通過給Pod加上搶佔式執行個體的Annotation,使用搶佔式執行個體。

    關於搶佔式執行個體Annotation的用法,請參見使用搶佔式執行個體

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi
    spec:
      template:
        metadata:
          annotations:
            k8s.aliyun.com/eci-spot-strategy: SpotAsPriceGo
        spec:
          containers:
          - name: pi
            image: perl
            command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
            resources:
              requests:
                cpu: 16
                memory: 32Gi
          restartPolicy: Never
      backoffLimit: 4