OpenYurt v0.3.0ヘビーリリース:エッジシナリオでのアプリケーション展開効率を包括的に改善

ヘッドpicture.png

著者| Zhang Jie(Bing Yu)
出典| AlibabaCloudネイティブ公式アカウント

前書き

OpenYurtは、ネイティブのKubernetesに基づくAlibaba Cloudオープンソースによって構築され業界初の非侵入型Kubernetesエッジコンピューティングプロジェクトです。目標は、Kubernetesを拡張してエッジコンピューティングシナリオをシームレスにサポートすることです。完全なKubernetesAPI互換性を提供し、すべてのKubernetesワークロード、サービス、オペレーター、CNIプラグイン、およびCSIプラグインをサポートします。エッジノードがクラウドから切断されている場合でも、エッジノードで実行されているアプリケーションは良好なノード自律性を提供します。影響はありません。OpenYurtは、任意のKubernetesクラスターサービスに簡単に展開できるため、強力なクラウドネイティブ機能をエッジまで拡張できます。

OpenYurtv0.3.0がリリースされました

2020年11月8日、北京時間に、Openyurtはv0.3.0バージョンをリリースしました。これは、ノードプールとユニット化された展開の概念を最初に提案し、クラウドYurt-App-Managerコンポーネント追加して、エッジシナリオでのアプリケーション展開効率を包括的に改善し、エッジノードを削減しました。そして、アプリケーションの操作と保守の複雑さ。yurthubおよびyurt-tunnelのコアコンポーネントのパフォーマンスを完全に最適化するために、yurtctlはkubeadmプロバイダーを提供します。kubeadmプロバイダーは、kubeadmによって作成されたKubernetesクラスターをOpenyurtクラスターにすばやく簡単に変換できます。

1.png

1. Yurt-App-Mangerは、エッジアプリケーションの運用と保守のために誕生しました

コミュニティの学生との広範な議論の後、OpenYurtはOpenYurtYurt-App-Managerコンポーネントを提供します。Yurt-App-Managerは、Kubernetesの標準拡張であり、Kubernetesで使用できます。NodePoolとUnitedDeploymentの2つのコントローラーを提供し、ホストディメンションとアプリケーションディメンションからのエッジシナリオでノードとアプリケーションの運用および保守機能を提供します。

1)ノードプール:NodePool

エッジシナリオでは、エッジノードは通常、強力な地域、地域、またはその他の論理グループ化特性(同じCPUアーキテクチャ、同じオペレーター、クラウドプロバイダーなど)を持ち、異なるグループのノード間にネットワークの違いがあることがよくあります。相互通信、リソースの非共有、異種リソース、アプリケーションの独立性などの明らかな分離プロパティも、NodePoolの起源です。

NodePoolは、その名前が示すように、ノードプール、ノードグループ、またはノードユニットと呼ぶことができます。共通の属性を持つウェイカーノードを管理する場合、従来のアプローチでは、ラベルを使用してホストを分類および管理しますが、ノードとラベルの数が増えると、ノードホストが分類され、操作されます(例:スケジューリングポリシーのバッチ設定、次の図に示すように、効率と柔軟性が低下します。

2.png

NodePoolは、ノードグループの次元でノード分割をより高次元に抽象化し、次の図に示すように、ノードプールの観点から、さまざまなエッジ領域のホストの統合管理と運用および保守を実行できます。

3.png

2)ユニット展開:UnitedDeployment

エッジシナリオでは、同じアプリケーションを異なるリージョンのコンピューティングノードにデプロイする必要がある場合があります。デプロイメントを例にとると、従来のアプローチでは、最初に同じリージョンのコンピューティングノードに同じラベルを設定してから、複数のデプロイメントを作成します。各デプロイメント異なるリージョンで同じアプリケーションの展開を実現するために、nodeSelectorsを介して異なるラベルが選択されます。ただし、同じアプリケーションを表すこれらの複数のデプロイメントは、名前、ノードセレクター、およびレプリカの特性を除いて、非常に小さな差別化された構成を持っています。以下に示すように:

4.png

ただし、地理的分布の増加とさまざまな地域でのアプリケーションの要件の差別化に伴い、運用と保守はますます複雑になり、次の側面で明らかになります。

  • イメージバージョンをアップグレードするには、各デプロイメントを1つずつ変更する必要があります。
  • 同じアプリケーションを示すために、Deploymentの命名規則をカスタマイズする必要があります。
  • エッジシナリオがますます複雑になり、需要が増加するにつれて、各ノードプールの展開にはいくつかの差別化された構成があり、管理が困難になります。

これらのサブデプロイメントのより高いレベルの抽象化、統合管理によるユニット化されたデプロイメント(UnitedDeployment):自動作成/更新/削除。以下に示すように:

5.png

UnitedDeploymentコントローラーは、アプリケーションを定義するためのテンプレートを提供し、次の異なる領域に一致するように複数のワークロードを管理できます。各UnitedDeploymentの下の各リージョンのワークロードはプールと呼ばれます。現在、プールはStatefulSetとDeploymentの2つのワークロードをサポートしています。コントローラは、UnitedDeploymentのプール構成に基づいて子ワークロードリソースオブジェクトを作成し、各リソースオブジェクトには予想される数のレプリカポッドがあります。UnitedDeploymentインスタンスを介して、複数のDeploymentまたはStatefulsetリソースを自動的に維持でき、レプリカなどの差別化された構成を持つこともできます。より直感的な操作エクスペリエンスについては、Yurt-App-Managerの使用法チュートリアル開発者チュートリアルを確認 してください

Yurt-App-Managerの詳細については、コミュニティの問題とプルリクエストを参照してください。

2.ノード自律コンポーネントyurt-hub

yurt-hubは、Kubernetesクラスター内の各ノードで実行されるデーモンです。その役割は、アウトバウンドトラフィック(Kubelet、Kubeproxy、CNIプラグインなど)のプロキシとして機能することです。これは、Kubernetesノードデーモンがアクセスできるすべてのリソースの状態をエッジノードのローカルストレージにキャッシュします。エッジノードがオフラインの場合、これらのデーモンは、ノードが再起動後に状態を復元し、エッジ自律の機能を実現するのに役立ちます。v0.3.0バージョンでは、コミュニティは、yurt-hubに次のような多くの機能拡張を行いました。

  • yurt-hubがクラウドkube-apiserverに接続すると、kube-apiserverからの証明書が自動的に申請され、証明書の有効期限が切れたときに自動ローテーションがサポートされます。

  • クラウドリソースを監視する場合は、タイムアウトメカニズムを追加します。

  • ローカルキャッシュデータが存在しない場合は、応答を最適化します。

3.クラウド側の運用および保守チャネルコンポーネントyurt-tunnel

yurt-tunnelは、クラウド内のTunnelServerと各エッジノードで実行されているTunnelAgentで構成されます。TunnelServerは、リバースプロキシを介して各エッジノードで実行されているTunnelAgentデーモンとの接続を確立し、パブリッククラウドのコントロールプレーンと企業イントラネット環境のエッジノード間の安全なネットワークアクセスを確立します。v0.3.0バージョンでは、コミュニティは、信頼性、安定性、および統合テストの観点から、yurt-tunnelコンポーネントに多くの機能拡張を行いました。

4.OpenYurtの操作および保守コンポーネントyurtctl

v0.3.0バージョンでは、yurtctlはkubeadmプロバイダーをサポートします。kubeadmプロバイダーは、kubeadmによって作成されたネイティブKubernetesクラスターを、ウィークエッジネットワーク環境に適応できるKubernetesクラスターにすばやく簡単に変換できるため、OpenYurtのエクスペリエンスが大幅に向上します。

より実用的な操作については、「OpenYurtの概要-RaspberryPiでOpenYurtを再生する」に注意してください

これからの計画

OpenYurt V0.3.0のリリースにより、エッジシナリオでのネイティブKubernetesのスケーラビリティがさらに向上します。同時に、エッジシナリオでのアプリケーション展開の問題に対してYurt-App-Mangerコンポーネントがリリースされます。OpenYurtコミュニティは、デバイス管理とエッジの運用および保守についてフォローアップします。スケジューリング、コミュニティガバナンス、コントリビューターエクスペリエンスへの投資を継続します。また、Intel / Vmwareの学生の参加に感謝します。同時に、関心のある学生も、安定した信頼性の高い完全にクラウドネイティブなエッジコンピューティングプラットフォームを構築するための共同構築に参加して参加することを歓迎します。

コミュニティの詳細については、次の点に注意してください。https://github.com/alibaba/openyurt

関連リンク

おすすめ

転載: blog.51cto.com/13778063/2590499
おすすめ