[ビッグトーククラウドネイティブ]kubernetesグレースケールリリース記事-ウォーキングからケーブルカーライドへの自動サービスアップグレード

クラウドとフォグ、またはハイとローのいずれかで、クラウドネイティブに関する多くの記事を読みました。したがって、著者は一連の記事「Dahua Cloud Native」を作成するという考えを持っており、最も人気があり、シンプルな言語で、覚えやすいシナリオを使用して説明することを望んでいます:クラウドネイティブエコシステム。

1.Kubernetesのポッドコンセプトの分析

妻の誕生日といえば、一緒に旅行に行ってグループサービスシャトルに乗りました。シャオナ(妻)は「このサービスは悪くない、ガイド2人とドライバー1人」とおしゃべりしました。3つの文は私の古い作品からそう遠くはありません。私は退屈に言いました。「3つはポッドであり、1日の旅行サービスのコンテンツを提供し、メインとセカンドは切り離せません。」

Kubernetesのポッドコンセプト分析
シャオナの同級生は、「ポッドとは何ですか?英語のエンドウ豆のポッド?」と再び言いました。妻が夫への賞賛を高めることはまれな機会です。

  • 一般的に、ポッドはサービス(マイクロサービス)を提供します。「ねえ?前にコンテナ技術を言ったときにも同じことを言った」はい、コンテナはサービスを提供する最小のユニットです。ポッドの概念は何ですか?これは、k8sについて話しているためであり、ポッドはk8sサービススケジューリングの最小単位です
  • 「ポッドの概念を導入する理由」。サービスには通常、それを支援するサービスが含まれている場合があるためです。例えば、この車では、美しく雄弁なツアーガイドがメインのツアーガイドとしてコアな説明サービスを提供し、彼女を支援するツアーガイドが帽子の発行、人数のカウント、消費のカウントを担当しています。同様に、アーキテクチャテクノロジーの観点から例を見てみましょう。nginxはコアサービスコンテナーとしてWebサービスコンテナーを提供し、nginxログを補助サービスとして収集するサービスコンテナーはポッドにデプロイされます。これにより、ログの収集とネットワーク接続が容易になります。
  • ポッド用のベースコンテナインフラがあります。ベースコンテナインフラは、メインガイドと補助ガイドが1台の車(ベースコンテナインフラ)にあるか、この車に基づいて組み合わせを形成する必要があるのと同じように、ネットワーク共有の機能を提供します、そうでなければ、それらは一緒になります。対話とリソース共有はできません。
  • ポッドの下のコンテナはネットワークとデータボリュームを共有するため、コンテナサービス間の強いバインディング関係を持つサービスコンテナをポッドに配置します。通常、1つのコンテナがコアサービスを提供し、他のコンテナが次のような補助サービスを提供します:ログ収集、アラートの監視、等

2.ポッドラベルとサービスサービス

おしゃべりやおしゃべりをした後、すぐに観光地に到着しました。車を降りると、X社にはかなりの数のチームがいることに気づきました。ツアーガイドは全員深紅色の帽子をかぶって(訪問者は青い帽子をかぶっています)、力強く出発しました。深紅色の帽子はツアーガイドポッドサービスを示しており、「ツアーガイドサービス」と呼ばれる観光客(ユーザー)向けの統一されたサービスを提供します。

ポッドラベルとサービスサービス

K8sのサービスアーキテクチャについても同じことが言えます。

  • ポッドは通常、nginxWebアクセスサービスなどのサービスを提供します
  • 同じサービスを提供する複数のポッドには、通常、同じラベルが付けられています
  • サービスの作成:同じラベルのポッドは、外の世界にサービスを提供するためのサービスを形成します。

3.自動サービスアップグレード-グレースケールリリース

今日の私たちのプロジェクトは登山です。登山には2つの方法があります。1つは直接登る(つまり徒歩)方法で、もう1つはケーブルカーに乗る方法です。もちろん、途中まで登れない場合は、ケーブルカートランスファーステーションでケーブルカーに乗ることもできます。

  • 「ウォーキングサービス」から「ケーブルカーサービス」は、サービスのアップグレード(バージョン1.0サービスからバージョン2.0サービスへのアップグレード)と理解できます。技術的な観点からは、サービスのアップグレードは、展開と呼ばれる新しいバージョンのサービスのオンライン展開と同等です。K8sでは、サービスアップグレードのデプロイを表すために、デプロイメントという用語も使用しています。
  • ReplicaSetはポッドサービスの組み合わせのバージョンを表します。1.0はポッドサービスの組み合わせのウォーキングバージョンです。2.0はポッドサービスの組み合わせのケーブルカーバージョンです。理解しやすいですか?
  • デプロイメントをサービスコンテナーにデプロイするプロセスでは、ユーザー指向のサービスが中断されないようにします(つまり、1.0を歩いているユーザーのサービスが中断されないようにします)。そのため、1.0ポッドを停止して開始します。 2.0 Pod2.0の場合、このプロセスはグレースケールパブリッシングと呼ばれます。プロセス全体は、Kubernetesが提供する自動化された運用および保守機能に大きく依存しています。

自動サービスアップグレード-グレースケールリリース

上の画像にはRSごとに2つのポッドしかないため、グレースケールパブリッシングを直感的に理解することはできません。下の画像を参照してください。

  • 円はポッドを表し、v1バージョンとv2バージョンに分けられます。点線でマークされたポッドはオフラインになるポッドを表します。
  • ポッドのv1バージョンが1つ減り、ポッドのv2バージョンが1つ増えます。
  • 徐々にReplicaSet:v1ポッドはすべて破棄され、ReplicaSet:v2ポッドは徐々に作成され、サービスの提供を開始します
  • グレースケールリリースプロセス全体は、デプロイを通じてk8sで定義および実行されます。

自動サービスアップグレード-グレースケールリリース2

おすすめ

転載: blog.csdn.net/hanxiaotongtong/article/details/124054775