用語集
A
- Ambient(アンビエント)
アンビエントモードとは、ノードごと、およびオプションで名前空間ごとのコンポーネントで構成されるデータプレーンモードのことです。Istio がアンビエントモードでインストールされたときに作成されるメッシュは、アンビエントメッシュと呼ぶことができます。アンビエントモードは、サイドカーモードデプロイメントの代替です。
- Annotation(アノテーション)
アノテーションとは、例えば Pod など、リソースに付与されたKubernetes アノテーションのことです。有効な Istio 固有のアノテーションのリストについては、リソースアノテーションを参照してください。
- Attribute(属性)
属性は、メッシュ内で実行されているサービスのランタイム動作を制御します。属性は、イングレスとエグレスのトラフィック、およびこのトラフィックが発生する環境を記述する名前付きの型付きメタデータの要素です。Istio 属性は、API リクエストのエラーコード、API リクエストのレイテンシ、または TCP 接続の元の IP アドレスなど、特定の情報を提供します。例えば、次のようになります。
request.path: xyz/abc request.size: 234 request.time: 12:34:56.789 04/17/2017 source.ip: 192.168.0.1 destination.workload.name: example
属性は、Istio のポリシーとテレメトリ機能で使用されます。
- Auto mTLS
Auto mTLS は、クライアントとサーバーの両方が相互 TLS トラフィックを処理できる接続で、相互 TLS トラフィックを送信するようにクライアント側のプロキシを自動的に構成する Istio の機能です。Istio は、クライアントまたはサーバーのどちらかがそのようなトラフィックを処理できない場合、プレーンテキストにダウングレードします。
C
- Cluster(クラスター)
クラスターとは、コンテナ化されたアプリケーションを実行するコンピューティングノードのセットです。通常、クラスターを構成するコンピューティングノードは、互いに直接到達できます。クラスターは、ルールまたはポリシーによって外部アクセスを制限します。
- CNI
Container Network Interface (CNI) は、Kubernetes がクラスターネットワークを構成するために使用する標準です。これは、次の 2 つのタイプのプラグインを使用して実装されます。
- ネットワークインターフェースを作成するインターフェースプラグイン。これはクラスターオペレーターによって提供されます。
- 作成されたインターフェースを構成できるチェーンプラグイン。これは、クラスターにインストールされたソフトウェアによって提供できます。
Istio は、サイドカーモードとアンビエントモードの両方で、CNI 標準に従うすべての CNI 実装で動作します。
メッシュトラフィックのリダイレクトを構成するために、Istio にはCNI ノードエージェントが含まれています。このエージェントは、構成済みのすべての CNI インターフェースプラグインの後に実行されるチェーン CNI プラグインをインストールします。
CNI ノードエージェントは、サイドカーモードではオプションであり、アンビエントモードでは必須です。
- Control Plane(コントロールプレーン)
コントロールプレーンとは、メッシュまたはメッシュのサブセットを構成して、ワークロードインスタンス間の通信を管理する一連のシステムサービスのことです。
- CRDs
カスタムリソース定義 (CRDs) は、デフォルトの Kubernetes API の拡張機能です。Istio は、Kubernetes 以外の Istio デプロイメントの場合でも、構成に Kubernetes CRD API を使用します。
D
- Data Plane(データプレーン)
データプレーンとは、ワークロードインスタンス間のトラフィックを直接処理およびルーティングするメッシュの部分のことです。
サイドカーモードでは、Istio のデータプレーンは、メッシュサービスが送受信するすべてのトラフィックを仲介および制御するためにサイドカーとしてデプロイされたEnvoyプロキシを使用します。
アンビエントモードでは、Istio のデータプレーンは、メッシュサービスが送受信するすべてのトラフィックを仲介および制御するために DaemonSet としてデプロイされたノードレベルのztunnelプロキシを使用します。
- Data Plane Mode(データプレーンモード)
データプレーンモードとは、データプレーンが使用しているデプロイメントモードのことです。Istio は現在、サイドカーモード、アンビエントモード、およびプロキシレスの 3 つのモードをサポートしています。
- Destination(宛先)
E
- eBPF
eBPF とは、オペレーティングシステムのカーネルなどの特権コンテキストでプログラムを実行できるテクノロジーです。カーネルのソースコードを変更したり、カーネルモジュールをロードしたりすることなく、カーネルの機能を実行時に安全かつ効率的に拡張するために使用されます。
- Envoy
Istio がサービスメッシュ内のすべてのサービスのインバウンドおよびアウトバウンドトラフィックを仲介するために使用する高性能プロキシです。Envoy の詳細については、こちらをご覧ください。
- External Control Plane(外部コントロールプレーン)
外部コントロールプレーンとは、独自のクラスターまたはその他のインフラストラクチャで実行されているメッシュワークロードを外部から管理するコントロールプレーンのことです。コントロールプレーン自体は、コントロール対象のメッシュの一部であるクラスターではなく、クラスターにデプロイできます。その目的は、コントロールプレーンをメッシュのデータプレーンからきれいに分離することです。
F
- Failure Domain(障害ドメイン)
障害ドメインとは、重要なデバイスまたはサービスで問題が発生した場合に悪影響を受ける、コンピューティング環境の物理的または論理的なセクションのことです。
Istio デプロイメントの場合、障害ドメインにはプラットフォームの複数のアベイラビリティーゾーンを含めることができます。
G
- Gateway
ゲートウェイとは、メッシュのエッジにデプロイされたスタンドアロンの Istio プロキシです。ゲートウェイは、メッシュへのイントラフィックまたはメッシュからのアウトトラフィックをルーティングするために使用されます。
Istio
Gateway
CR は、ゲートウェイデプロイメントの公開ポートを構成するために使用されます。- Gateway API
Kubernetes Gateway API は、Kubernetes でのトラフィックルーティング用の構成 API です。これは、Kubernetes イングレス、ロードバランシング、およびサービスメッシュ API の次世代を代表し、Istio の従来の API からの学習を考慮して設計されています。
H
- HBONE
HBONE (または HTTP-Based Overlay Network Environment) は、Istio コンポーネント間で使用される安全なトンネリングプロトコルです。HBONE の詳細についてはこちらをご覧ください。
I
- Identity(ID)
ID は、基本的なセキュリティインフラストラクチャの概念です。Istio の ID モデルは、ファーストクラスのワークロード ID に基づいています。サービス間通信の開始時に、両当事者は相互認証の目的で ID 情報を使用して資格情報を交換します。
クライアントは、サーバーがサービスを実行する権限を持っているかどうかを判断するために、セキュアな名前情報に対してサーバーの ID を確認します。
サーバーは、構成された承認ポリシーに基づいて、クライアントがアクセスできる情報を判断するために、クライアントの ID を確認します。
ID を使用すると、サーバーは情報にアクセスした時間や、特定のクライアントがアクセスした情報を監査できます。また、クライアントが使用したサービスに基づいてクライアントに請求したり、料金を支払わなかったクライアントがサービスにアクセスするのを拒否したりすることもできます。
Istio の ID モデルは柔軟で粒度が高く、人間のユーザー、個々のサービス、またはサービスのグループを表すことができます。ファーストクラスのサービス ID を持たないプラットフォームでは、Istio は、サービス名など、サービスインスタンスをグループ化できる他の ID を使用できます。
Istio は、異なるプラットフォームで次のサービス ID をサポートしています。
Kubernetes: Kubernetes サービスアカウント
GKE/GCE: GCP サービスアカウント
GCP: GCP サービスアカウント
AWS: AWS IAM ユーザー/ロールアカウント
オンプレミス (非 Kubernetes): ユーザーアカウント、カスタムサービスアカウント、サービス名、Istio サービスアカウント、または GCP サービスアカウント。カスタムサービスアカウントは、顧客の ID ディレクトリが管理する ID と同様に、既存のサービスアカウントを指します。
- Injection(インジェクション)
インジェクションまたはサイドカーインジェクションとは、作成時に pod の仕様を変更するためにミューテーションウェブフックを使用することを指します。
インジェクションを使用して、メッシュサービスの Envoy サイドカー構成を追加したり、ゲートウェイの Envoy プロキシを構成したりできます。
詳細については、サイドカーのインストールを参照してください。
- IO
Istio Operator カスタムリソースを参照してください
- IOP
Istio Operator カスタムリソースを参照してください
- Istio Operator カスタムリソース
Istio Operator カスタムリソースは、
IOP
またはIO
の短縮形を使用して参照されることが多く、istioctl install
コマンドまたはクラスタ内オペレーターを使用してインストールする場合に Istio インストールを構成するために使用されるカスタムリソースです。- Istiod
Istiod コンポーネントは、Pilot、Galley、Citadel、およびサイドカーインジェクターの機能をカプセル化する統合コントロールプレーンバイナリです。
M
- Managed Control Plane(マネージドコントロールプレーン)
マネージドコントロールプレーンとは、クラウドプロバイダーが顧客向けに管理する外部コントロールプレーンのことです。マネージドコントロールプレーンは、ユーザーデプロイメントの複雑さを軽減し、通常、ある程度のパフォーマンスと可用性を保証します。
- Mesh Federation(メッシュフェデレーション)
メッシュフェデレーションとは、メッシュ間でサービスを公開し、メッシュ境界を越えた通信を可能にすることです。各メッシュは、1 つ以上の他のメッシュが公開されたサービスを利用できるように、サービスのサブセットを公開できます。メッシュフェデレーションを使用すると、マルチメッシュデプロイメントでメッシュ間の通信を有効にできます。
- Micro-Segmentation(マイクロセグメンテーション)
マイクロセグメンテーションは、クラウド環境でセキュアなゾーンを作成し、ワークロードを互いに分離して個別に保護できるようにするセキュリティ技術です。
- マルチメッシュ
マルチメッシュは、2つ以上のサービスメッシュで構成されるデプロイメントモデルです。各メッシュは、名前付けとIDに関して独立した管理を持ちますが、メッシュフェデレーションを通じてメッシュ間でサービスを公開できます。結果として得られるデプロイメントがマルチメッシュデプロイメントです。
- マルチクラスタ
- 相互TLS認証
相互TLSは、組み込みのIDおよびクレデンシャル管理による強力なサービス間認証を提供します。相互TLS認証の詳細。
N
- 名前空間の同一性
マルチクラスタメッシュ内では、名前空間の同一性が適用され、特定の名前を持つすべての名前空間は同じ名前空間と見なされます。複数のクラスタに同じ名前空間名を持つ
Service
が含まれている場合、それらは単一の結合されたサービスとして認識されます。デフォルトでは、トラフィックは、特定のサービスに対してメッシュ内のすべてのクラスタ間でロードバランスされます。数値が一致するポートは、結合された
サービスポート
と見なされるために、同じポート名を持っている必要があります。- ネットワーク
Istioは、一般的な接続性に基づいてネットワークの簡略化された定義を使用します。ワークロードインスタンスは、ゲートウェイなしで直接通信できる場合、同じネットワーク上にあります。
O
- オペレーター
オペレーターは、Kubernetesアプリケーションをパッケージ化、デプロイ、および管理する方法です。詳細については、オペレーターパターンを参照してください。
P
- パイロット
サービスディスカバリ、ロードバランシング、ルーティングを担当するEnvoyプロキシをプログラムするIstioコンポーネントです。
- ポッド
ポッドは、(Dockerコンテナなどの)1つ以上のコンテナのグループであり、共有ストレージとネットワーク、およびコンテナを実行する方法の仕様を備えています。ポッドは、IstioのKubernetesデプロイメントにおけるワークロードインスタンスです。
- プライマリクラスタ
プライマリクラスタは、コントロールプレーンを持つクラスタです。単一のメッシュは、HAまたはレイテンシを削減するために複数のプライマリクラスタを持つことができます。プライマリクラスタは、リモートクラスタのコントロールプレーンとして機能できます。
- プロキシレス
プロキシレスとは、メッシュ機能をアプリケーションに直接移動させることで、プロキシなしで実行されるデータプレーンモードを指します。現在、IstioはgRPCフレームワークでメッシュ機能を有効にするプロキシレスgRPCモードをサポートしています。
R
- リモートクラスタ
リモートクラスタは、クラスタの外部にあるコントロールプレーンに接続するクラスタです。リモートクラスタは、プライマリクラスタで実行されているコントロールプレーンまたは外部コントロールプレーンに接続できます。
- ルーティングルール
仮想サービスで構成するルーティングルールは、サービスメッシュ内のリクエストがたどるパスを定義します。ルーティングルールを使用すると、仮想サービスのホストにアドレス指定されたトラフィックを特定の宛先ワークロードにルーティングする条件を定義できます。ルーティングルールを使用すると、A/Bテスト、カナリアロールアウト、パーセンテージベースのトラフィック分割による段階的なロールアウトなどのタスクのトラフィックを制御できます。
S
- セキュアL4オーバーレイ
「セキュアオーバーレイ」または「セキュアL4オーバーレイ」という用語は、ambientメッシュでztunnelプロキシを介して実装されるL4ネットワーキング機能のセットをまとめて説明するために使用されます。トランスポート層では、これはHBONEと呼ばれるHTTP CONNECTベースのトラフィックトンネリングプロトコルを介して実装されます。
- セキュアネーミング
サービス名と、サービスを実装するワークロードインスタンスを実行する権限を持つワークロードインスタンスプリンシパル間のマッピングを提供します。
- サービス
サービスメッシュ内の関連する動作の区切られたグループです。サービスは、サービス名を使用して識別され、ロードバランシングやルーティングなどのIstioポリシーはこれらの名前を使用して適用されます。サービスは通常、1つ以上のサービスエンドポイントによって具現化され、複数のサービスバージョンで構成される場合があります。
- サービスコンシューマー
サービスを使用しているエージェント。
- サービスエンドポイント
サービスのネットワーク到達可能なマニフェステーション。ワークロードインスタンスはサービスエンドポイントを公開しますが、すべてのサービスがサービスエンドポイントを持っているわけではありません。
- サービスメッシュ
サービスメッシュまたは単にメッシュとは、ワークロードインスタンス間の管理、監視可能、安全な通信を可能にするインフラストラクチャレイヤーです。
サービス名と名前空間を組み合わせると、メッシュ内で一意になります。たとえば、マルチクラスタメッシュでは、
cluster-1
のfoo
名前空間のbar
サービスは、cluster-2
のfoo
名前空間のbar
サービスと同じサービスと見なされます。IDはサービスメッシュ内で共有されるため、ワークロードインスタンスは、同じサービスメッシュ内の他のワークロードインスタンスとの通信を認証できます。
- サービス名
サービスメッシュ内でサービスを一意に識別する名前。サービスは、そのIDを維持したまま名前を変更することはできません。サービスには複数のバージョンがある場合がありますが、サービス名はバージョンに依存しません。
- サービスオペレーター
構成状態を操作し、さまざまなダッシュボードを介してサービスの正常性を監視することにより、サービスメッシュ内でサービスを管理するエージェント。
- サービスプロデューサー
サービスを作成するエージェント。
- サービスレジストリ
Istioは、サービスメッシュで実行されているサービスと、対応するサービスエンドポイントのセットを含む内部サービスレジストリを維持します。Istioは、サービスレジストリを使用してEnvoy構成を生成します。
Istioはサービスディスカバリを提供しませんが、ほとんどのサービスは、基盤となるプラットフォーム(Kubernetes、Consul、プレーンDNS)でディスカバリされたサービスを反映するパイロットアダプターによってレジストリに自動的に追加されます。追加のサービスは、
ServiceEntry
構成を使用して手動で登録することもできます。- サービスバージョン
サービスの明確なバリアントであり、通常はワークロードバイナリの異なるバージョンによってバックアップされます。複数のサービスバージョンが使用される一般的なシナリオには、A/Bテストとカナリアロールアウトが含まれます。
- Sidecar
一般的に、サイドカーは、追加機能を提供するためにプライマリアプリケーションと並行して実行されるコンテナです。Istioでは、サイドカーモードは、各ポッドとともにEnvoyプロキシを実行するデータプレーンモードです。
- ソース
Envoyプロキシの下流クライアント。サービスメッシュ内では、ソースは通常ワークロードですが、イングレストラフィックのソースには、ブラウザやモバイルアプリなどの他のクライアントが含まれる場合があります。
- SPIFFE
Secure Production Identity Framework For Everyone(SPIFFE)プロジェクトは、Webベースのサービス間の通信を識別および保護するためのフレームワークと一連の標準を定義しています。
T
- TLSオリジネーション
TLSオリジネーションは、Istioプロキシ(サイドカーまたはイグレスゲートウェイ)が暗号化されていない内部HTTP接続を受け入れ、リクエストを暗号化してから、シンプルまたは相互TLSを使用して保護されたHTTPSサーバーに転送するように構成されている場合に発生します。これは、イングレスプロキシが受信TLS接続を受け入れ、TLSを復号化し、暗号化されていないリクエストを内部メッシュサービスに渡すTLS終端の反対です。
- トラストドメイン
トラストドメインは、システムの信頼のルートに対応し、ワークロードIDの一部です。
Istioは、トラストドメインを使用して、メッシュ内のすべてのIDを作成します。たとえば、
spiffe://mytrustdomain.com/ns/default/sa/myname
では、サブストリングmytrustdomain.com
は、ワークロードがmytrustdomain.com
というトラストドメインからのものであることを指定します。クラスタが同じ信頼のルートを共有している限り、マルチクラスタメッシュでは1つ以上のトラストドメインを持つことができます。
- トラストドメインの移行
Istioメッシュのトラストドメインを変更するプロセス。
W
- ウェイポイント
ウェイポイントは、ambientモードのレイヤー7プロキシコンポーネントです。ウェイポイントは通常、名前空間ごとに実行され、その名前空間に入るすべてのトラフィックを処理します。
- ワークロード
サービスメッシュアプリケーションの機能を配信するためにオペレーターによってデプロイされるバイナリ。ワークロードには、名前、名前空間、および一意のIDがあります。これらのプロパティは、次の属性を使用して、ポリシーおよびテレメトリ構成で使用できます。
source.workload.name
、source.workload.namespace
、source.workload.uid
destination.workload.name
、destination.workload.namespace
、destination.workload.uid
Kubernetesでは、ワークロードは通常Kubernetesデプロイメントに対応し、ワークロードインスタンスはデプロイメントによって管理される個々のポッドに対応します。
- ワークロードインスタンス
ワークロードのバイナリの単一のインスタンス化。ワークロードインスタンスは、ゼロ個以上のサービスエンドポイントを公開でき、ゼロ個以上のサービスを消費できます。
ワークロードインスタンスには、いくつかのプロパティがあります
- 名前と名前空間
- 一意のID
- IPアドレス
- ラベル
- プリンシパル
これらのプロパティは、多数の
source.*
およびdestination.*
属性を使用して、ポリシーおよびテレメトリ構成で使用できます。- ワークロードインスタンスプリンシパル
ワークロードインスタンスが実行される検証可能な権限。Istioのサービス間認証は、ワークロードプリンシパルを生成するために使用されます。デフォルトでは、ワークロードプリンシパルはSPIFFE ID形式に準拠しています。
ワークロードインスタンスプリンシパルは、
source.principal
およびdestination.principal
属性を使用して、ポリシーおよびテレメトリ構成で使用できます。
Z
- ztunnel
Ztunnelとは、アンビエントデータプレーンモードのノードプロキシコンポーネントを指します。Ztunnelは各ノード上で実行され、HBONEプロトコルを使用してトラフィックを安全に伝送します。
詳細については、アンビエントデータプレーンのドキュメントを参照してください。