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 シナリオでの自動評価

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

推薦する

クラウドネイティブ時代が到来すると、クラウド セキュリティ テクノロジーはどこに向かうのでしょうか?

数年にわたる実装を経て、クラウドネイティブのコンセプトはエンタープライズ市場で広く認知され、エンター...

nixcom-512m メモリ KVM/30g ハードディスク/1T トラフィック/フロリダ/月額 5 ドル

2007 年に設立されたと主張する nixcom は、米国とカナダのデータ センターで VPS (o...

Invpsus-$5/KVM/2G メモリ/50g SSD/3T トラフィック/スイス

invpsus.com は 2016 年 7 月に登録され、Internet And Softwar...

桃園居はOracle ERP Cloudと提携し、クラウド財務管理の新しいモデルを構築

現在、中国の不動産業界は混乱しており、急速に変化しています。かつては「利益の出る産業」だったが、土地...

Microsoft、Azure仮想マシンにArmのサポートを追加

マイクロソフトは4月4日、Ampere Computingとの提携により、Azure仮想マシンがAR...

クラウドコンピューティングIaaSをめぐる戦いは終わったが、完全に終わったわけではない

7月7日、米国防総省はマイクロソフトと締結した100億ドル(10年間)のクラウドコンピューティング契...

デザイン思考: ユーザーのニーズを満たすことだけを考えるのではなく

[編集者注] この記事の著者は @一只土贼 です。デザイン思考はデザインコンセプトです。その焦点はも...

Virpus 7周年記念 XEN 特別オファーでユーザーに還元

Virpus はすでに 7 周年を迎えました。誕生日を機に、皆様への恩返しとして、XEN VPS の...

企業サイトにおけるブランドキーワードの重要性について簡単に説明します

検索業界全体を見てみると、トラフィックの多いキーワードは、いくつかの大規模な古いウェブサイトによって...

#BlackWeek5# Hawkhost-30% オフ/2 年間 21 USD/ホスト/VPS/リセラー/香港を含む 6 つのデータセンター

hawkhost.com の毎年恒例のブラックフライデーセールでは、[1] 仮想ホスティングが 1 ...

初心者向けガイド: 請求サイクルの簡単な紹介/PayPal とクレジットカード支払いに関する注意事項

この記事では、Host Cat が初心者向けに支払いサイクルの問題について解説します。一般的に、海外...

AWS IoT ボタンの紹介

AWS IoT ボタンは、Amazon Dash Button ハードウェアをベースにしたプログラム...

人気のドメインは1元から、AIギフトは40%オフ、百度スマートクラウドはダブル11に6つの主要なギフトを発売

スピードを上げるためにまだチームを結成中ですか?まだあなたを切り刻んでくれる人を探していますか?こう...

時間を無駄にするのはやめなさい、ピンドゥオドゥオ式の分裂、テンセントを「父」にしても学ぶことはできない

月給5,000~50,000のこれらのプロジェクトはあなたの将来です巨大な最終ラインサプライチェーン...

微博が支援するオアシスがなぜ人気がないのか?

WeiboがOasisを開発した理由については、すでに多くのオンラインプラットフォームで非常に興味深...