プライベート・クラスターとパブリック・クラスターの両方にわたって Istio を使用する  

プライベート・クラスターとパブリック Kubernetes クラスター間でサービスを接続してハイブリッド・クラウドを構成する

| By Yossi Mesika

Description

ハイブリッド・クラウドを最後まで進めることに決めたとしたら、さまざまなワークロードのすべてを管理するのは簡単ではないと覚悟していることでしょう。このパターンで取り上げるアプリは、Web フロントエンド、ストレージ用の Redis マスターとそのレプリカとして作成された一連の Redis スレーブ、そして Kubernetes のレプリケーション・コントローラー、パッド、サービスで構成されています。サンプル・アプリケーションは、ユーザーがコメントを送信すると、Watson Tone Analyzer によって該当する感情アイコンを追加してコメントをエンリッチします。この目的を達成するため、私たちは各種のマイクロサービスが Kubernetes クラスター上でもプライベート・クラウド・クラスター上でも稼働するよう、マルチクラスターを構成しました。サンプル・アプリがリモートの Tone Analyzer サービスを呼び出すときは、クラスター間の通信を確立します。Tone Analyzer サービス自体は、クラウドから Watson Tone Analyzer サービスを呼び出します。

Overview

このパターンでは、IBM Cloud Private クラスターと IBM Cloud Kubernetes Service (IKS) クラスターとの間で Istio を使ってサービスを接続することで、ハイブリッド・クラウドを作成します。IBM Cloud Private に組織ネットワークの外部からアクセスすることはできませんが、IBM Cloud Private は IKS クラスターにアクセスできるということを前提としてあります。したがって、IBM Cloud Private クラスターから VPN トンネルを起動すれば、IBM Cloud Private 上で稼働するサービスと IKS 上で稼働するサービスとの間に VPN トンネル経由の双方向通信をセットアップできます。

このパターンで使用するサンプル・アプリケーションには Watson Tone Analyzer を利用するために IBM Cloud が必要ですが、ここで紹介する次のようなパターンは、プライベート・クラスターとパブリック・クラスターを統合するシナリオのほとんどで使用できます。

  • VPN トンネルを使用してプライベート・クラウドとパブリック・クラウドを接続する
  • プライベート・クラスターとパブリック・クラスターの間でマイクロサービスを分散させながらも、マイクロサービス間の双方向接続を維持する
  • Istio を使用して、マルチクラスターのトラフィックをルーティングする

Flow

  1. guestbook アプリのユーザーがブラウザーを使用して、guestbook サービスが提供する Guestbook Web ページにパブリック・クラウドからアクセスします。
  2. ゲストがコメントを送信した場合、guestbook サービスは送信されたテキストのトーンに基づく感情アイコンを追加して、そのコメントをエンリッチする必要があります。したがって、guestbook サービスはトーンを分析するために analyzer サービスを呼び出し、送信されたテキストを渡します。guestbook サービスは、それがローカル・サービスであるかのように analyzer サービスを呼び出します (サービス/アプリはリモート・サービスをサポートするように変更されていません)。
  3. analyzer サービスはリモートのプライベート・クラウド上で稼働しているため、呼び出しが Istio によって VPN トンネル経由でプライベート・クラウドの Ingress ゲートウェイにルーティングされます。
  4. analyzer サービスが Watson Tone Analyzer サービスを呼び出し、受信したテキスト・ペイロードを渡します。これにより、パブリック・サービスからトーンの分析結果が返されます。
  5. analyzer サービスからのレスポンスが到着すると、guestbook アプリは送信されたテキストと一致する感情アイコンを Web ページ内のコメントに追加します。

Instructions

このパターンに取り組む準備はできましたか?アプリケーションを起動して使用する方法について詳しくは、README を参照してください。

Related Blogs

OSC東京 SpringにIBM Developer Advocateが登壇します!

みなさまこんにちは、IBM Developer AdvocateのTaijiです。 明日、2月22日はOSC東京 Springです! 私は14時よりJavaアプリをIKS(IBM Cloud上のK8s)へデプロイする方法の開設をデモ交えながらやらせて頂きます。 こちらの内容は、Code Patternsでも紹介しております。 Spring Boot マイクロサービスを Kubernetes 上にデプロイする ご存じない方も多いのですが、IBM Cloudの多くの部分は、実はオープンソースで構成されているんですよ😎 ご予定お繰り合わせの上、ぜひお越しくださいね🙋‍♂️ https://www.ospn.jp/osc2019-spring/ #osc19tk #TryIBMDev #IBM #IBMDeveloper

続けて読む OSC東京 SpringにIBM Developer Advocateが登壇します!

IBM Developer へようこそ

新しい IBM Developer へようこそ! 私たちはこの新しいプロジェクトに大いに張り切っていますが、まずは皆さんについて、つまり開発者についてお話ししたいと思います。

続けて読む IBM Developer へようこそ

Related Links

IBM Cloud Kubernetes Service

IBM Cloud 上の IBM Cloud Kubernetes クラスターに含まれる Docker コンテナー内でアプリの高可用性を維持できます。

IBM Cloud Private

IBM Cloud Private とコンテナー・テクノロジーによって、クラウド化を推進し、マルチクラウドの世界でイノベーションを生み出す方法を学んでください。

IBM Cloud Direct Link

IBM Cloud Direct Link は、IBM Cloud ネットワークの 4 つのオファリングから成るスイートで、世界中のあらゆる場所で使用できます。

Watson Tone Analyzer

このサービスを利用することで、テキストに反映された感情とコミュニケーション・スタイルを理解できます。

strongSwan

IPsec ベースのオープンソース VPN ソリューションです。

Istio

サービスを接続、保護、制御、観察するためのツールです。

Deploy a cloud-native microservices application on IBM Cloud Private

IBM Cloud Private プラットフォーム上にクラウド・ネイティブのマイクロサービス・アプリをインストールして、Kubernetes 上で実行する方法を説明しているチュートリアルです。

Single Service Mesh with Istio Against Multiple Hybrid Clusters

このブログ投稿で、Istio をマルチクラスターの中央制御プレーンとして使用する方法を説明しています。

Connecting private and public clusters with Istio

マルチクラスター環境内で Istio を使用することで、クラスター間でサービスを共有できます。