[再投稿] 14メジャーバージョンアップグレードの40日間、Tencentカンファレンスの背後にある大規模なコンテナテクノロジーの実践

40日14メジャーバージョンアップグレード、Tencentカンファレンスの背後にある大規模なコンテナテクノロジーの実践 

https:// my.oschina.net/jxcdwangtao/blog/3197014

 

スプリングフェスティバル周辺での新しい冠状肺炎の流行の影響により、オンラインオフィスアプリケーションが急速に普及し、エンタープライズレベルのオンラインオフィス製品として、Tencentカンファレンスはユーザーにすぐに認知されました。ユーザー数が急増すると同時に、ビジネスは高速で繰り返しアップグレードされ、40日間で14のメジャーバージョンのアップグレードを完了し、小さなステップと高速な反復という古典的なケースをステージングしました。この記事は、コンテナーの観点から始まり、TencentカンファレンスがTencentクラウドコンテナーサービスTKEに基づいていることを示します。バックエンドキャパシティが100万コアに達し、バージョンの迅速な反復を支えるクラウドネイティブテクノロジーです。

Tencent Meetingは、エンタープライズレベルの製品の主要な製品として、製品の可用性と安定性に関する要件が非常に高くなっています。サービスが不安定な場合、ユーザーが会議にアクセスできなくなったり、会議が中断したり、オーディオやビデオの品質が低下したりして、ユーザーから苦情が出ます。製品の評判に影響を与え、ユーザーの信頼を低下させます。

同時に、ユーザー数は急増しており、リアルタイムでのユーザーの成長のペースに対応するためのバックエンド機能が必要であり、容量拡張の適時性に対する要件が非常に高くなっています。また、サービス運用の過程では、機能の最適化やバグ修正などの繰り返しアップグレードが必然的に発生します。ユーザーのアップグレードを透過的に行うためには、ビジネスプログラムのリリースと更新を効率的かつ制御可能にサポートするプラットフォームが必要です。

ソリューション

上記のビジネスシナリオの要件に対処するには、Tencentクラウドコンテナーサービス(TKE)を使用してTencentミーティングをサポートします。TKEの動的ルーティング、固定ネットワーク、柔軟なスケーラビリティ、および制御可能なアップグレード機能の助けを借りて、Tencent会議、オンライン教育、空中教室の発生時に高成長サービスの展開と運用を完全に実行します。管理プラットフォームのアーキテクチャは次のとおりです。

管理プラットフォームはTKEクラスタデプロイサービスに基づいており、これに基づいていくつかの機能拡張が行われています。緑のマークは実現された機能を示し、赤のマークは進行中であり、灰色は実装される予定です。TKEクラスタはTencent Cloud CVM、CBS、CLB、VPCに基づいています基本的な機能に基づいて、クラウドネイティブk8sクラスターをデプロイします。ルーティング(CLB / L5コントローラー)、ネットワーク(Ipamd)、リソース管理(NodeResourceOversell、DynamicQuota)、エラスティックスケーリング(VPA、HPAPlus)などから、TKEベースの拡張オペレーターを使用します。機能の最適化は複数の次元で行われており、Tencent ConferenceなどのTencentの自己開発サービスの展開と運用をサポートしています。

ビジネス展開モデルは次のとおりです。

ここでのサービスは、テスト、プレリリース、正式の3つの名前空間セットに対応する3つの環境セットにデプロイされます。サービスは、名前空間の下の複数のマイクロサービスモデルにデプロイされます。サービスの各セットには、ワークロード、サービス/イングレス、configmap、シークレット、pv / pvcなどの独立した完全な実行リソースのセットが含まれています。

