Kubernetesクラスタは1つで十分なのでしょうか?

複数のアプリケーションを展開する際のマルチクラウド通信を高速化する方法

Kubernetesクラスタは1つで十分なのでしょうか?

世界で使用されているアプリケーションは、レイテンシ、耐障害性、分離、さらには法規制の変更など、スタンドアロンのKubernetesクラスタでは解決できない課題に直面する可能性があります。この記事では、複数のクラスタを接続することで、コストを削減しながらアプリケーションのパフォーマンスを向上させるシナリオについて説明します。 Platform Equinix® では、これらの導入において、高速かつ安全な低レイテンシ通信が容易に実現できます。

Network Edge - 仮想化によりネットワークを最新化

エクイニクスは動的ネットワーク自動化ツールを構築し、デジタルエッジにおいて仮想ネットワークサービスを展開できるようにしました。Network Edgeは、モジュラー型のインフラプラットフォーム上で稼働する仮想ネットワークサービスを提供し、ネットワークサービスの即時導入とインターコネクション(相互接続)を実現します。

詳細はこちら
network-edge

Kubernetesリソースの調整

コンテナとKubernetesがもたらすメリットの1つは、コンピュータ密度を最適化するために必要なリソースのみを割り当てる柔軟性です。例えば、podで実行されるコンテナの数、ノードで実行されるpodの数、およびクラスタの構築に必要なノードを定義できます。しかし、複数のクラウドで動作するクラスタの数はどうでしょうか。これは、グローバルソリューションで定義ができるもうひとつの変数です。

複数のクラウドにおけるKubernetesのマルチクラスタのメリット

さまざまなクラウドにKubernetesマルチクラスタのソリューションを導入するメリットは次のとおりです。

  • パフォーマンス: コンピュータリソースをデータに近い場所で実行することで、レイテンシを短縮し、応答時間を短縮します。
  • 冗長性: クラスタ障害の発生時に可用性を保護します。
  • 非依存性: 複数のクラウドサービスに企業のワークロードを導入することで、ベンダーロックインを回避できます。
  • コンプライアンス: 企業や政府のデータ保護およびプライバシーに関する規制に準拠するために、特定の地域に企業のワークロードとデータを導入します。

もちろん、いいことずくめではありません。複数のクラウドで複数のクラスタを管理すると、監視、展開、トラフィック管理などの一部の領域が複雑になる場合があります。

Network EdgeおよびECX Fabricにより、高速で安全な接続を実現

Kubernetesのクラスタ間の通信は、この種のアーキテクチャにおいて重要な役割を果たします。エクイニクスは、Equinix Cloud Exchange Fabric™(ECX Fabric™)およびNetwork Edgeソリューションによって、Kubernetesクラスタ間の通信を簡素化します。

ハイブリッドソリューションが必要な場合に、ECX Fabricを使用することで、異なるクラウド間やオンプレミスのクラスタ間でソフトウェア定義されたプライベートなインターコネクション(相互接続)が可能になります。Network Edgeにより、著名なベンダーの仮想ネットワークデバイスを導入し、分散したロケーションにある複数のクラウドに安全かつプライベートに接続できます。

図1. 通常のプライベートアクセスから、エクイニクスによるKubernetesマルチクラスタソリューションへ

シンプルで直感的なポータルを使用することで、さまざまな仮想ルータやファイアウォールを選択できるため、企業は最も必要な場所にネットワークリソースやセキュリティリソースをすばやく展開できます。仮想デバイスは、Kubernetesマルチクラスタソリューション用に選択したクラウドに接続するためのハブとして機能します。デバイスのメニューから、ECX Fabric経由のダイレクト接続を構築できます。

マイクロサービス時代における容易な接続

マイクロサービスは、新しいアプリケーションの開発と実行において計り知れないメリットを提供し、モノリシックまたはSOAアーキテクチャの機能を制御するフレームワークも提供します。

サービスメッシュネットワーク

サービスメッシュネットワークを使用すると、Kubernetesマルチクラスタソリューションをマウントしながら、マイクロサービスをある程度制御できます。この概念にまだ慣れていない人に説明しますが、サービスメッシュとはさまざまなマイクロサービス間の通信を処理する専用の低レイテンシソフトウェアインフラです。

通常、サービスメッシュはサイドカーパターンを使用して実装されます。つまり、各コンテナはマイクロサービスを実行し、一方で別のコンテナはプロキシ機能を使用して送受信の要求を制御します。この方法ではマイクロサービス間の直接的な通信はなく、プロキシ間でのみ通信が行われます。

サービスメッシュツールの必要性

グローバルマイクロサービスベースのアプリケーションのクラスタ間のトラフィックを管理する場合は、Istioは適切な選択肢だといえます。これはマイクロサービスの接続、セキュリティ、管理のためのオープンソースフレームワークです。インストールが容易で、YAMLテンプレートに基づいた操作の設定も可能です。これにより、マイクロサービスの使用に関連する次のような課題をすべて管理できます。

  • サービスディスカバリ
  • トラフィック管理
  • 信頼性
  • セキュリティ
  • アクセス制御

Kubernetesマルチクラスタのユースケース

Kubernetesマルチクラスタソリューションを展開するための基本を理解したので、ここでは、このアプローチを使用した際の便利な活用例をいくつか紹介します。

パフォーマンスの向上: Webポータルマイクロサービスを実行するオンプレミスのKubernetesクラスタを想像してみてください。クエリの中には、膨大なデータを管理するためにクラウドサービスを使用しているものもあります。 この場合、Kubernetesクラウド管理ソリューションを使用してクラスタを展開し、データウェアハウスサービスと継続的にやりとりするマイクロサービスのみを実行できます。

図2. クラウドサービスに近いコンピューティングワークロードを実行

高可用性: 同じクリティカルなマイクロサービスを2つの異なるクラウドプロバイダに展開すると、中央のオンプレミスKubernetesクラスタからこれらのマイクロサービスが呼び出されます。Istioはマイクロサービスのエンドポイントを管理し、障害が発生した場合に動作中のクラスタへのトラフィックを均等に分散するためにバランシングを行います。

カナリアリリース: 述のケースと同様に、それぞれが異なるクラウドで実行において、マイクロサービスの異なるバージョンを試すことができます。配置プロセスに基づいてウェイトを割り当て、変更できます。

コンプライアンス: 企業のデータは特定のリージョンに保存されている必要があります。また、そのデータとともに動作するバックエンドサービスは、オンプレミスクラスタを使用して、同じEquinix International Business Exchange™(IBX®)で実行される必要があります。Kubernetesのクラウド管理プロバイダソリューションを使用してフロントエンドサービスを展開し、クラウドの柔軟性を活用して、オンプレミスのバックエンドサービスを2つのサービス間の通信が必要な時に呼び出すことができます。

図3. コンテナのワークロードをデータの近くで維持する

結論

私たちは、アプリケーションが複数のクラウドで動作するように設計されている「マルチクラウドの時代」に生きています。 Kubernetesは、管理と実行を標準化するための比類のないフレームワークを提供します。マルチクラスタのアーキテクチャは、現在および将来のアプリケーション開発時に検討すべきもう一つの選択肢だといえます。

エクイニクスは、企業に対しKubernetesクラスタ間の通信の完全な柔軟性と機能を実現するのに必要なサービスを提供しています。つまり、企業は設計において制約されることなく、さまざまな検討をすることができます。

Network Edgeサービスを活用したマルチクラウド通信を高速化する方法をご覧下さい。

Subscribe to the Equinix Blog