Kubernetes で livenessProbe、ReadinessProbe、StartupProbe を構成する

Kubernetes で livenessProbe、ReadinessProbe、StartupProbe を構成する

livenessProbe、readinessProbe、startupProbe の役割

kubelet は livenessProbe を使用して、コンテナを再起動するタイミングを決定します。たとえば、プログラムでデッドロックが発生した場合、プログラムは引き続き実行されており、livenessProbe を使用して、プログラムが正常にサービスを提供できなくなったことを検出できます。この場合、コンテナを再起動すると、プログラムを使用可能な状態に復元できます (ただし、プログラムにはデッドロックを引き起こす可能性のあるバグがあります)。 livenessProbeが設定されていない場合、デフォルトのステータスは Success になります。

kubelet は、readinessProbe を使用して、コンテナがトラフィックを受け入れる準備が整ったかどうかを判断します。ポッド内のすべてのコンテナの準備が完了すると、ポッドは準備完了とみなされます。最も重要な用途は、どのポッドがサービスのバックエンドとして使用されるかを制御することです。 Pod の準備ができていない場合、ロードバランサーから削除されます。 readinessProbeが構成されていない場合、デフォルトのステータスは Success です。

Kubernetes では、バージョン 1.17 以降、startupPローブ (スタートアップ プローブ)が追加されました。 Kubelet は、startupProbe を使用して、コンテナ アプリケーションの起動タイミングを決定します。 startupProbe が設定されている場合、livenessProbe と readinessProbe は起動が成功した後にのみ実行されます。これにより、起動時にアプリケーションが livenessProbe および readinessProbe の影響を受けるのを防ぐことができます。 startupProbe が設定されていない場合、デフォルトのステータスは成功です。

k8s の 4 つのヘルスチェック方法

livenessProbe、readinessProbe、 startupProbeはすべてヘルスチェックと呼ぶことができます。これらのヘルス チェック タイプは、exec コマンド、httpGet、tcpSocket、grpc の 4 つのチェック メソッドをサポートしています。その中で、exec コマンドライン方式は最も汎用性が高く、ほとんどのシナリオに適しています。 tcpSocket メソッドは TCP タイプのサービスに適しており、httpGet メソッドは http タイプのサービスに適しており、grpc メソッドは grpc タイプのサービスに適しています。

  • exec: カスタム ヘルス チェック メソッドをコマンド ライン (CLI) ツールにカプセル化し、exec を使用して実行できます。テスト結果が正常であれば、コマンド ラインは 0 の値を返し、そうでない場合は 0 以外の値を返します。
  • httpGet: コンテナの IP アドレス、ポート、およびサービスによって提供される http インターフェイス パスを介して HTTP Get 要求を開始します。応答ステータス コードが 200 以上 400 未満の場合、サービスは正常であると見なされます。
  • tcpSocket: コンテナの IP アドレスとポートを介して TCP 要求を開始します。接続を確立できる場合、サービスは正常であるとみなされます。
  • grpc:コンテナの IP アドレスとポートを介して grpc 要求を開始します (サービスが grpc ヘルス チェック プロトコルを実装している場合)。返されたサービス正常性の結果が正常である場合、サービスは正常であると見なされます。

プローブを構成するための一般的なオプション パラメーターは次のとおりです。

パラメータ名

デフォルト値

最小

説明する

初期遅延秒数

0秒

0秒

コンテナの起動後、最初のプローブを開始するまでの時間。

期間秒

10秒

1秒

検出頻度が高すぎるため、ポッドに大きな追加オーバーヘッドが発生します。頻度が低すぎると、コンテナの実際の状況をタイムリーに反映できなくなります。

タイムアウト秒

1秒

1秒

検出タイムアウト期間。

失敗しきい値

3

1

成功状態の場合、プローブが連続して数回失敗すると、失敗したとみなされます。

成功しきい値

1

1

失敗状態の場合、連続して数回成功すると検出は成功したとみなされます。

設定例

livenessProbe、readinessProbe、 startupProbe の設定方法は基本的に同様です。以下では、livenessProbe の設定を例に説明します。

実行メソッド

 APIバージョン: v1
種類:ポッド
メタデータ:
ラベル:
テスト:活性
名前:ライブネス- exec
仕様:
コンテナ:
-名前:ライブネス
画像:レジストリk8sio /ビジーボックス
引数:
- / bin / sh
- -
-タッチ/ tmp /健康;睡眠30 ; rm - f / tmp /正常;睡眠600
ライブネスプローブ:
実行:
指示
-
- / tmp /健康
初期遅延秒数: 5
期間秒数: 5

httpGet メソッド

 APIバージョン: v1