Tencent Cloud Container Service TKEの英語での正式名称は、TKEと呼ばれるTencent kubernetes Engineです。TKEは、安定性、安全性、効率性、柔軟性、および使いやすさを備えたKubernetesコンテナー管理プラットフォームをユーザーに提供することを目的としています。TKEは、ネイティブのkubernetesに基づいて、コンテナー中心の、非常にスケーラブルで高性能なコンテナー管理サービスを提供します。ネイティブのkubernetes APIと完全に互換性があります。TencentCloudのクラウドハードディスクや負荷分散などのkubernetesプラグインを拡張します。効率的なデプロイを提供します。リソーススケジューリング、サービスディスカバリ、動的スケーリングなどの一連の完全な機能は、ユーザーの開発、テスト、運用と保守の環境の一貫性の問題を解決し、大規模なコンテナクラスタ管理の利便性を向上させ、ユーザーのコスト削減と効率の向上を支援します。

特定のソリューション分析

以下では、Tencent Cloud Container Service TKEがTencent Conferenceのビジネスの進化を、品質保証、効率性、制御可能なアップグレードの3つの側面からどのようにサポートするかを紹介します。

1.品質保証

ビジネスサービスの安定性は、製品の評判を直接決定します。Tencent会議およびその他のサービスのサービス品質を確保するために、Tencent Cloudは、動的ルーティング、異常検出、並列拡張、およびビジネス移行の次の側面で保証措置を講じています。

1.1動的ルーティング

动态路由是基于腾讯自研的路由系统L5,通过在TKE集群内拓展service能力实现的L5-controller组件。L5-controller控制层面实现逻辑和通用controller类似,基本流程包括监听变更事件,触发回调,入队列;拉起worker,更新路由。

ただし、ルーティングの一貫性を確保するために、メインと補助の2組の機能プロセスが拡張されています。上の図に示すように、プロセスにはそれぞれオレンジ色と緑色の矢印が付いています。メインプロセスは効果的な実装を保証し、補助プロセスは一貫性を保証します。その中でも、メインプロセスはイベントをリッスンすることによりリアルタイムでトリガーされ、複数のワーカーが同時に実行されることで、ルーティングの更新の適時性が確保され、数秒で有効になります。補助プロセスは、クラスター内のサービスをシリアルスキャンし、サービスに対応するルーティング構成データをプルし、L5ルーティングシステム内のデータを調整し、ギャップを確認します。センターコンソールを介していないルーティング設定は強化され、一貫性があります。検出され、上書きされ、分レベルで有効です。L5コントローラーのデータレベルにより、変更設定が数秒で有効になり、強整合性が数分で実装されます。

1.2異常検出

クラウドネイティブk8の以下の機能を通じてユーザー定義のポッドヘルスチェックをサポートし、トラフィックの異常な期間中にサービスが分離されるようにします。

  • livenessProbe:サバイバルチェックプローブ
  • readinessProbe:準備チェックプローブ
  • postStart:ポッドが正常にプルアップされる前に実行するアクションを指定します
  • preStop:ポッドが破棄される前に実行されるアクションを指定します
  • terminateGracePeriodSeconds:ポッドの終了の待機時間

上記のいくつかの機能的機能と動的ルーティング機能を組み合わせることにより、ビジネスサービスの高い安定性を実現できます。

1.3並列拡張

Tencent Conferenceなどの大規模なインターネットユーザーシナリオでは、拡張の感度を把握することが非常に必要です。短期間のトラフィックの爆発的な増加には、バックエンドの拡張リズムに対応できる必要があるため、Tencent Cloudには2つの主要なクラウドベースのHPAがあります。 1つは並行性の量を拡張する機能であり、高並行性モードで容量拡張検出プロセスを実行します。高並行性はビジネスの高負荷をアクティブに検出し、実際の状況に応じてリアルタイムで容量拡張をトリガーします。2番目は計算サイクルであり、ユーザーが検出計算サイクルを設定するのをサポートします最小値が2番目のレベルに達することもあり、検出プロセスが計算サイクル中に高負荷を検出すると、リアルタイムで拡張をトリガーできます。

1.4ビジネスの移行

