IBM Developer Japan Webサイトは2021年3月15日をもって終了となり、日本語コンテンツの一部は、オープンソースとして、提供予定です。 URLはこちら

Istioとは何か

こんにちは、JJ Asgharです。IBM Cloudのデベロッパー・アドボケイトです。 今日はIstioについてお話したいと思います。Istioはオープン・プラットフォームの独立したサービス・メッシュです。

トラフィック管理、ポリシー適用、テレメトリー収集を行います。Kubernetes、Nomad、Consul上で実行されます。今回はKubernetesに焦点を当てますが、ほとんどの内容がNomadやConsulにも当てはまります。

ビデオをお楽しみください。

サービス・メッシュとは?

まず、サービス・メッシュと呼ばれるものについてお話しましょう。簡単に言うと、サービス・メッシュとは、マイクロサービスのためのネットワークです。 サービスAとサービスBが対話できるようにし、その対話に関連する制御を行います。

What is a service mesh?

サービス・メッシュが大きくなるほど複雑になってくるため、AとBのような異なるサービス同士の対話を制御する手段が必要になります。そこでIstioの登場です。

Istioの機能

ではIstioの機能についてお話しましょう。まず、ロード・バランシング機能です。HTTP、TCPや任意のWebSocketのトラフィックで、サービスAとサービスBの間の対話や外部からの情報の取り込みを制御できます。

次に、きめ細かい制御機能です。ルール、再試行、フェイルオーバー、さらには故障注入も実行できます。特定の状況で、サービスBではなくサービスAだけと対話できるというような設定も行えます。

さらに、アクセス制御機能です。クラウドネイティブ・アプリケーションのポリシーが適切で適用可能であることを確認できます。

The features of Istio

最後に一番重要なのが可視性です。ロギングやグラフですべてが機能しているかどうか確認できます。これらはすべて無料でIstioと併せてインストールされます。自動メトリックで状態が希望通りかどうか確認できます。

Istioのコンポーネント

Pilot

ではIstioのコンポーネントを見てみましょう。まずPilotですが、Istioのサービス・メッシュを実際に動かすものです。ABテスト、カナリア・デプロイメントの管理、タイムアウトなど、すべてがうまく実行されているか確認する機能を持っています。つまり、Istioのドライバーです。

Pilot

Citadel

ではIstioアーキテクチャーの次のコンポーネントを見てみましょう。Citadelと呼ばれるものです。サービス・メッシュのセキュリティー面を司ります。CAとしての機能が内蔵されています。これにより必要に応じてサービスAとサービスBが対話できるようになります。サービス・メッシュとCitadelを通して暗号化されていないトラフィックをアップグレードし暗号化して通信できるようにします。

1つだったKubernetesクラスターを複数使うようになり、サービス・メッシュを全体に拡張して様々な情報をインターネットで送信するようになると保護が必要になります。この保護を行うのがCitadelです。

Citadel

Mixer

そして最後にMixerです。すべてのサイドカー、Istioで使われるすべての通信がここに集まります。すべてのテレメトリーを収集し、可視性での説明時に触れたグラフ表示ができるように、Pilotに送ります。

またMixerはプラグ可能なので、Istioの基本機能以外にも追加が可能です。実際に、Mixerを活用して自社アプリケーションを使えるようにしているサード・パーティーもあります。

Mixer

これがIstioの基本です。 Pilot、Mixer、そしてCitadelさらに詳しい内容についてはIBM Cloud BlogやDocsをご覧ください。 JJでした。またお会いしましょう。最後までご覧いただきありがとうございました。

JJ Asghar Developer Advocate