すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ACKサーバーレスクラスタを使用したジョブの実行

最終更新日:Dec 16, 2024

ACK Serverlessクラスターでは、ビジネス要件を満たすポッドを作成できます。 ポッドのライフサイクルが終了すると、システムはポッドへの課金を停止します。 ジョブを処理するためにコンピューティングリソースを予約する必要はありません。 これにより、不十分なコンピューティングリソースの問題が解決され、クラスターを拡張する必要がなくなります。 さらに、プリエンプティブルインスタンスを使用することで、コンピューティングコストを削減できます。 このトピックでは、ACK Serverlessを使用してビジネス要件を満たすジョブを作成する方法について説明します。

前提条件

手順

  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. 次のコマンドを実行してジョブをデプロイします。

    kubectl apply -f job.yaml
  3. 次のコマンドを実行して、ポッドの状態を確認します。

    次のコマンドを実行して、ポッドの状態を確認します。

    kubectl get pod

    期待される出力:

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

    次のコマンドを実行して、ポッドの状態に関する詳細情報を表示します。

    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. オプション: プリエンプティブルインスタンスを使用するには、プリエンプティブルインスタンスの注釈をポッドに追加します。

    プリエンプティブルインスタンスにアノテーションを追加する方法の詳細については、「プリエンプティブルインスタンスの使用」をご参照ください。

    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