ビジネスの移行は、主に次の3つのモードによって実現されます。

ヘルム展開:クラウドネイティブな方法、1つの構成、マルチクラスター分散、利点は効率的で管理可能です。欠点は、既存のネットワーク運用構成と簡単に異なるため、必ずしも完全に使用できるとは限らず、展開仕様に大きく依存します。

名前空間のパッケージ化およびコピー:ビジネスのすべてのnsおよびnsの下のすべてのリソースをパッケージ化し、それらを別のクラスターにコピーおよびデプロイして、ビジネスの実行環境と構成の復元を可能な限り確実にします。

名前空間のパッケージ化と再利用:上記のプロセスと同様に、ユーザー定義の構成調整をサポートする機能の最適化により、ユーザーの運用コストを削減します

2.効率

新しい王冠の流行の間、Tencent Conferenceは大多数のユーザーによって十分に認識され、ユーザーは爆発し、サービス展開の効率はコア機能でした。ユーザーの成長のペースにすばやく適応するプラットフォームの機能を促進するには、Tencent Cloudがプロセスの自動化、CI / CD、認証管理と柔軟な拡張に努力が払われています:

2.1自動化

自動化は主にプロセスの効率を向上させることです。新しいクラスターの構築、クラスターの容量拡張、環境の初期化、コンポーネントの配布、Tencent Cloud APIに依存、クラスターの作成、クラスターの追加ノードの自動実装、環境の初期化、カーネルパラメーターの調整、システム環境の設定など。 、ツールのインストール、ファイルシステムのフォーマット、コンポーネントの配布、その他のプロセスはすべて、スクリプトのパッケージ化とツールの実行に依存しています。セントラルコンソールのプロセスとツールの統合は、次のようなプラットフォームチャネルを通じて実装されます。スクリプト、バッチインストール、新しいクラスターの作成後のコンソールの登録など。

2.2 CI / CD

TKEクラスターに展開されたTencentの内部ビジネスは、基本的にCI / CDプロセスを開き、複数のネットワーク環境にわたるタンデム展開をサポートしています。Tencent会議は、既存のCI / CDモデルとクラウドネイティブサービスオーケストレーションモデルを通じて実装されています。開発、展開、テスト、起動、バージョンの反復による効率的な着陸

2.3認証管理

CMDBは、製品、ビジネスモジュール、およびIPの関係管理モデルとして、多くの企業のビジネスシナリオで広く使用および再利用されています。CMDBコントローラーの実装は、基本的には一般的なコントローラーロジックに似ています。これには、apiserverのポッド変更イベントの監視、対応するワーカーとワーカーのトリガーによるイベントコールバックに基づくクラスター情報のクエリ、ポッド関連製品情報のクエリ、そして最後にCMDBサービスシステムへの関係のランディングが含まれます。

CMDBのリアルタイム同期は、次の認証アプリケーションプロセスなど、多くのカスタマイズされた拡張機能の実装に適した補助機能を提供します。

プロセスダイアグラムに示すように、init-containerモードを介して、ビジネスCMDBは迅速に同期されて着陸し、Tencentの内部ウィービングクラウド、L5およびその他のシステムとリンクされます。これにより、常にビジネスの悩みの種となっている認証チャネルを効果的に開くことができます。認証アプリケーションは完全に自動化され、効率的です。ビジネスサービスの展開をサポートします。

2.4弾性膨張と収縮

Tencentミーティングなどの主要なビジネスシナリオのニーズを満たすために、クラウドネイティブのVPA機能に加えて、Tencent CloudはクラウドネイティブのHPAに基づいて拡張し、ビジネスのカスタム機能設定をサポートするHPA機能モジュールを個別に抽出することにより、オペレーターモードで実装しました、特定の拡張機能には、マルチチャネルインジケーター、Metricsサーバー、Promethus、ビジネスモニタリングなどによるマルチチャネルインジケーターの収集のサポート、ビジネスシナリオとの互換性の向上が含まれます。

