Kubernetesが提供するactiveDeadlineSeconds
両方のフィールドをJobSpec
し、PodSpec
2つの違いは何ですか?activeDeadlineSeconds
20に設定して小さなジョブをまとめ、ポッドの定義で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']
参照:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加