SpringBoot-2.3のコンテナープローブをマスターする:基本

「SpringBoot-2.3 Containerization Technology」シリーズについて

  • 「SpringBoot-2.3 Containerization Technology」シリーズは、バージョン2.3によってもたらされた最新のコンテナー化テクノロジーをすべての人と一緒に学び、実践することを目的としています。これにより、Javaアプリケーションをコンテナー化された環境により適応させ、クラウドコンピューティング時代の主流に追いつき、競争力を維持できます。 ;
  • 一連の記事全体は、トピックと補助の2つの部分に分かれています。トピックの部分は次のとおりです。
  1. "SpringBoot(2.3)アプリケーションを作成してDockerイメージを作成する(公式ソリューション)" ;
  2. "Dockerイメージを作成するSpringBoot(2.3)アプリケーションの詳細な説明(公式ソリューション)" ;
  3. "SpringBoot-2.3コンテナプローブの習得:基本" ;
  4. "SpringBoot-2.3コンテナプローブの習得:詳細な章" ;
  5. "SpringBoot-2.3のコンテナプローブをマスターする:実際の戦闘" ;
  • 補足部分は、次のような参考資料とメモの要約です。
  1. "SpringBoot-2.3ミラーリングソリューションに複数のレイヤーがある理由" ;
  2. "非ルートアカウントを設定して、sudoなしでdockerコマンドを直接実行します" ;
  3. "開発段階、SpringBootアプリケーションのK8Sへの迅速な展開" ;

SpringBoot Container Probe Seriesの紹介記事

SpringBoot2.3は、アプリケーションをコンテナ化された環境により適応させるために、新しいプローブテクノロジーをリリースします。「Container Probe Mastering SpringBoot-2.3」シリーズは、これらの新しいテクノロジーを3つの段階に分けて学び、実践することを目的としています。

  1. 基本記事:この記事は、コンテナープローブの関連するナレッジポイントを整理して学習するためのものです。
  2. 詳細な記事:プローブ関連の知識ポイントの詳細な調査を続けます。
  3. 実用的な記事:kubernetes環境にspringbootアプリケーションをデプロイし、最新のプローブテクノロジーを使用します。

プローブ特性に関する公式情報

  • 以下の図の赤いボックスに示すように、バージョン2.3のコンテナープローブ機能はプレビューバージョン(v2.3.0.M4)からリリースされています。
    ここに画像の説明を挿入
  • v2.3.0.RELEASEがリリースされたので、この機能を安心して学習して使用できます。最初に、基本的な知識ポイントをリストして、準備が適切であることを確認します。

知識ポイント

以下は、この記事の主な内容でもある、プローブ技術を習得するために必要な基本的な知識です。

  1. kubernetesの生存プローブlivenessProbe ;
  2. kubernetesのreadinessProbe ;
  3. SpringBoot的アクチュエータ ;

次に、1つずつ学習します。この知識の蓄積により、公式情報をよりよく読み、ビジネスシナリオに適したプローブを開発できます。

kubernetesの生存調査livenessProbe

  1. kubernetesのプローブには多くのコンテンツが含まれます。ここでは、SpringBootに関連する部分のみが説明されています。
  2. kubeletはlivenessプローブlivenessProbe使用して、コンテナーをいつ再起動するかを認識します。
  3. 以下の図は、kubernetes公式Webサイトでの生存調査の例です。いくつかの主要なパラメーターについて詳しく説明しています。
    ここに画像の説明を挿入
  4. SpringBootアプリケーションがkubernetes環境にリリースされた場合、アプリケーションがまだ正常である限り、livenessProbeに対応するアドレスは200-400の戻りコードで応答できる必要があります。