種類:ポッド
メタデータ:
ラベル:
テスト:活性
名前:ライブネス- http
仕様:
コンテナ:
-名前:ライブネス
画像:レジストリk8sio /ライブネス
引数:
- /サーバー
ライブネスプローブ:
httpGet : 取得:
パス: / healthz
ポート: 8080
httpヘッダー:
-名前:カスタム-ヘッダー
価値素晴らしい
初期遅延秒数: 3
期間秒数: 3

tcpSocket メソッド

 APIバージョン: v1
種類:ポッド
メタデータ:
名前: goproxy
ラベル:
アプリ: goproxy
仕様:
コンテナ:
-名前: goproxy
画像:レジストリk8sio /ゴープロキシ: 0.1
ポート:
-コンテナポート: 8080
準備状況プローブ:
tcpソケット:
ポート: 8080
初期遅延秒数: 5
期間秒数: 10
ライブネスプローブ:
tcpソケット:
ポート: 8080
初期遅延秒数: 15
期間秒数: 20

grpc の方法

 APIバージョン: v1
種類:ポッド
メタデータ:
名前: etcd - with - grpc
仕様:
コンテナ:
-名前: etcd
画像:レジストリk8sio / etcd : 3.5.1-0
コマンド: [ "/usr/local/bin/etcd""--data-dir""/var/lib/etcd""--listen-client-urls""http://0.0.0.0:2379""--advertise-client-urls""http://127.0.0.1:2379""--log-level""debug" ]
ポート:
-コンテナポート: 2379
ライブネスプローブ:
グループ:
ポート: 2379
初期遅延秒数: 10

ヘルスチェックの設定の詳細については、Kubernetes の公式ドキュメントを参照してください。
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/。

<<:  企業におけるクラウドコンピューティングの利点と課題

>>:  Cloud Native Sqoop on k8s の解説と実践的な操作

推薦する

imidc: 「双方向」南アフリカ cn2 vps の簡単なレビュー。十分ではないと思われる場合は、専用サーバーを使用することもできます。

現在、欧米のCN2ネットワークは圧迫されており、帯域幅のコストも急騰しています。アジアのCN2の価格...

ケーススタディ: テンセントの再設計は美しい始まり

情報環境の変化により、テンセントはポータル、ブログ、ビデオ、モバイルを接続する設計を改訂し、自社の高...

TIC 2018: クラウド サービスが人工知能の急速な発展を支援

[原文は51CTO.comより] 中国の大手中立クラウドサービスプロバイダーUCloudが主催するT...

中国のバレンタインデーに百度からウェブマスターへの朗報

バレンタインデーはカップルの休日とも言えますが、多くのSEO実践者にとっては楽な休日ではないかもしれ...

Kubernetes は自身の複雑さに圧倒されてしまうのでしょうか?

Kubernetes はアプリケーション開発者にとって複雑すぎるのでしょうか?数週間前、私は Kub...

新しいサイトに最初から高い権威を持たせる方法

どのウェブサイトも最初は新しいウェブサイトとして始まります。ウェブサイト構築の最初からウェブサイトの...

time4vps: 75% オフ、リトアニア VPS、年間 16 ユーロから、2GB RAM/1 コア/20GB ハード ドライブ/4TB 帯域幅

time4vps は、2003 年に設立されたリトアニアの会社で、非常に古いブランドです。現在、ti...

デルテクノロジーズ「天山七剣士」がコンテナ永続ストレージの課題に取り組む

現在、「クラウドネイティブ」という概念が世界を席巻しています。特にデジタル経済の急速な発展と拡大に伴...

他人の最適化のアイデアを模倣することは成功しますか?

SEO 分野で働く人なら、Zac と彼のブログを知らない人はいないと思います。彼のブログのタイトルに...

インターネット編集長ペル氏:電子メールは依然としてキラーアプリ

インターネット評論家のデイブ・ペル氏(写真提供:テンセント・テクノロジー)テンセントテクノロジーニュ...

VPS 初心者向けチュートリアル: Linux VPS の SFTP、「FTP」

この記事では、Linux システム上で SFTP を使用してファイルを転送する方法について説明します...

WordPress robots.txt ファイルについて知っておくべきこと

WordPress サイトをインストールした後、多くのウェブマスターは robots.txt ファイ...

Vpspride-256m メモリ/15g ハードディスク/G ポート/年間 15 ドル

vpspride ドメイン名は に登録され、管理されていない VPS と管理された VPS およびサ...

extravm-$8.1/シンガポール VPS/KVM/1g RAM/15g SSD/DDoS 保護 100Gbps

extravm は 2009 年にダラスで設立され、仮想ホスティング、VPS (通常の VPS、ゲー...