;並列実装、ビジネスインジケーターのマルチワーク並列検出、適時性を確保するためのリアルタイムトリガーエラスティックスケーリング、カスタム、拡張および収縮しきい値、計算サイクル、エラスティック係数をカスタマイズするユーザーのサポート。マルチチャネルインジケーターの機能フレームワークは次のとおりです。

3.制御可能なアップグレード

ユーザーにとって、Tencent会議はユーザー間の直接コミュニケーションの問題を解決するための重要なシナリオです。より良いユーザーエクスペリエンスを提供するために、製品の運用中に機能の最適化とバグ修正の反復が多かれ少なかれ行われます。クラウドネイティブモデルでは、更新の信頼性と制御を保証する方法が特に重要です。Tencent Cloudは、クラウドのネイティブ機能に基づいて、固定ネットワーク、軽量アップグレード、バッチアップグレード、容量保証の4つの側面を拡張および最適化し、以下のシナリオの機能を実現しました。

3.1固定ネットワーク

固定ネットワークとは、ポッドの破壊と再構築後もIPが変更されないことを意味します。ポッドの異常やワークロードバージョンの更新などのシナリオ。固定ネットワークは、Tencentの自社開発ビジネスの非常に認められた機能です。多くのビジネスバックグラウンドサービスには、IPベースの認証管理があります、ホワイトリストのメカニズムと他の機能の依存関係、私は多くの企業が同様のシナリオを持っていると思います。固定ネットワークの設計は、IPAMDコントローラー、TKE-ENI-AGENT、CNIの3つの主要な機能モジュールに基づいています。

  • IPAMDコントローラーはオペレーターの形式で実行され、IP割り当て管理、ネットワークリソースステータスの更新、ノードとポッドの関連付けレコードの更新などを担当します。
  • TKE-ENI-AGENTは各ノードでデーモンセットモードで実行され、ルーティングの調整、cni構成の生成、ノードポリシールーティングとポッドネットワークスタックの設定を行います
  • CNIはノードでも実行され、ノードポリシールーティングとポッドのネットワークスタックの実装を担当します

固定ネットワークの具体的な実装プロセスは、上記のとおりです。

  1. ユーザーがステートフルセットの作成を開始しました
  2. IPAMDコントローラーは、リスト監視メカニズムを通じて作成要求を監視します
  3. IPAMDコントローラーはIPアロケーターを使用して、新しいステートフルセットの下のすべてのポッドにIPを割り当てます
  4. IPAMDコントローラーは、各ポッドに対応するネットワーク構成StaticIPConfigを生成し、ステートフルセット後のライフサイクルで、ポッドと割り当てられたIPの関連付けとステータスの更新を管理します
  5. IPアロケーターはIPAMDコントローラーのコア機能です。これは、現在のポッドが新しいアプリケーションであると判断し、再構成予約を破棄し、ポッド情報とステートフルセットステータスに応じてリカバリと他のプロセスを削除し、対応する構成を生成します。ステートフルセットが新しく作成されると、アロケーターは新しいIPはポッドに与えられます。ポッドが異常に破壊されて再構築されると、アロケータは一時的に元のIPを復元します。再構築が完了すると、繰り返し再利用されます。ステートフルセットが削除されると、割り当てられたすべてのIPが復元されます。
  6. ノードにポッドが作成されると、IPAMDがTKE-ENI-AGENTを介して生成したネットワーク構成StaticIPConfigを取得し、IPアロケーターにGRPCを介して有効なポッドネットワーク構成を実装するように要求します。
  7. TKE-ENI-AGENTリクエストを受信すると、IPアロケーターは、割り当てられているポッドネットワーク構成の静的IPConfigを取得し、Tencent Cloud Interfaceを呼び出して構成に従ってENIエラスティックネットワークカードを作成し、最後にCNI構成CNIInfoを生成します
  8. CNIは、IPアロケーターによって生成された構成CNIInfoに基づいてノードポリシールーティングとポッドネットワークスタックを実装し、ポッドネットワークが有効になります

