Help us understand the problem. What is going on with this article?

Istio入門 その1 -Istioとは?-

More than 1 year has passed since last update.

はじめに

Istioの全体像がわかるよう、数回に分けて入門してみます。今回はコンセプトやざっくりとしたアーキテクチャの話、次回からはサンプルのbookinfoアプリケーションを元に各機能を深掘りしていく予定です。

Istio入門シリーズ
* その1 -Istioとは?-
* その2 -Istio構築とサンプルアプリのデプロイ-
* その3 -Blue/Greenデプロイメントによるカナリアリリース-
* その4 -基礎から振り返る-

Istioとは?

Istio1とはマイクロサービスをセキュアにマネージメントするためのOSSで、Kubernetes同様CNCFの一員です。

マイクロサービス化が進むにつれてA/Bテストやカナリーリリースに20%のアクセスのだけ割り当てたいなどの要望により、サービスメッシュ2はより大きく、より複雑になりました。Istioは、このような「複雑なサービスメッシュの管理が追いつかない」という課題を解決するため開発されています。主な機能としては、サービス間の認証やモニタリング、L7での柔軟なロードバランシングが提供されています。現在はKubernetesにのみ対応していますが、将来的には他のプラットフォームにも対応するようです。(現在の0.2系でも鍵管理などの一部機能はベアメタルに対応しています)

また、Istioのコンポーネントは、サービスのサイドカーとしてPodにデプロイされるためサービスコードを修正する必要がありません。これによって、アプリケーション開発者に負担をかけることなく、運用者がシステムを柔軟にマネージメントできるという利点があります。

システム構成

image.png

Istioのサービスメッシュは上記の図のようにデータプレーンコントロールプレーンの2つに分けることができます。
データプレーンはプロキシサーバによるマイクロサービス間の通信の管理、コントロールプレーンではポリシーやプロキシ設定の管理を行なっています。

Istioを構成するコンポーネント

  • Envoy: サービスメッシュのイン/アウトバウントの全てのトラフィックを管理するプロキシサーバで、KubernetesではPodのサイドカーとしてデプロイします。ちなみに、Envoy3は素のままではなく、Istio用に拡張されたものを使用しています。
  • Mixer: Envoyを通して各サービスのデータを収集し、その情報を元にアクセスコントロールを行うコンポーネントです。プラグインモデルを取っており、柔軟なカスタマイズが可能になっています。
  • Pilot: サービスディスカバリやトラフィック管理などを担当しています。Kubernetesの場合、サービスディスカバリはWatch APIによるEnvoyのステータス変更を検知することで実現しています。
  • Istio-Auth: KubernetesのService Accountを利用したユーザ認証や、サービス間のTLS相互認証を行います。この認証を利用することで、ポリシーベースでサービスメッシュを管理することができます。また、将来的にはFGAC4に対応するようです。

参考リンク集

おわりに

今回はIstioのコンセプトとアーキテクチャの概要をご紹介しました。最後に登場したIstio-AuthはSPIFFEを利用しているのですが、こちらの詳細については@hiyosiさんが解説されます。それでは、ひき続きZ Labアドベントカレンダーをお楽しみください。


  1. Istioはギリシャ語でを意味する 

  2. マイクロサービスが互いに通信するネットワークのこと 

  3. これまたCNCFのプロジェクトの一つで、C++で書かれたEnvoyというOSSのプロキシ 

  4. Fine-Granted Access Controlの略。詳細な権限コントロールができる機能で、サービスに対して誰がどのデータにアクセスでき、どのようなアクション(read/write)を実行するかを指定できる 

Ladicle
Software Engineer I'm developing Kubernetes as a Service :)
https://ladicle.com
zlab
技術で新しい世界へシフトする。
https://zlab.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした