問題タブ [readinessprobe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
121 参照

spring-boot - データベースとコンテナーでの pod readinessprobe の問題

kubernetes にデプロイされたアプリケーションがあります。これがtechstackです: Java 11、Spring Boot 2.3.xまたは2.5.x、hikari 3.xまたは4.xを使用

スプリング アクチュエータを使用してヘルスチェックを行います。application.yaml 内livenessの構成は次のとおりです。readiness

DBがダウンした場合の動作 -

  1. 影響を受けないようlivenessにします。つまり、DB が停止しても、アプリケーション コンテナーは実行し続ける必要があります。
  2. readinesssトラフィックがコンテナーにヒットしないようにします。

livenessおよびreadinessコンテナ仕様の構成:

アプリケーションが開始され、数時間正常に実行されます。

私がしたこと:

DBをダウンさせました。

指摘された問題:

DB がダウンしている場合、90 秒以上経過すると、さらに 3 つのポッドがスピンアップします。ポッドが記述されると、次のようなステータスと状態が表示されます。

実行中のすべてのポッドを一覧表示すると:

私の類推/発見:

構成ごとReadinessProbe:periodSecondsは 30 秒に設定され、failurethresholdk8s ドキュメントごとにデフォルトで 3 に設定されています。

application.yaml ごとreadinessに db チェックが含まれています。これは、30 秒ごとにreadinessチェックが失敗したことを意味します。3回失敗すると、failurethreshold満たされ、新しいポッドがスピンアップします。

再起動ポリシーは、デフォルトで Always に設定されています。

質問:

  1. なぜ新しいポッドを回転させたのですか?
  2. 1 つ、2 つ、4 つ、または任意の数ではなく、具体的に 3 つのポッドのみを回転させたのはなぜですか?
  3. これは何か関係がありrestartpolicyますか?
0 投票する
1 に答える
37 参照

kubernetes - readinessProbes でコマンドまたは引数を使用する必要がある場合

CKAD の killer.sh. を調べています。readiness プローブの下にコマンド フィールドがある Pod 定義ファイルが見つかりました。コンテナーは別のコマンドを実行しますが、args を使用します。

readiness プローブが使用されず、この Pod が暗黙的に作成された場合、args は使用されません。

kubectl run pod6 --image=busybox:1.31.0 --dry-run=client --command -- sh -c "touch /tmp/ready && sleep 1d" > 6.yaml

出力 YAML は次のようになります。

readinessProbe とコンテナーの両方でコマンドが使用されないのはなぜですか? コマンドはいつ引数になりますか? 伝える方法はありますか?

私はこのドキュメントを読みました: https://kubernetes.io/docs/tasks/inject-data-application/_print/ しかし、この状況といつ引数に切り替えるかを理解することはまだあまりうまくいきませんでした。