it-swarm-ja.com

Kubernetesジョブは別のポッドに移動されます

長時間実行されているジョブ(45h)が別のポッドに移動され、再起動されます。

ログから、ジョブがSIGTERMを受信し、別のポッドで、おそらく別のノードでも再起動されたことがわかります。

グーグルクラウドで取得された情報は役に立ちません。ページYamlまたはeventsは、ポッドの作成を除いて、このイベントについて説明していません。

仕事YamlcreationTimestamp: 2019-06-15T10:39:25Z

ポッドYamlcreationTimestamp: 2019-06-17T13:26:25Z

私は主にデフォルト構成を使用します1.12.6-gke.11いくつかのノードがあり、サーバーはプリエンプティブではありません。

K8sのデフォルトの動作ですか?そうである場合、どうすれば無効にできますか?

1

クラスターの自動スケーリングを使用しているとおっしゃっていたので、クラスターがスケールインされているためにポッドが削除されていると想定します。0-を使用してビデオトランスコーディングジョブを実行しているため、同様の問題が発生しました。スケーリングされたノードプール(ジョブが追加されるとスケールアウトされます)。

調べてみると、オートスケーラーに関する オートスケーラーのドキュメント が見つかり、それに応じてジョブを変更しました。

CAがノードを削除するのを防ぐことができるポッドのタイプは何ですか?

  • PodDisruptionBudgetが制限されているポッド。

  • Kube-システムポッド:

    • デフォルトではノードで実行されません。*
    • ポッドの中断の予算が設定されていないか、PDBが制限されすぎています(CA 0.6以降)。

コントローラオブジェクトによってサポートされていないポッド(したがって、展開、レプリカセット、ジョブ、ステートフルセットなどによって作成されていない)。 *

ローカルストレージを備えたポッド。 *

さまざまな制約(リソースの不足、ノードセレクターまたはアフィニティーの不一致、非アフィニティーの一致など)のために他の場所に移動できないポッド

次の注釈が設定されているポッド:"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"

それは私たちのためにトリックをした最後のものでした。これを出発点として使用することをお勧めします。

0
John