kubernetesの準備状況プローブ

  1. 場合によっては、アプリケーションが一時的に通信サービスを提供できないことがあります。たとえば、アプリケーションは、起動時に大きなデータまたは構成ファイルをロードする必要がある場合や、起動後に外部サービスを待機することに依存している場合があります。この場合、アプリケーションを強制終了したり、アプリケーションにリクエストを送信したりする必要はありません。Kubernetesは、これらの状況を検出して軽減するための準備検出器を提供します。コンテナーが配置されているポッドは、まだ準備ができていない情報を報告し、Kubernetesサービスを介したトラフィックを受け入れません。
  2. レディプローブの設定は、サバイバルプローブの設定に似ています。唯一の違いは、livenessProbeフィールドの代わりにreadinessProbeフィールドが使用されることです。
  3. 簡単に言うと、k8sは、通常の準備が整ったプローブを備えたコンテナーを外部の世界にサービスを提供するものと見なし、対応する要求もコンテナーにスケジュールされます。

SpringBootのアクチュエータ

  1. 簡単に言うと、アクチュエータはユーザーがSprinBootアプリケーションを監視および操作するのに使用されます。これらの監視と操作は、次の図に示すように、httpリクエストを通じて実行できます。http:// localhost:8080 / actuator / healthアドレスは、アプリケーションのヘルスステータスを返します:
    ここに画像の説明を挿入
  2. 一般的に使用されるアクチュエータのアドレスは次のとおりです。別のアドレスにアクセスすると、別の情報を取得できます。
    ここに画像の説明を挿入
  3. SpringBoot-2.3バージョンでは、アクチュエーターに/ actuator / health / liveness/ actuator / health / readinessという 2つの新しいアドレスがあり、前者はkubernetes 生存プローブとして使用され、後者はkubernetesの準備プローブとして使用されます。

ナレーション:これは、SpringBootのプローブテクノロジーについての唯一のことですか?

  1. この記事を読むと、つまらないかもしれません。いわゆるコンテナプローブ機能はとてもシンプルです。2つの新しいアクチュエータアドレスが、kubernetesの生存プローブと準備完了プローブ用に予約されています。これら2つのアドレスが正常に応答する限り、kubernetesがコンテナを決定します。正常;
  2. ほとんどの場合、上記の結論に問題はありませんが、SpringBootが推奨する構成は次のとおりです。
    ここに画像の説明を挿入
  3. 落ち着いて慎重に考えてください。3つの問題は未解決のようです。
  • まず最初に、SpringBootはkubernetesに2つのアクチュエーター項目を提供しますが、kubernetesにデプロイされていないSringBootアプリケーションはどうですか?これらの2つのサービスアドレスが必要ない場合は、公開する必要がありますか?

  • 次に、準備完了プローブが200の戻りコードを返し始めたのはいつですか?アプリケーションの起動フェーズでは、ビジネスサービスが正常に動作するまでに時間がかかる場合があります。readyプローブが200を前もって返した場合、k8sはコンテナが正常に動作すると見なします。このとき、外部リクエストのディスパッチは正常に応答しないので、準備ができていることを確認してくださいプローブの状態変更ロジックは非常に重要です。

  • 最後に、そして最も重要なポイント:外部依存関係サービスの例外、ローカルグローバル例外などの一部のシナリオでは、ビジネスは外部にサービスを提供することを望んでいません。問題が解決されると、ビジネスは外部にサービスを提供できます。コードコントロールレディプローブのリターンコードを記述して、kubernetesがこのリクエストをこのコンテナにディスパッチするかどうかを制御しますこれは非常に実用的な機能です。

まだ深く行く必要があります

上記の3つの質問に直面して、あなたは感情的に感じますか?一見シンプルなコンテナプローブテクノロジーを上手に使用するには、より多くの知識が必要です。次の記事では、ナレッジカバレッジから実践的な演習まで、一緒に頑張りましょう。この実用的な技術を習得してください。

GitHubへようこそ

  • アドレス:https : //github.com/zq2599/blog_demos
  • 内容:元の記事の分類と要約、およびJava、Docker、K8S、DevOPSなどを含むサポートソースコード

私のパブリックアカウントへようこそ:プログラマーXin Chen

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/boling_cavalry/article/details/106605264