3.2 StatefulsetPlusオペレーター

クラウドネイティブ展開、StatefulSet、およびその他のワークロードタイプは、Tencent会議やその他のサービス(軽量アップグレード、バッチアップグレード、容量保証など)のニーズを満たすことができないため、Tencent Cloudは新しいワークロードをサポートするStatefulSetに基づくオペレーターのセットを開発しましたタイプはStatefulsetPlusであり、Kuberneteに組み込まれたStatefulSetのすべてのコア機能を継承します。主な機能ロジックはStatefulSetに似ていますが、サブディビジョン機能は、コンテナー(ポッド)インスタンスの固定IP、アプリケーションのマルチバッチグレースケール更新など、拡張されています従来のアプリケーションのリリースとの互換性が向上し、ノードが切断されたときのポッドの自動ドリフトにより、in-situコンテナーのアップグレードがサポートされます。StatefulsetPlusオペレーターのアプリケーションアーキテクチャと機能モジュールは次のとおりです。

StatefulsetPlusはCRDモードでデプロイされます。これは、Statefulsetのyamlパラメータと部分的に異なり、その使用法は基本的にStatefulsetと同じです

3.3バッチでのアップグレード

Tencent Meetingなどの多くの主要なサービスは、更新とアップグレード時に完全に制御可能な進歩を必要とします。バッチアップグレードは、このシナリオの拡張に基づいています。従来のアプリケーションのリリースとの互換性も高くなります。バッチアップグレードは実際に使用されています。進化のプロセスは次のとおりです。

バッチアップグレードの十分な制御性を実現するには、アップグレードの開始時に事前にバッチを指定する必要があります。後続の各プロセスは手動でトリガーされます。アップグレードが失敗した場合は、修復後に続行するか、他のワークロードと比較してロールバックプロセスを直接実行できます。 StatefulsetPlusのバッチアップグレード機能の利点は、ユーザーが各バッチのインスタンスセットを構成できることです。たとえば、ユーザーは、アプリケーションサービス領域に従って、対応する領域のインスタンスを一時的にのみアップグレードできます。各バッチの指定されたインスタンスは同時に更新され、アップグレードの効率は高くなります。

同時に、アップグレードはより安全で心配ありません。これは、各バッチが完了した後にユーザーの確認を待つことをサポートし、インスタンスの次のバッチのアップグレードをトリガーします。アプリケーションプローブがアップグレードの成功を自動的に検出した後、インスタンスの次のバッチのアップグレードを自動的にトリガーします。さらに、手動スケーリング、基本的なインジケーター(Cpu、Mem、ネットワークI / O)に基づくエラスティックスケーリング、およびアプリケーション定義のモニタリングインジケーターに基づくエラスティックスケーリングをサポートします。

まとめ

現在、フルクラウドアクセスの傾向はすでに明確です。Tencentカンファレンスでは、クラウドコンピューティングブームを利用して、バージョンの迅速な反復とクラウドネイティブテクノロジーに基づく機能の完全なアップグレードを迅速に完了しました。すべての人生の流れのクラウドベースの変換では、コンテナー技術が重要な役割を果たします。Tencentは、コンテナ関連のテクノロジーとサービスをずっと前から研究してきました。ゲーム、WeChat、広告などの成功したビジネスの多くは、コンテナテクノロジーを利用することを選択しています。コンテナテクノロジーは数十億をサポートしていると言えます。ユーザー。

クラウドネイティブテクノロジーエコシステムの活発な発展に伴い、テクノロジーフォロアーとして、Tencent Cloud Container Service TKEテクノロジーがより多くのビジネスを誇らしげに前進できるようサポートできることを願っています。

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/12598770.html