K8S のローリングアップグレードを 1 つの記事で理解する

K8S のローリングアップグレードを 1 つの記事で理解する

パート01.アップグレード戦略 

K8S では、 spect.strategy を使用して、古い Pod を新しい Pod に置き換える戦略を定義します。戦略タイプは、再構築戦略 (Recreate) またはローリング アップグレード戦略 (RollingUpdate) に分かれており、デフォルトは RollingUpdate です。

再作成 - 新しいポッドを作成する前に、既存のポッドがすべて削除されます。

RollingUpdate - ローリング更新プロセスを制御するために、maxSurge と maxUnavailable を指定できます。

  • maxSurge : アップグレード中に予想される Pod の数を超過できる最大値を指定するために使用されます。値は絶対数 (例: 5) または予想されるポッドのパーセンテージ (例: 10%) にすることができます。デフォルトは 25% です。パーセンテージで計算された絶対値は切り上げられます。
  • maxUnavailable : アップグレード中に使用できない Pod の最大数を指定するために使用されます。値は絶対数 (例: 5) または予想される Pod のパーセンテージ (例: 10%) にすることができ、デフォルトは 25% です。パーセンテージを使用して計算された絶対値は切り捨てられます。

当社では、デフォルトでローリング アップグレード戦略を採用し、maxSurge と maxUnavailable を適切に構成することで高いビジネス可用性を実現しています。

パート02:健康チェック 

K8S では、プローブを使用してコンテナの定期的な診断を実行し、コンテナの状態を判断します。活性プローブと準備プローブは通常、コンテナの状態に基づいて後続の処理を実行するために使用されます。

  • livenessProbe : コンテナが実行中かどうかを検出します。生存プローブが失敗した場合、kubelet はコンテナを強制終了し、コンテナは再起動ポリシーの対象となります。コンテナーが活性プローブを提供しない場合、デフォルトのステータスは成功です。
  • readinessProbe : コンテナがリクエストを処理する準備ができているかどうかを調査します。準備プローブが失敗した場合、エンドポイント コントローラーは、Pod に一致するすべてのサービスのエンドポイントから Pod の IP アドレスを削除します。初期遅延前の準備状態はデフォルトで失敗になります。コンテナーが準備プローブを提供しない場合、デフォルトのステータスは成功です。

ビジネスでは、これら 2 つのプローブを同時に使用することがよくあります。生存プローブは、コンテナを再起動させて自己修復を行う必要があるかどうかを判断するために使用され、準備プローブは、コンテナが外部にサービスを提供できる準備ができているかどうかを判断するために使用されます。

パート03、 K8Sローリングアップグレードの原則

K8S はデプロイメントを通じてレプリカを作成します。デプロイメントは 3 レベルの構造です。デプロイメントは Replicaset (レプリカ セット) を制御し、Replicaset は Pod を制御します。 Deployment の構造特性により、Deployment の下に異なるレプリカセットが存在する可能性があります。つまり、異なるイメージ バージョンを持つ Pod が同時に Deployment の下に存在できることになります。

アップグレード プロセス中に、Deployment は Replicaset を自動的に作成します。Replicaset は、ローリング アップグレード戦略の maxSurge および maxUnavailable パラメータを通じて、毎回ロールされる Pod の数を正確に制御します。ヘルスチェックのライブネス プローブと準備プローブを組み合わせることで、Pod が正常に起動したタイミングとリクエストを処理する準備ができたタイミングを正確に判断でき、アップグレード プロセス中に利用可能な Pod が通常どおりサービスを提供できることが保証されます。

具体的なプロセスは以下の図の通りです。

K8S ローリングアップグレードプロセス


パート04:要約

この記事では、K8S のアップグレード戦略とヘルスチェックについて説明します。アップグレード戦略とヘルスチェックを構成することで、ローリングアップグレードが実装され、マイクロサービスのスムーズな展開が保証されます。ただし、ローリング アップグレードでは、ビジネス設計に対する要件も高くなります。ビジネスでは、設計において以前のバージョンと次のバージョンとの互換性が必要です。そうしないと、ローリング アップグレード プロセス中に、古いバージョンと新しいバージョンが共存している間にサービス呼び出しが発生し、ビジネス障害、データの破損、その他の問題が発生する可能性があります。企業は、自社の特性とニーズに基づいて適切なアップグレード ソリューションを選択する必要があります。

引用:

Kubernetes 中国語ドキュメント:

http://docs.kubernetes.org.cn/317.html

<<:  クラウド ネイティブ アプリケーション - CDN シナリオでの自動評価

>>:  経済の不確実性と気候変動が将来のネットワークを再構築する

推薦する

成功する個人ブログの作り方チュートリアル2:ウェブサイトの運営とプロモーション

この記事はいくつかのアイデアの参考資料であり、詳細な実装手順ではありません。なぜなら、この種のことに...

ローカルSEOブログの収益モデル

今日、百度に騙されました。朝9時にランキングをチェックしたら2ページ目でした。ランキングが回復したと...

Baidu Libraryへの投稿に関する注意事項

これまでにも何度か Baidu ドキュメント ライブラリを提出しましたが、承認されたものもあれば、承...

A5 マーケティング: 単一製品のオンライン マーケティングを行うにはどうすればよいでしょうか?

企業の資金が限られており、販売する製品を複数開発できず、オフラインでの販売が制限され、倉庫に類似製品...

インターネットブランドマーケティングを行うには? 6つのルール!

インターネットはイノベーションが集中する場所であり、革新的なアイデアが絶え間なく生まれています。近年...

分散型ネットワーキングが新たなトレンドとなっているのはなぜでしょうか?

インターネットの普及は、次の 5 つの重要な要因によるものです。 1. TCP/IP TCP/IP ...

淘宝網を生態学的災害から救うのは誰か?

BATの3大巨頭のうち、百度はテクノロジーに力を入れており、テンセントはソーシャルネットワーキングに...

ナユキズティーは上場を待ちきれない

現在、ミルクティーは若者にとって通常の消費財の一つとなり、彼らの特定の社会的ニーズを運び、オフィスで...

NetEase、海外のbit.lyに似た短縮アドレスサービス126.amを開始

【捜狐ITニュース】(文/何鋒)網易は6月5日、海外で人気のbit.lyに似たURL短縮サービス「網...

知乎は新たな活路を模索しているのだろうか?

今年は知乎の設立10周年にあたり、このタイミングで知乎は米国で株式を公開しました。今年3月25日、知...

検索を改善するには、ネットユーザーのニーズを把握する必要がある

この金融危機は、アメリカの大ヒット映画「デイ・アフター・トゥモロー」で描かれた世界的大惨事よりもさら...

Hosthatch: メモリとハードディスクが 1.5 倍、トラフィックが 2 倍、最低 $25/年、香港、日本、シンガポール、米国、英国、スウェーデン

Hosthatchは現在、10月20日までの特別プロモーションを実施しています。公式発表によると、ア...

新しく作成されたウェブサイトが検索エンジンにインデックスされないのはなぜですか?

多くの新しい SEO 仲間は、どれだけ時間が経ってもまだインデックスに含まれない Web サイトを構...

ウェブサイトのページ分析: ウェブタグのデザインに関する2、3の事柄

最近のユーザー検索ログでは、多くのユーザーが当社が設計したタグを使用せず、外部の検索エンジンを使用し...

商業銀行における分散データベース TiDB の設計と実践

リレーショナル データベースの開発には長い期間がかかっており、多くのトランザクションおよび分析データ...