広亨(たるさわひろゆき)Tweetサンプル・アプリケーション「Bookinfo」でIstioの基本的な機能を体験してみます。Bookinfoアプリケーション今回はIstioが提供しているサンプル・アプリケーション「Bookinfo」を利用して、Istioの機能の一端を体験してみましょう。Architecture、MSA)に基づき、4つのサービスから構成されています(図1)。MSAらしく各サービスはそれぞれ異なるプログラミング言語で実装されています(Polyglot)。各サービスの概略は、以下の通りです。Frontendサービスです。ユーザーからのリクエストを受け取ると、detailsサービスとreviewsサービスを呼び出して、それぞれ書籍情報とレビュー情報を入手し、Webページを返しますdetails:書籍情報を管理するサービスであり、Rubyで実装されていますreviews:書籍のレビュー投稿を管理するサービスであり、Javaで実装されています。ratingsサービスを呼び出して、書籍のレイティング(評価)を取得しますratings:書籍のレイティング情報を管理するサービスです。Errors」という書籍の情報とレビュー結果が表示されるというシンプルなものです。その一方で、Bookinfoは3つのバージョンのreviewsサービスの実装を包含しており、レイティングの表示内容は、バージョンごとに以下のように変わります。V1:レイティングを表示しない(図2)V2:レイティングを黒い星で表示する(図3)V3:レイティングを赤い星で表示する(図4)図2:レイティングを表示しないV1図3:レイティングを黒い星で表示するV2図4:レイティングを赤い星で表示するV3すなわち、レイティングが黒い星で表現されていたら、「V2のreviewsサービスが呼ばれているな」と直感的に分かります。トラフィック管理のデモンストレーションの確認に最適なアプリケーションとなっているのです。IstioのWebサイト(https://istio.io/)には、Bookinfoアプリケーションを利用して学習するためのドキュメントが公開されています。Managementのドキュメントを基にして、Istioの利用方法を解説していきます。作業の流れ実際にBookinfoアプリケーションを使う前に、次にあげる3つの準備作業が必要となります。Kubernetes環境(クラスターとデスクトップ)の準備Istioの導入Bookinfoアプリケーションの導入2018年10月時点で、Istioは、導入先のオーケストレーション・フレームワークとしてKubernetesとConsulをサポートしていますが、今回はKubernetesを利用します。これを含め、本稿では下記の環境を前提に説明を進めます。16.04KubernetesとIstioのいずれも、2018年10月時点での安定したバージョンを選択していますが、他のバージョンであっても大きな違いはありません。Kubernetesクラスターの作成手順は、各Kubernetesサービス独自の手順に基づいて実施する必要がありますが、それ以外についてはKubernetesのコマンド・ライン・インターフェースであるkubectlを介した、Kubernetesサービス実装に依存しない標準的な手順で実施いただけます。他のKubernetesサービスを利用した場合でも、操作手順や動作に違いはありません。Kubernetes環境(クラスターとデスクトップ)の準備ご利用されるKubernetesサービスの手順に基づいて、Kubernetesクラスターとデスクトップ環境を準備します。利用されるKubernetesサービスのマニュアルを参照の上で、環境をセットアップしてください。IstioのWebサイト(https://istio.io/docs/setup/kubernetes/)には、Kubernetesの各実装ごとにIstio導入のHints&Tipsが記載されていますので、これらの情報も確認しておくと良いでしょう。Service(以下、IKS)を前提に、Kubernetesデスクトップとクラスターのセットアップ手順を説明します。CloudとIKS、Kubernetesの操作に必要なコマンド・ライン・インターフェース(CLI)を導入します(註1)。最終的に、以下に挙げるコンポーネントが導入されます。Cloudのオンライン・マニュアル(コンソールのヘッダーに「資料」という名称で表示されています)の各ページのURLは変更される可能性があります。CLI」等適当な文字列で検索してみてください。Cloudの従量課金(PAYG)アカウントまたはサブスクリプション・アカウントをご用意ください。2018年10月時点、ライト・アカウントではKubernetesクラスターを作成することはできません)。Cloudコンソール(https://console.bluemix.net/)にアクセスし、ログインします。ダッシュボードが表示されますが、ヘッダー・メニューで「カタログ」をクリックします。表示されたカタログ・ページの左側のペインで「コンテナー」をクリックします(図5)。Service」タイルをクリックします(図6)。Service」をクリックKubernetesクラスター・ページが表示されます(図7)。右上あるいは右下に表示される「作成」ボタンをクリックします。図7:「作成」ボタンをクリックすると、新規クラスターの作成ページが表示されます(図8、図9)ので、必要項目を入力していきます。それぞれのフィールドの意味は次の通りです。フィールドの入力を終えたら、「作成」ボタンをクリックします。Cloudのリージョン(データセンターの集合体)を選びます。東京を選択しますクラスター・タイプ:無料と標準があります(東京リージョンは標準タイプしかありません)。Istioはそれなりにコンピューティング・リソースを必要とするので、標準を選択します可用性:可用性のレベルを指定します。データセンター障害に耐えうる複数ゾーンと、単一のデータセンターから成る単一ゾーンがあります。今回はテスト用途なので、単一ゾーンを選択します。Zone:データセンターを指定します。今回はTok04を選択します。Kubernetesのバージョン:Kubernetesのバージョンを選択します。今回は1.10.8を使用します。共有」)のいずれかを指定します。フレーバー:利用するマシンの仕様を指定します。RAM」を選択します。クラスター名:任意の名称を付与します。ここでは「tok04std」としています。入力を済ませて「作成」ボタンをクリックすると、画面が変わり、Kubernetesクラスターの詳細画面が表示されます(図10)。画面上部のクラスター名の横に、現在のクラスターの状況が表示され、「要求中」「デプロイ中」「保留中」など刻一刻と変化していきます。数分~十数分後、状況が「デプロイ中」から緑のインジケーターを伴った「通常」に変わったら、クラスター作成は正常に終了したことになります。図10:Kubernetesクラスターの詳細画面デスクトップ環境からIKSのKubernetesクラスターには、次のような流れで接続します。Cloudにログインします。Cloudのリージョン(データセンターの位置する組織)をセットします。東京はap-northリージョン(北アジア太平洋地域)に位置するので、次のようにコマンドを実行します。ap-north次にクラスター構成情報を取得します。<クラスター名>すると、Kubectlのコンテクスト情報を含むYAMLファイルが得られます。コマンド実行結果の標準出力メッセージを参考にして、環境変数に設定します(図11)。以上でIKSを用いたKubernetes環境の準備は整いました。エグゼクティブ・テクニカル・スペシャリストIBMソフトウェア製品(WebSphere)のエバンジェリスト、テクニカル・サポート、米IBMソフトウェア開発研究所所属の開発エンジニアを経て現職。Technologyメンバー。JTC1/SC38によるクラウドコンピューティングの国際標準策定に従事している。3回BookinfoデモでIstioを体感する2018/10/30サンプル・アプリケーション「Bookinfo」でIstioの基本的な機能を体験してみます。2回Istioの全貌2018/9/18Istioが備える特徴や提供する機能、またそれを実現するためのアーキテクチャーを紹介いたします。1回マイクロサービスとサービス・メッシュ(Istioが求められる背景)2018/8/3マイクロサービスによる巨大な超分散システムの運用管理ソリューションとして注目されているIstioが必要とされる背景を解説します。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。誠にありがとうございます。下記日程にて、メンテナンスを行います。ご理解いただけますよう、お願い申し上げます。状況により前後する場合がございます。※上記以外の会員機能(サイトへのログインなど)はご利用いただけます。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。