レイヤー7機能の使用
トラフィックフローにウェイポイントプロキシを追加することで、より多くのIstioの機能を有効にできます。ウェイポイントは、Kubernetes Gateway APIを使用して構成します。
ルートとポリシーのアタッチ
Gateway APIは、オブジェクト(ルートやゲートウェイなど)間の関係をアタッチメントという観点から定義します。
- ルートオブジェクト(例えばHTTPRouteなど)は、アタッチしたい親リソースを参照する方法を含んでいます。
- ポリシーオブジェクトは、メタリソースとみなされます。これは、標準的な方法でターゲットオブジェクトの動作を拡張するオブジェクトです。
以下の表は、各オブジェクトに対して設定されたアタッチメントのタイプを示しています。
トラフィックルーティング
ウェイポイントプロキシがデプロイされている場合、以下のトラフィックルートタイプを使用できます。
名前 | 機能ステータス | アタッチメント |
---|---|---|
HTTPRoute | ベータ | parentRefs |
TLSRoute | アルファ | parentRefs |
TCPRoute | アルファ | parentRefs |
これらのルートを使用して実装できる機能の範囲については、トラフィック管理ドキュメントを参照してください。
セキュリティ
ウェイポイントがインストールされていない場合は、レイヤー4セキュリティポリシーのみを使用できます。ウェイポイントを追加することで、以下のポリシーにアクセスできるようになります。
名前 | 機能ステータス | アタッチメント |
---|---|---|
AuthorizationPolicy (L7機能を含む) | ベータ | targetRefs |
リクエスト認証 | ベータ | targetRefs |
認可ポリシーに関する考慮事項
アンビエントモードでは、認証ポリシーはターゲット(ztunnelによる適用)またはアタッチ(ウェイポイントによる適用)のいずれかになります。認証ポリシーがウェイポイントにアタッチされるためには、ウェイポイント、またはそのウェイポイントを使用するServiceを参照するtargetRef
が必要です。
ztunnelはL7ポリシーを適用できません。L7属性に一致するルールを持つポリシーが、ワークロードセレクター(targetRef
によるアタッチではなく)でターゲットにされ、ztunnelによって適用される場合、DENY
ポリシーになることでフェイルセーフになります。
TCPのみのユースケースでポリシーをウェイポイントにアタッチする場合を含め、詳細については、L4ポリシーガイドを参照してください。
可観測性
Istioトラフィックメトリクスのフルセットは、ウェイポイントプロキシによってエクスポートされます。
拡張
ウェイポイントプロキシはEnvoyのデプロイであるため、サイドカーモードでEnvoyに利用可能な拡張メカニズムは、ウェイポイントプロキシでも利用可能です。
名前 | 機能ステータス | アタッチメント |
---|---|---|
WasmPlugin † | アルファ | targetRefs |
EnvoyFilter | アルファ | targetRefs |
† WebAssemblyプラグインでウェイポイントを拡張する方法の詳細はこちら。
拡張構成は、Gateway API定義によりポリシーとみなされます。
ルートまたはポリシーのスコープ設定
ルートまたはポリシーは、ウェイポイントプロキシを通過するすべてのトラフィック、または特定のサービスのみに適用するようにスコープを設定できます。
ウェイポイントプロキシ全体にアタッチ
ルートまたはポリシーをウェイポイント全体にアタッチして、それを使用するように登録されているすべてのトラフィックに適用するには、タイプに応じてparentRefs
またはtargetRefs
の値としてGateway
を設定します。
default
名前空間のdefault
という名前のウェイポイントに適用するようにAuthorizationPolicy
ポリシーをスコープするには
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: view-only
namespace: default
spec:
targetRefs:
- kind: Gateway
group: gateway.networking.k8s.io
name: default
action: ALLOW
rules:
- from:
- source:
namespaces: ["default", "istio-system"]
to:
- operation:
methods: ["GET"]
特定のサービスにアタッチ
ウェイポイント内の1つ以上の特定のサービスにルートをアタッチすることもできます。必要に応じて、parentRefs
またはtargetRefs
の値としてService
を設定します。
default
名前空間のreviews
サービスにreviews
HTTPRouteを適用するには
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: reviews
namespace: default
spec:
parentRefs:
- group: ""
kind: Service
name: reviews
port: 9080
rules:
- backendRefs:
- name: reviews-v1
port: 9080
weight: 90
- name: reviews-v2
port: 9080
weight: 10