JobとPodのactiveDeadlineSecondsのKubernetesの違い

sg

Kubernetesが提供するactiveDeadlineSeconds両方のフィールドをJobSpecし、PodSpec

2つの違いは何ですか?activeDeadlineSeconds20に設定して小さなジョブをまとめ、ポッドの定義でactiveDeadlineSecondsフィールドを45に設定しました。これらは任意ですが、間隔を空けることを目的としています。ジョブを作成/適用してから実行するkubectl get pods -a --watchと、20の期限は効果がないことがわかりますが、2番目の期限は効果があります(DeadlineExceeded出力が表示されます)。

念のためterminationGracePeriodSeconds: 10、PodSpecに追加して、同じことを確認しました。

activeDeadlineSeconds仕事の目的は何ですか?コンテナに信号を送信していないようです。

注:私は単に画像に対してsleepコマンドを実行していubuntuます。このコマンドは、Kubernetesから送信されたTERMシグナルを受信すると終了する必要があります(したがって、20秒でTERMシグナルが発生し、その後すぐにポッドが停止することが予想されます)

凝縮されたYAML定義:

apiVersion: batch/v2alpha1  # K8s 1.7.x
kind: CronJob
spec:
  schedule: "*/1 * * * *"
  concurrencyPolicy: Allow
  jobTemplate:
    spec:  # JobSpec
      activeDeadlineSeconds: 20   # This needs to be shorter than the cron interval  ## TODO - NOT WORKING!
      parallelism: 1
      template:  # PodTemplateSpec
        spec:
          activeDeadlineSeconds: 45
          terminationGracePeriodSeconds: 10
          containers:
          - name: ubuntu-container
            image: ubuntu
            command: ['bash', '-c', 'sleep 500000']

参照:

Vitalii

将来のコミュニティウィキの答え:

@Clorichelによると、この問題はk8s v1.8https //github.com/kubernetes/kubernetes/issues/32149で修正されました

最新の機能やバグ修正にアクセスできる場合は、クラスターを最新バージョンにアップグレードすることをお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事