1.2. Service Mesh リリースノート

1.2.1. 多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

1.2.2. 新機能および拡張機能

今回のリリースでは、以下のコンポーネントおよび概念に関連する拡張機能が追加されました。

1.2.2.1. Red Hat OpenShift Service Mesh バージョン 2.4.2 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.1.1. Red Hat OpenShift Service Mesh バージョン 2.4.2 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.16.7

Envoy プロキシー

1.24.10

Jaeger

1.42.0

Kiali

1.65.7

1.2.2.2. Red Hat OpenShift Service Mesh バージョン 2.4.1 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.2.1. Red Hat OpenShift Service Mesh バージョン 2.4.1 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.16.5

Envoy プロキシー

1.24.8

Jaeger

1.42.0

Kiali

1.65.7

1.2.2.3. Red Hat OpenShift Service Mesh バージョン 2.4 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.3.1. Red Hat OpenShift Service Mesh バージョン 2.4 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.16.5

Envoy プロキシー

1.24.8

Jaeger

1.42.0

Kiali

1.65.6

1.2.2.3.2. クラスター全体のデプロイメント

この機能拡張により、クラスター全体のデプロイメントの一般利用可能なバージョンが導入されます。クラスター全体のデプロイメントには、クラスター全体のリソースを監視する Service Mesh Control Plane が含まれます。コントロールプレーンは、すべての namespace で単一のクエリーを使用して、メッシュ設定に影響を与える各 Istio または Kubernetes リソースの種類を監視します。クラスター全体のデプロイメントでコントロールプレーンが実行するクエリーの数を減らすと、パフォーマンスが向上します。

1.2.2.3.3. ディスカバリーセレクターのサポート

この機能強化により、meshConfig.discoverySelectors フィールドの一般利用可能なバージョンが導入され、これをクラスター全体のデプロイメントで使用して、サービスメッシュコントロールプレーンが検出できるサービスを制限できます。

spec:
  meshConfig
    discoverySelectors:
    - matchLabels:
        env: prod
        region: us-east1
    - matchExpressions:
      - key: app
        operator: In
        values:
          - cassandra
          - spark
1.2.2.3.4. cert-manager istio-csr との統合

この更新により、Red Hat OpenShift Service Mesh は cert-manager コントローラーおよび istio-csr エージェントと統合されます。cert-manager は、証明書と証明書発行者を Kubernetes クラスター内のリソースタイプとして追加し、それらの証明書の取得、更新、使用のプロセスを簡素化します。cert-manager は、Istio の中間 CA 証明書を提供し、ローテーションします。istio-csr との統合により、ユーザーは Istio プロキシーからの署名証明書要求を cert-manager に委任できます。ServiceMeshControlPlane v2.4 は cert-manager によって提供された CA 証明書を cacerts シークレットとして受け入れます。

注記

cert-manager および istio-csr との統合は、IBM Power、IBM Z、および {linuxoneProductName} ではサポートされていません。

1.2.2.3.5. 外部認証システムとの統合

この機能強化により、AuthorizationPolicy リソースの action:CUSTOM フィールドを使用して、Red Hat OpenShift Service Mesh を外部認可システムと統合する一般に利用可能な方法が導入されました。envoyExtAuthzHttp フィールドを使用して、アクセス制御を外部認証システムに委任します。

1.2.2.3.6. 外部 Prometheus インストールとの統合

この機能拡張により、Prometheus 拡張プロバイダーの一般利用可能なバージョンが導入されます。spec.meshConfig 仕様で extensionProviders フィールドの値を prometheus に設定することで、OpenShift Container Platform モニタリングスタックまたはカスタム Prometheus インストールにメトリックを公開できます。テレメトリーオブジェクトは、トラフィックメトリックを収集するように Istio プロキシーを設定します。Service Mesh は、Prometheus メトリックの Telemetry API のみをサポートします。

spec:
  meshConfig:
    extenstionProviders:
    - name: prometheus
      prometheus: {}
---
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
  name: enable-prometheus-metrics
spec:
  metrics:
  - providers:
    - name: prometheus
1.2.2.3.7. シングルスタック IPv6 のサポート

この機能拡張により、シングルスタック IPv6 クラスターの一般利用可能なサポートが導入され、より広範囲の IP アドレスへのアクセスが提供されます。デュアルスタック IPv4 または IPv6 クラスターはサポートされていません。

注記

シングルスタック IPv6 サポートは、IBM Power、IBM Z、および {linuxoneProductName} では利用できません。

1.2.2.3.8. OpenShift Container Platform Gateway API のサポート
重要

OpenShift Container Platform Gateway API のサポートはテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

この機能強化により、OpenShift Container Platform Gateway API の更新されたテクノロジープレビューバージョンが導入されます。デフォルトでは、OpenShift Container Platform Gateway API は無効になっています。

1.2.2.3.8.1. OpenShift Container Platform Gateway API の有効化

OpenShift Container Platform Gateway API を有効にするには、ServiceMeshControlPlane リソースの techPreview.gatewayAPI 仕様で、enabled フィールドの値を true に設定します。

spec:
  techPreview:
    gatewayAPI:
      enabled: true

以前は、ゲートウェイ API を有効にするために環境変数が使用されていました。

spec:
  runtime:
    components:
      pilot:
        container:
          env:
            PILOT_ENABLE_GATEWAY_API: "true"
            PILOT_ENABLE_GATEWAY_API_STATUS: "true"
            PILOT_ENABLE_GATEWAY_API_DEPLOYMENT_CONTROLLER: "true"
1.2.2.3.9. インフラストラクチャーノードへのコントロールプレーンのデプロイメント

Service Mesh コントロールプレーンのデプロイメントが OpenShift インフラストラクチャーノードでサポートされ、文書化されるようになりました。詳細は、以下のドキュメントを参照してください。

  • すべての Service Mesh コントロールプレーンコンポーネントをインフラストラクチャーノード上で実行するための設定
  • 個別の Service Mesh コントロールプレーンコンポーネントをインフラストラクチャーノード上で実行するための設定
1.2.2.3.10. Istio 1.16 サポート

Service Mesh 2.4 は Istio 1.16 に基づいており、新機能と製品の機能強化をもたらします。多くの Istio 1.16 機能がサポートされていますが、次の例外に注意する必要があります。

  • サイドカーの HBONE プロトコルは実験的な機能であり、サポートされていません。
  • ARM64 アーキテクチャー上のサービスメッシュはサポートされていません。
  • OpenTelemetry API は引き続きテクノロジープレビュー機能です。

1.2.2.4. Red Hat OpenShift Service Mesh バージョン 2.3.6 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.4.1. Red Hat OpenShift Service Mesh バージョン 2.3.6 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.14.5

Envoy プロキシー

1.22.11

Jaeger

1.42.0

Kiali

1.57.10

1.2.2.5. Red Hat OpenShift Service Mesh バージョン 2.3.5 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.5.1. Red Hat OpenShift Service Mesh バージョン 2.3.5 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.14.5

Envoy プロキシー

1.22.9

Jaeger

1.42.0

Kiali

1.57.10

1.2.2.6. Red Hat OpenShift Service Mesh バージョン 2.3.4 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.6.1. Red Hat OpenShift Service Mesh バージョン 2.3.4 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.14.6

Envoy プロキシー

1.22.9

Jaeger

1.42.0

Kiali

1.57.9

1.2.2.7. Red Hat OpenShift Service Mesh バージョン 2.3.3 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.7.1. Red Hat OpenShift Service Mesh バージョン 2.3.3 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.14.5

Envoy プロキシー

1.22.9

Jaeger

1.42.0

Kiali

1.57.7

1.2.2.8. Red Hat OpenShift Service Mesh バージョン 2.3.2 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.8.1. Red Hat OpenShift Service Mesh バージョン 2.3.2 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.14.5

Envoy プロキシー

1.22.7

Jaeger

1.39

Kiali

1.57.6

1.2.2.9. Red Hat OpenShift Service Mesh バージョン 2.3.1 の新機能

Red Hat OpenShift Service Mesh の本リリースには、新機能の導入、CVE (Common Vulnerabilities and Exposures) への対応、バグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.9.1. Red Hat OpenShift Service Mesh バージョン 2.3.1 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.14.5

Envoy プロキシー

1.22.4

Jaeger

1.39

Kiali

1.57.5

1.2.2.10. Red Hat OpenShift Service Mesh バージョン 2.3 の新機能

Red Hat OpenShift Service Mesh の本リリースには、新機能の導入、CVE (Common Vulnerabilities and Exposures) への対応、バグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.10.1. Red Hat OpenShift Service Mesh バージョン 2.3 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.14.3

Envoy プロキシー

1.22.4

Jaeger

1.38

Kiali

1.57.3

1.2.2.10.2. 新しい Container Network Interface (CNI) DaemonSet コンテナーと ConfigMap

openshift-operators namespace には、新しい istio CNI DaemonSet istio-cni-node-v2-3、新しい ConfigMap リソース、istio-cni-config-v2-3 が含まれています。

Service Mesh Control Plane 2.3 にアップグレードすると、既存の istio-cni-node DaemonSet は変更されず、新しい istio-cni-node-v2-3 DaemonSet が作成されます。

この名称変更は、以前のリリースや、以前のリリースを使用してデプロイされた Service Mesh Control Plane に関連付けられた istio-cni-node CNI DaemonSet には影響しません。

1.2.2.10.3. ゲートウェイ挿入のサポート

このリリースでは、ゲートウェイ挿入の一般利用可能なサポートが導入されています。ゲートウェイ設定は、サービスワークロードとともに実行するサイドカー Envoy プロキシーではなく、メッシュのエッジで実行するスタンドアロン Envoy プロキシーに適用されます。これにより、ゲートウェイオプションのカスタマイズ機能が有効になります。ゲートウェイ挿入を使用する場合は、ゲートウェイプロキシーを実行する namespace にリソース (ServiceDeploymentRole、および RoleBinding) を作成する必要があります。

1.2.2.10.4. Istio 1.14 サポート

Service Mesh 2.3 は Istio 1.14 に基づいており、新機能と製品の機能強化をもたらします。多くの Istio 1.14 機能がサポートされていますが、次の例外に注意する必要があります。

  • ProxyConfig API はサポートされていますが、image フィールドは例外です。
  • Telemetry API はテクノロジープレビュー機能です。
  • SPIRE ランタイムはサポートされていない機能です。
1.2.2.10.5. OpenShift Service Mesh Console
重要

OpenShift Service Mesh コンソールはテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

このリリースでは、Kiali インターフェイスを OpenShift Web コンソールに直接統合する OpenShift Container Platform Service Mesh Console のテクノロジープレビューバージョンが導入されています。追加情報は、OpenShift Service Mesh コンソールの紹介 (テクノロジープレビュー) を参照してください。

1.2.2.10.6. クラスター全体のデプロイメント
重要

クラスター全体のデプロイメントは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

このリリースでは、テクノロジープレビュー機能としてクラスター全体のデプロイメントが導入されています。クラスター全体のデプロイメントには、クラスター全体のリソースを監視する Service Mesh Control Plane が含まれます。コントロールプレーンは、すべての namespace で単一のクエリーを使用して、メッシュ設定に影響を与える各 Istio または Kubernetes リソースの種類を監視します。対照的に、マルチテナントアプローチでは、リソースの各種類で namespace ごとにクエリーを使用します。クラスター全体のデプロイメントでコントロールプレーンが実行するクエリーの数を減らすと、パフォーマンスが向上します。

注記

このクラスター全体のデプロイメントドキュメントは、SMCP v2.3 を使用してデプロイメントされたコントロールプレーンにのみ適用されます。SMCP v2.3 を使用して作成されたクラスター全体のデプロイメントは、SMCP v2.4 を使用して作成されたクラスター全体のデプロイメントと互換性がありません。

1.2.2.10.6.1. クラスター全体のデプロイメントの設定

次の ServiceMeshControlPlane オブジェクトの例では、クラスター全体のデプロイを設定します。

クラスター全体のデプロイメント用に SMCP を作成する場合、ユーザーは cluster-admin ClusterRole に属している必要があります。SMCP がクラスター全体のデプロイメント用に設定されている場合は、それがクラスター内の唯一の SMCP である必要があります。コントロールプレーンモードをマルチテナントからクラスター全体 (またはクラスター全体からマルチテナント) に変更することはできません。マルチテナントコントロールプレーンがすでに存在する場合は、それを削除して、新しいコントロールプレーンを作成します。

この例では、クラスター全体のデプロイメント用に SMCP を設定します。

  apiVersion: maistra.io/v2
  kind: ServiceMeshControlPlane
  metadata:
    name: cluster-wide
    namespace: istio-system
  spec:
    version: v2.3
    techPreview:
      controlPlaneMode: ClusterScoped 1
1
Istiod が、個々の namespace を監視するのではなく、クラスターレベルでリソースを監視できるようにします。

さらに、SMMR もクラスター全体のデプロイメント用に設定する必要があります。この例では、クラスター全体のデプロイメント用に SMMR を設定します。

  apiVersion: maistra.io/v1
  kind: ServiceMeshMemberRoll
  metadata:
    name: default
  spec:
    members:
    - '*' 1
1
後で作成する namespace を含め、すべての namespace をメッシュに追加します。kube、openshift、kube-*、および openshift-* の namespace は、メッシュの一部ではありません。

1.2.2.11. Red Hat OpenShift Service Mesh バージョン 2.2.9 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.11.1. Red Hat OpenShift Service Mesh バージョン 2.2.9 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.9

Envoy プロキシー

1.20.8

Jaeger

1.42.0

Kiali

1.48.7

1.2.2.12. Red Hat OpenShift Service Mesh バージョン 2.2.8 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.12.1. Red Hat OpenShift Service Mesh バージョン 2.2.8 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.9

Envoy プロキシー

1.20.8

Jaeger

1.42.0

Kiali

1.48.7

1.2.2.13. Red Hat OpenShift Service Mesh バージョン 2.2.7 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。

1.2.2.13.1. Red Hat OpenShift Service Mesh バージョン 2.2.7 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.9

Envoy プロキシー

1.20.8

Jaeger

1.42.0

Kiali

1.48.6

1.2.2.14. Red Hat OpenShift Service Mesh バージョン 2.2.6 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.14.1. Red Hat OpenShift Service Mesh バージョン 2.2.6 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.9

Envoy プロキシー

1.20.8

Jaeger

1.39

Kiali

1.48.5

1.2.2.15. Red Hat OpenShift Service Mesh バージョン 2.2.5 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.15.1. Red Hat OpenShift Service Mesh バージョン 2.2.5 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.9

Envoy プロキシー

1.20.8

Jaeger

1.39

Kiali

1.48.3

1.2.2.16. Red Hat OpenShift Service Mesh バージョン 2.2.4 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.16.1. Red Hat OpenShift Service Mesh バージョン 2.2.4 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.9

Envoy プロキシー

1.20.8

Jaeger

1.36.14

Kiali

1.48.3

1.2.2.17. Red Hat OpenShift Service Mesh バージョン 2.2.3 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.17.1. Red Hat OpenShift Service Mesh バージョン 2.2.3 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.9

Envoy プロキシー

1.20.8

Jaeger

1.36

Kiali

1.48.3

1.2.2.18. Red Hat OpenShift Service Mesh バージョン 2.2.2 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.18.1. Red Hat OpenShift Service Mesh バージョン 2.2.2 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.7

Envoy プロキシー

1.20.6

Jaeger

1.36

Kiali

1.48.2-1

1.2.2.18.2. ルートラベルのコピー

この機能強化により、アノテーションのコピーに加えて、OpenShift ルートの特定のラベルをコピーできます。Red Hat OpenShift Service Mesh は、Istio Gateway リソースに存在するすべてのラベルとアノテーション (kubectl.kubernetes.io で始まるアノテーションを除く) を管理対象の OpenShift Route リソースにコピーします。

1.2.2.19. Red Hat OpenShift Service Mesh バージョン 2.2.1 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.19.1. Red Hat OpenShift Service Mesh バージョン 2.2.1 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.7

Envoy プロキシー

1.20.6

Jaeger

1.34.1

Kiali

1.48.2-1

1.2.2.20. Red Hat OpenShift Service Mesh 2.2 の新機能

このリリースの Red Hat Service Mesh は、新しい機能と拡張機能を追加し、OpenShift Container Platform 4.9 以降でサポートされています。

1.2.2.20.1. Red Hat OpenShift Service Mesh バージョン 2.2 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.12.7

Envoy プロキシー

1.20.4

Jaeger

1.34.1

Kiali

1.48.0.16

1.2.2.20.2. WasmPlugin API

このリリースでは、WasmPlugin API のサポートが追加され、ServiceMeshExtension が非推奨になりました。

1.2.2.20.3. ROSA サポート

このリリースでは、マルチクラスターフェデレーションを含む Red Hat OpenShift on AWS (ROSA) のサービスメッシュサポートが導入されています。

1.2.2.20.4. istio-node DaemonSet の名前変更

このリリースでは、istio-node DaemonSet の名前が istio-cni-node に変更になり、アップストリーム Istio の名前と同じになりました。

1.2.2.20.5. エンボイサイドカーネットワークの変更

Istio 1.10 は、デフォルトで lo ではなく eth0 を使用してトラフィックをアプリケーションコンテナーに送信するように Envoy を更新しました。

1.2.2.20.6. Service Mesh コントロールプレーン 1.1

このリリースは、すべてのプラットフォームでの Service Mesh 1.1 に基づく Service Mesh コントロールプレーンのサポートの終了を示します。

1.2.2.20.7. Istio 1.12 サポート

Service Mesh 2.2 は Istio 1.12 に基づいており、新機能と製品の機能強化をもたらします。多くの Istio 1.12 機能がサポートされていますが、サポートされていない次の機能に注意する必要があります。

  • AuthPolicy ドライランはテクノロジープレビュー機能です。
  • gRPC Proxyless Service Mesh は、テクノロジープレビュー機能です。
  • Telemetry API は、テクノロジープレビュー機能です。
  • ディスカバリーセレクターはサポート対象外の機能です。
  • 外部コントロールプレーンはサポート対象外の機能です。
  • ゲートウェイインジェクションはサポート対象外の機能です。
1.2.2.20.8. Kubernetes Gateway API
重要

Kubernetes Gateway API はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

Kubernetes Gateway API は、デフォルトで無効になっているテクノロジープレビュー機能です。Kubernetes API デプロイメントコントローラーが無効になっている場合は、ingress ゲートウェイを手動でデプロイし、作成されたゲートウェイオブジェクトにリンクする必要があります。

Kubernetes API デプロイコントローラーが有効になっている場合は、ゲートウェイオブジェクトが作成されると、ingress ゲートウェイが自動的にデプロイされます。

1.2.2.20.8.1. Gateway API CRD のインストール

Gateway API CRD は、デフォルトでは OpenShift クラスターにプリインストールされていません。SMCP で Gateway API サポートを有効にする前に、CRD をインストールします。

$ kubectl get crd gateways.gateway.networking.k8s.io || { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v0.4.0" | kubectl apply -f -; }
1.2.2.20.8.2. Kubernetes Gateway API の有効化

この機能を有効にするには、ServiceMeshControlPlaneIstiod コンテナーに次の環境変数を設定します。

spec:
  runtime:
    components:
      pilot:
        container:
          env:
            PILOT_ENABLE_GATEWAY_API: "true"
            PILOT_ENABLE_GATEWAY_API_STATUS: "true"
            # and optionally, for the deployment controller
            PILOT_ENABLE_GATEWAY_API_DEPLOYMENT_CONTROLLER: "true"

ゲートウェイ API リスナーでのルート接続を制限するには、SameNamespace または All 設定を使用します。Istio は、listeners.allowedRoutes.namespaces のラベルセレクターの使用を無視し、デフォルトの動作 (SameNamespace) に戻します。

1.2.2.20.8.3. 手動によるゲートウェイリソースへの既存ゲートウェイのリンク

Kubernetes API デプロイメントコントローラーが無効になっている場合は、ingress ゲートウェイを手動でデプロイし、作成されたゲートウェイリソースにリンクする必要があります。

  apiVersion: gateway.networking.k8s.io/v1alpha2
  kind: Gateway
  metadata:
    name: gateway
  spec:
    addresses:
    - value: ingress.istio-gateways.svc.cluster.local
      type: Hostname

1.2.2.21. Red Hat OpenShift Service Mesh 2.1.6 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.21.1. Red Hat OpenShift Service Mesh バージョン 2.1.6 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.5

Jaeger

1.36

Kiali

1.36.16

1.2.2.22. Red Hat OpenShift Service Mesh 2.1.5.2 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.22.1. Red Hat OpenShift Service Mesh バージョン 2.1.5.2 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.5

Jaeger

1.36

Kiali

1.24.17

1.2.2.23. Red Hat OpenShift Service Mesh 2.1.5.1 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.23.1. Red Hat OpenShift Service Mesh バージョン 2.1.5.1 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.5

Jaeger

1.36

Kiali

1.36.13

1.2.2.24. Red Hat OpenShift Service Mesh 2.1.5 の新機能

Red Hat OpenShift Service Mesh の本リリースには、CVE (Common Vulnerabilities and Exposures) への対応とバグ修正が含まれ、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.24.1. Red Hat OpenShift Service Mesh バージョン 2.1.5 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.1

Jaeger

1.36

Kiali

1.36.12-1

1.2.2.25. Red Hat OpenShift Service Mesh 2.1.4 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.25.1. Red Hat OpenShift Service Mesh バージョン 2.1.4 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.1

Jaeger

1.30.2

Kiali

1.36.12-1

1.2.2.26. Red Hat OpenShift Service Mesh 2.1.3 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.26.1. Red Hat OpenShift Service Mesh バージョン 2.1.3 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.1

Jaeger

1.30.2

Kiali

1.36.10-2

1.2.2.27. Red Hat OpenShift Service Mesh 2.1.2.1 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.27.1. Red Hat OpenShift Service Mesh バージョン 2.1.2.1 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.1

Jaeger

1.30.2

Kiali

1.36.9

1.2.2.28. Red Hat OpenShift Service Mesh 2.1.2 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

このリリースでは、Red Hat 分散トレースプラットフォーム Operator がデフォルトで openshift-distributed-tracing namespace にインストールされるようになりました。以前のリリースでは、デフォルトのインストールは openshift-operator namespace にありました。

1.2.2.28.1. Red Hat OpenShift Service Mesh バージョン 2.1.2 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.1

Jaeger

1.30.1

Kiali

1.36.8

1.2.2.29. Red Hat OpenShift Service Mesh 2.1.1 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

このリリースでは、ネットワークポリシーの自動作成を無効にする機能も追加されています。

1.2.2.29.1. Red Hat OpenShift Service Mesh バージョン 2.1.1 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.9

Envoy プロキシー

1.17.1

Jaeger

1.24.1

Kiali

1.36.7

1.2.2.29.2. ネットワークポリシーの無効化

Red Hat OpenShift Service Mesh は、Service Mesh コントロールプレーンおよびアプリケーションネームスペースで多数の NetworkPolicies リソースを自動的に作成し、管理します。これは、アプリケーションとコントロールプレーンが相互に通信できるようにするために使用されます。

NetworkPolicies リソースの自動作成および管理を無効にする場合 (例: 会社のセキュリティーポリシーを適用する場合など) は、これを実行できます。ServiceMeshControlPlane を編集して spec.security.manageNetworkPolicy 設定を falseに設定できます。

注記

spec.security.manageNetworkPolicy を無効にすると、Red Hat OpenShift Service Mesh は、NetworkPolicy オブジェクトをひとつも作成しません。システム管理者は、ネットワークを管理し、この原因の問題を修正します。

手順

  1. OpenShift Container Platform Web コンソールで、OperatorsInstalled Operators をクリックします。
  2. Project メニューから、Service Mesh コントロールプレーンをインストールしたプロジェクト (例: istio-system) を選択します。
  3. Red Hat OpenShift Service Mesh Operator をクリックします。Istio Service Mesh Control Plane 列で、ServiceMeshControlPlane の名前 (basic-install など) をクリックします。
  4. Create ServiceMeshControlPlane Details ページで、YAML をクリックして設定を変更します。
  5. 以下の例のように、ServiceMeshControlPlane フィールド spec.security.manageNetworkPolicyfalse に設定します。

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    spec:
      security:
          trust:
          manageNetworkPolicy: false
  6. Save をクリックします。

1.2.2.30. Red Hat OpenShift Service Mesh 2.1 の新機能および機能拡張

Red Hat OpenShift Service Mesh の本リリースでは、Istio 1.9.8、Envoy Proxy 1.17.1、Jaeger 1.24.1、および Kiali 1.36.5 のサポートと新機能および機能拡張が OpenShift Container Platform 4.6 EUS、4.7、4.8、および 4.9 で追加されました。

1.2.2.30.1. Red Hat OpenShift Service Mesh バージョン 2.1 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.9.6

Envoy プロキシー

1.17.1

Jaeger

1.24.1

Kiali

1.36.5

1.2.2.30.2. Service Mesh のフェデレーション

サービスメッシュをフェデレーションできるように新規のカスタムリソース定義 (CRD) が追加されました。サービスメッシュは、同じクラスター内または異なる OpenShift クラスター間でフェデレーションを行うことができます。これらの新規リソースには以下が含まれます。

  • ServiceMeshPeer: ゲートウェイ設定、ルート信頼証明書設定、ステータスフィールドなど、別のサービスメッシュでのフェデレーションを定義します。フェデレーションされたメッシュのペアでは、各メッシュは独自の ServiceMeshPeer リソースを個別に定義します。
  • ExportedServiceMeshSet: ピアメッシュのインポートに利用できる特定の ServiceMeshPeer サービスを定義します。
  • ImportedServiceSet: ピアメッシュからインポートする特定の ServiceMeshPeer のサービスを定義します。これらのサービスは、ピアの ExportedServiceMeshSet リソースで利用できるようにする必要もあります。

Service Mesh Federation は、Red Hat OpenShift Service on AWS (ROSA)、Azure Red Hat OpenShift (ARO)、または OpenShift Dedicated (OSD) のクラスター間ではサポートされていません。

1.2.2.30.3. OVN-Kubernetes Container Network Interface(CNI) の一般提供

OVN-Kubernetes Container Network Interface(CNI) は、以前は Red Hat OpenShift Service Mesh 2.0.1 のテクノロジープレビュー機能として導入されましたが、OpenShift Container Platform 4.7.32、OpenShift Container Platform 4.8.12、および OpenShift Container Platform 4.9 で使用できるように Red Hat OpenShift Service Mesh 2.1 および 2.0.x で一般提供されています。

1.2.2.30.4. Service Mesh WebAssembly(WASM) 拡張

ServiceMeshExtensions カスタムリソース定義 (CRD) は、最初に 2.0 でテクノロジープレビュー機能として導入され、今回のバージョンで一般公開されました。CRD を使用して独自のプラグインを構築できますが、Red Hat では独自に作成したプラグインはサポートしていません。

Mixer はサービスメッシュ 2.1 で完全に削除されました。Mixer が有効な場合は、Service Mesh 2.0.x リリースから 2.1 へのアップグレードは、ブロックされます。Mixer プラグインは WebAssembly 拡張に移植する必要があります。

1.2.2.30.5. 3scale WebAssembly Adapter (WASM)

Mixer が正式に削除されたため、OpenShift 3scale mixer アダプターは、Service Mesh 2.1 ではサポート対象外となっています。Service Mesh 2.1 にアップグレードする前に、Mixer ベースの 3scale アダプターと追加の Mixer プラグインを削除します。次に、ServiceMeshExtension リソースを使用して、新しい 3scale WebAssembly アダプターを Service Mesh 2.1 以上で手動でインストールして設定します。

3scale 2.11 では、WebAssembly に基づく更新された Service Mesh の統合が導入されました。

1.2.2.30.6. Istio 1.9 サポート

Service Mesh 2.1 は Istio 1.9 をベースとしており、製品の新機能および機能拡張が数多く追加されました。Istio 1.9 の大半の機能がサポートされていますが、以下の例外に注意してください。

  • 仮想マシンの統合はまだサポートされていません。
  • Kubernetes Gateway API はまだサポートされていません。
  • WebAssembly HTTP フィルターのリモートフェッチおよびロードはサポートされていません。
  • Kubernetes CSR API を使用したカスタム CA 統合はまだサポートされていません。
  • トラフィック監視要求の分類機能はテクノロジープレビュー機能です。
  • Authorization ポリシーの CUSTOM アクションによる外部承認システムとの統合はテクノロジープレビュー機能です。
1.2.2.30.7. Service Mesh Operator のパフォーマンス向上

ServiceMeshControlPlane の調整の終了時に以前のリソースのプルーニングに使用する期間が短縮されました。これにより、ServiceMeshControlPlane のデプロイメントにかかる時間が短縮され、既存の SMCP に適用される変更がこれまでよりも早く有効になります。

1.2.2.30.8. Kiali の更新

Kiali 1.36 には、以下の機能と拡張機能が含まれています。

  • Service Mesh のトラブルシューティング機能

    • コントロールプレーンおよびゲートウェイの監視
    • プロキシーの同期ステータス
    • Envoy 設定ビュー
    • Envoy プロキシーおよびアプリケーションログのインターリーブを示す統合ビュー
  • フェデレーションされたサービスメッシュビューをサポートする namespace およびクラスターボックス
  • 新しい検証、ウィザード、および分散トレースの機能拡張

1.2.2.31. Red Hat OpenShift Service Mesh 2.0.11.1 の新機能

Red Hat OpenShift Service Mesh の本リリースでは、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応し、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.31.1. Red Hat OpenShift Service Mesh バージョン 2.0.11.1 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.6.14

Envoy プロキシー

1.14.5

Jaeger

1.36

Kiali

1.24.17

1.2.2.32. Red Hat OpenShift Service Mesh 2.0.11 の新機能

Red Hat OpenShift Service Mesh の本リリースでは、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応し、OpenShift Container Platform 4.9 以降でサポートされます。

1.2.2.32.1. Red Hat OpenShift Service Mesh バージョン 2.0.11 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.6.14

Envoy プロキシー

1.14.5

Jaeger

1.36

Kiali

1.24.16-1

1.2.2.33. Red Hat OpenShift Service Mesh 2.0.10 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.33.1. Red Hat OpenShift Service Mesh バージョン 2.0.10 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.6.14

Envoy プロキシー

1.14.5

Jaeger

1.28.0

Kiali

1.24.16-1

1.2.2.34. Red Hat OpenShift Service Mesh 2.0.9 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.34.1. Red Hat OpenShift Service Mesh バージョン 2.0.9 に含まれるコンポーネントのバージョン
コンポーネントバージョン

Istio

1.6.14

Envoy プロキシー

1.14.5

Jaeger

1.24.1

Kiali

1.24.11

1.2.2.35. Red Hat OpenShift Service Mesh 2.0.8 の新機能

このリリースの Red Hat OpenShift Service Mesh では、バグ修正に対応しています。

1.2.2.36. Red Hat OpenShift Service Mesh 2.0.7.1 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) に対応しています。

1.2.2.36.1. Red Hat OpenShift Service Mesh が URI フラグメントを処理する方法の変更

Red Hat OpenShift Service Mesh には、リモートで悪用可能な脆弱性 CVE-2021-39156 が含まれており、URI パスにフラグメント (URI の末尾が # 文字で始まるセクション) を含む HTTP リクエストが Istio URI パスベースの認証ポリシーを無視する可能性があります。たとえば、Istio 認証ポリシーは URI パス /user/profile に送信される要求を拒否します。脆弱なバージョンでは、URI パス /user/profile#section1 のリクエストは、deny ポリシーと、(正規化された URI path /user/profile%23section1 を使用する) バックエンドへのルートを無視するため、セキュリティーのインシデントにつながる可能性があります。

DENY アクションおよび operation.paths、または ALLOW アクションおよび operation.notPaths で認可ポリシーを使用する場合は、この脆弱性の影響を受けます。

軽減策により、リクエストの URI の断片部分が、承認とルーティングの前に削除されます。これにより、URI のフラグメントを持つ要求が、フラグメントの一部のない URI をベースとする承認ポリシーが無視できなくなります。

軽減策の新しい動作からオプトインするには、URI の fragment セクションが保持されます。ServiceMeshControlPlane を設定して URI フラグメントを保持できます。

警告

新しい動作を無効にすると、上記のようにパスを正規化し、安全でないと見なされます。URI フラグメントを保持することを選択する前に、セキュリティーポリシーでこれに対応していることを確認してください。

ServiceMeshControlPlane の変更例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  techPreview:
    meshConfig:
      defaultConfig:
        proxyMetadata: HTTP_STRIP_FRAGMENT_FROM_PATH_UNSAFE_IF_DISABLED: "false"

1.2.2.36.2. 認証ポリシーに必要な更新

Istio はホスト名自体とすべての一致するポートの両方にホスト名を生成します。たとえば、httpbin.foo のホストの仮想サービスまたはゲートウェイは、httpbin.foo and httpbin.foo:* に一致する設定を生成します。ただし、完全一致許可ポリシーは、hosts または notHosts フィールドに指定された完全一致文字列にのみ一致します。

ルールの正確な文字列比較を使用して hosts または notHosts を決定する AuthorizationPolicy リソースがある場合、クラスターは影響を受けます。

完全一致ではなく接頭辞一致を使用するように、認証ポリシー ルール を更新する必要があります。たとえば、最初の AuthorizationPolicy の例で hosts: ["httpbin.com"]hosts: ["httpbin.com:*"] に置き換えます。

接頭辞一致を使用した最初の AuthorizationPolicy の例

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: httpbin
  namespace: foo
spec:
  action: DENY
  rules:
  - from:
    - source:
        namespaces: ["dev"]
    to:
    - operation:
        hosts: [“httpbin.com”,"httpbin.com:*"]

接頭辞一致を使用した 2 つ目の AuthorizationPolicy の例

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: httpbin
  namespace: default
spec:
  action: DENY
  rules:
  - to:
    - operation:
        hosts: ["httpbin.example.com:*"]

1.2.2.37. Red Hat OpenShift Service Mesh 2.0.7 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.38. Red Hat OpenShift Dedicated および Microsoft Azure Red Hat OpenShift 上の Red Hat OpenShift Service Mesh

Red Hat OpenShift Service Mesh は、Red Hat OpenShift Dedicated および Microsoft Azure Red Hat OpenShift 経由でサポートされるようになりました。

1.2.2.39. Red Hat OpenShift Service Mesh 2.0.6 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.40. Red Hat OpenShift Service Mesh 2.0.5 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.41. Red Hat OpenShift Service Mesh 2.0.4 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

重要

CVE-2021-29492 および CVE-2021-31920 に対応するために、手動による手順を完了する必要があります。

1.2.2.41.1. CVE-2021-29492 および CVE-2021-31920 で必要な手動による更新

Istio にはリモートで悪用可能な脆弱性があり、複数のスラッシュまたはエスケープされたスラッシュ文字 (%2F または %5C) を持つ HTTP リクエストパスが、パスベースの認証ルールが使用される場合に Istio 認証ポリシーを無視する可能性があります。

たとえば、Istio クラスター管理者が、パス /admin での要求を拒否する認証 DENY ポリシーを定義すると仮定します。URL パス //admin に送信される要求は、認証ポリシーには拒否されません。

RFC 3986 に応じて、複数のスラッシュを持つパス //admin は、/admin とは異なるパスとして処理される必要があります。ただし、一部のバックエンドサービスは、複数のスラッシュを単一のスラッシュにマージして URL パスを正規化することを選択します。これにより、認証ポリシーがバイパスされ (//admin/admin に一致しない)、ユーザーはバックエンドのパス (/admin) でリソースにアクセスできます。これは、セキュリティーのインシデントを表します。

ALLOW action + notPaths フィールドまたは DENY action + paths field パターンを使用する認証ポリシーがある場合、クラスターはこの脆弱性の影響を受けます。これらのパターンは、予期しないポリシーのバイパスに対して脆弱です。

以下の場合、クラスターはこの脆弱性の影響を受けません。

  • 認証ポリシーがありません。
  • 認証ポリシーは、paths フィールドまたは notPaths フィールドを定義しません。
  • 認証ポリシーは、ALLOW action + paths フィールドまたは DENY action + notPaths フィールドのパターンを使用します。これらのパターンは、ポリシーのバイパスではなく、予期しない拒否を生じさせる可能性があります。このような場合、アップグレードは任意です。
注記

パスの正規化向けの Red Hat OpenShift Service Mesh 設定の場所は、Istio 設定とは異なります。

1.2.2.41.2. パスの正規化設定の更新

Istio 認証ポリシーは、HTTP リクエストの URL パスをベースとする場合があります。URI の正規化として知られる パスの正規化 は、正規化されたパスを標準の方法で処理できるように、受信要求のパスを変更し、標準化します。構文の異なるパスは、パスの正規化後と同一になる場合があります。

Istio は、認証ポリシーに対して評価し、要求をルーティングする前の、要求パスでの以下の正規化スキームをサポートします。

表1.1 正規化スキーム

オプション説明注記

NONE

正規化は行われません。Envoy が受信する内容はそのまますべて、どのバックエンドサービスにも完全に転送されます。

../%2fa../b は認証ポリシーによって評価され、サービスに送信されます。

この設定は CVE-2021-31920 に対して脆弱です。

BASE

現時点で、これは Istio の デフォルト インストールで使用されるオプションです。これにより、Envoy プロキシーで normalize_path オプションが適用されます。これは、追加の正規化において RFC 3986 に従い、バックスラッシュをフォワードスラッシュに変換します。

/a/../b/b に正規化されます。\da/da に正規化されます。

この設定は CVE-2021-31920 に対して脆弱です。

MERGE_SLASHES

スラッシュは BASE の正規化後にマージされます。

/a//b/a/b に正規化されます。

この設定に対して更新を行い、CVE-2021-31920 のリスクを軽減します。

DECODE_AND_MERGE_SLASHES

デフォルトですべてのトラフィックを許可する場合の最も厳密な設定です。この設定の場合は、認証ポリシーのルートを詳細にテストする必要がある点に注意してください。パーセントでエンコードされた スラッシュおよびバックスラッシュ文字 (%2F%2f%5C および %5c) は、MERGE_SLASHES の正規化の前に / または \ にデコードされます。

/a%2fb/a/b に正規化されます。

この設定に対して更新を行い、CVE-2021-31920 のリスクを軽減します。この設定はより安全ですが、アプリケーションが破損する可能性があります。実稼働環境にデプロイする前にアプリケーションをテストします。

正規化アルゴリズムは以下の順序で実行されます。

  1. パーセントでデコードされた %2F%2f%5C および %5c
  2. Envoy の normalize_path オプションで実装された RFC 3986 およびその他の正規化。
  3. スラッシュをマージします。
警告

これらの正規化オプションは HTTP 標準および一般的な業界プラクティスの推奨事項を表しますが、アプリケーションは独自に選択したいずれかの方法で URL を解釈する場合があります。拒否ポリシーを使用する場合は、アプリケーションの動作を把握している必要があります。

1.2.2.41.3. パスの正規化設定の例

Envoy がバックエンドサービスの期待値に一致するように要求パスを正規化することは、システムのセキュリティーを保護する上で非常に重要です。以下の例は、システムを設定するための参考として使用できます。正規化された URL パス、または NONE が選択されている場合、元の URL パスは以下のようになります。

  1. 認証ポリシーの確認に使用されます。
  2. バックエンドアプリケーションに転送されます。

表1.2 設定例

アプリケーションの条件選択内容

プロキシーを使用して正規化を行う。

BASEMERGE_SLASHES、または DECODE_AND_MERGE_SLASHES

RFC 3986 に基づいて要求パスを正規化し、スラッシュをマージしない。

BASE

RFC 3986 に基づいて要求パスを正規化し、スラッシュをマージするが、パーセントでエンコードされた スラッシュをデコードしない。

MERGE_SLASHES

RFC 3986 に基づいて要求パスを正規化し、パーセントでエンコードされた スラッシュをデコードし、スラッシュをマージする。

DECODE_AND_MERGE_SLASHES

RFC 3986 と互換性のない方法で要求パスを処理する。

NONE

1.2.2.41.4. パスを正規化するための SMCP の設定

Red Hat OpenShift Service Mesh のパスの正規化を設定するには、ServiceMeshControlPlane で以下を指定します。設定例を使用すると、システムの設定を判断するのに役立ちます。

SMCP v2 pathNormalization

spec:
  techPreview:
    global:
      pathNormalization: <option>

1.2.2.41.5. ケース正規化 (case normalization) の設定

環境によっては、大文字と小文字を区別しない場合の比較用に 2 つのパスを認証ポリシーに用意すると便利な場合があります。たとえば、https://myurl/gethttps://myurl/GeT を同等なものとして扱います。このような場合は、以下に示されている EnvoyFilter を使用できます。このフィルターは、比較用に使用されるパスとアプリケーションに表示されるパスの両方を変更します。この例では、istio-system が Service Mesh コントロールプレーンプロジェクトの名前となります。

EnvoyFilter をファイルに保存して、以下のコマンドを実行します。

$ oc create -f <myEnvoyFilterFile>
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: ingress-case-insensitive
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: "envoy.filters.network.http_connection_manager"
            subFilter:
              name: "envoy.filters.http.router"
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.lua
        typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
            inlineCode: |
              function envoy_on_request(request_handle)
                local path = request_handle:headers():get(":path")
                request_handle:headers():replace(":path", string.lower(path))
              end

1.2.2.42. Red Hat OpenShift Service Mesh 2.0.3 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

また、このリリースには以下の新機能があります。

  • 指定された Service Mesh コントロールプレーン namespace から情報を収集する must-gather データ収集ツールにオプションが追加されました。詳細は、OSSM-351 を参照してください。
  • 数百の namespace が含まれる Service Mesh コントロールプレーンのパフォーマンスの向上

1.2.2.43. Red Hat OpenShift Service Mesh 2.0.2 の新機能

Red Hat OpenShift Service Mesh の本リリースでは、IBM Z および IBM Power Systems のサポートが追加されました。また、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.44. Red Hat OpenShift Service Mesh 2.0.1 の新機能

このリリースの Red Hat OpenShift Service Mesh では、CVE (Common Vulnerabilities and Exposures) およびバグ修正に対応しています。

1.2.2.45. Red Hat OpenShift Service Mesh 2.0 の新機能

Red Hat OpenShift Service Mesh の本リリースでは、Istio 1.6.5、Jaeger 1.20.0、Kiali 1.24.2、3scale Istio Adapter 2.0 および OpenShift Container Platform 4.6 のサポートが追加されました。

また、本リリースには以下の新機能があります。

  • Service Mesh コントロールプレーンのインストール、アップグレード、および管理を単純化します。
  • Service Mesh コントロールプレーンのリソース使用量と起動時間を短縮します。
  • ネットワークのコントロールプレーン間の通信を削減することで、パフォーマンスが向上します。

    • Envoy の Secret Discovery Service (SDS) のサポートが追加されました。SDS は、Envoy サイドカープロキシーにシークレットを提供するためのより安全で効率的なメカニズムです。
  • よく知られているセキュリティーリスクがある Kubernetes シークレットを使用する必要性がなくなります。
  • プロキシーが新しい証明書を認識するのに再起動を必要としなくなったため、証明書のローテーション時にパフォーマンスが向上します。

    • WebAssembly 拡張を使用してビルドされる Istio の Telemetry v2 アーキテクチャーのサポートを追加します。この新しいアーキテクチャーにより、パフォーマンスが大幅に改善されました。
    • ServiceMeshControlPlane リソースを簡素化された設定を含む v2 に更新し、Service Mesh コントロールプレーンの管理を容易にします。
    • WebAssembly 拡張を テクノロジープレビュー として導入します。

1.2.3. テクノロジープレビュー

現在、今回のリリースに含まれる機能にはテクノロジープレビューのものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。

重要

テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

1.2.4. 非推奨および削除された機能

以前のリリースで利用可能であった一部の機能が非推奨になるか、削除されました。

非推奨の機能は依然として OpenShift Container Platform に含まれており、引き続きサポートされますが、本製品の今後のリリースで削除されるため、新規デプロイメントでの使用は推奨されません。

本製品では、削除機能が除去されています。

1.2.4.1. Red Hat OpenShift Service Mesh 2.4 で非推奨化および廃止された機能

v2.1 の ServiceMeshControlPlane リソースはサポートされなくなりました。お客様は、新しいバージョンの ServiceMeshControlPlane リソースを使用するようにメッシュデプロイメントをアップグレードする必要があります。

Istio OpenShift Routing (IOR) のサポートは非推奨となり、将来のリリースでは削除される予定です。

Grafana のサポートは非推奨となり、将来のリリースでは削除される予定です。

Red Hat OpenShift Service Mesh 2.3 で非推奨となった以下の暗号スイートのサポートは、クライアント側とサーバー側の両方で TLS ネゴシエーションで使用される暗号のデフォルトのリストから削除されました。これらの暗号スイートのいずれかを必要とするサービスにアクセスする必要があるアプリケーションは、プロキシーから TLS 接続が開始されると接続に失敗します。

  • ECDHE-ECDSA-AES128-SHA
  • ECDHE-RSA-AES128-SHA
  • AES128-GCM-SHA256
  • AES128-SHA
  • ECDHE-ECDSA-AES256-SHA
  • ECDHE-RSA-AES256-SHA
  • AES256-GCM-SHA384
  • AES256-SHA

1.2.4.2. Red Hat OpenShift Service Mesh 2.3 で非推奨化および廃止された機能

次の暗号スイートのサポートは非推奨になりました。将来のリリースでは、クライアント側とサーバー側の両方で TLS ネゴシエーションに使用されるデフォルトの暗号リストから削除される予定です。

  • ECDHE-ECDSA-AES128-SHA
  • ECDHE-RSA-AES128-SHA
  • AES128-GCM-SHA256
  • AES128-SHA
  • ECDHE-ECDSA-AES256-SHA
  • ECDHE-RSA-AES256-SHA
  • AES256-GCM-SHA384
  • AES256-SHA

Red Hat OpenShift Service Mesh バージョン 2.2 で非推奨化された ServiceMeshExtension API は、Red Hat OpenShift Service Mesh バージョン 2.3 で廃止されました。ServiceMeshExtension API を使用している場合、WebAssembly エクステンションを引き続き使用するには WasmPlugin API に移行する必要があります。

1.2.4.3. 非推奨になった Red Hat OpenShift Service Mesh 2.2 の機能

ServiceMeshExtension API は、リリース 2.2 で非推奨になり、今後のリリースで削除される予定です。ServiceMeshExtension API はリリース 2.2 でも引き続きサポートされますが、お客様は新しい WasmPluginAPI への移行を開始する必要があります。

1.2.4.4. Red Hat OpenShift Service Mesh 2.2 で削除された機能

このリリースは、すべてのプラットフォームでの Service Mesh 1.1 に基づく Service Mesh コントロールプレーンのサポートの終了を示します。

1.2.4.5. Red Hat OpenShift Service Mesh 2.1 で削除された機能

Service Mesh 2.1 では、Mixer コンポーネントが削除されます。バグ修正およびサポートは、Service Mesh 2.0 の最後のライフサイクルで提供されます。

Mixer プラグインが有効な場合は、Service Mesh 2.0.x リリースから 2.1 へのアップグレードは続行されません。Mixer プラグインは、WebAssembly 拡張に移植する必要があります。

1.2.4.6. 非推奨になった Red Hat OpenShift Service Mesh 2.0 の機能

Mixer コンポーネントはリリース 2.0 で非推奨となり、リリース 2.1 で削除されます。Mixer を使用した拡張機能の実装はリリース 2.0 でも引き続きサポートされますが、拡張機能を新規の WebAssembly メカニズムに移行する必要があります。

以下のリソースタイプは Red Hat OpenShift Service Mesh 2.0 でサポートされなくなりました。

  • Policy (authentication.istio.io/v1alpha1) はサポートされなくなりました。Policy リソースの特定の設定によっては、同じ効果を実現するために複数のリソースを設定しなければならない場合があります。

    • RequestAuthentication (security.istio.io/v1beta1) の使用
    • PeerAuthentication (security.istio.io/v1beta1) の使用
  • ServiceMeshPolicy (maistra.io/v1) はサポートされなくなりました。

    • 上記のように RequestAuthentication または PeerAuthentication を使用しますが、Service Mesh コントロールプレーン namespace に配置します。
  • RbacConfig (rbac.istio.io/v1alpha1) はサポートされなくなりました。

    • AuthorizationPolicy (security.istio.io/v1beta1) に置き換わります。これは RbacConfigServiceRole、および ServiceRoleBinding の動作を包含します。
  • ServiceMeshRbacConfig (maistra.io/v1) がサポートされなくなりました。

    • 上記のように AuthorizationPolicy を使用しますが、Service Mesh コントロールプレーンの namespace に配置します。
  • ServiceRole (rbac.istio.io/v1alpha1) がサポートされなくなりました。
  • ServiceRoleBinding (rbac.istio.io/v1alpha1) がサポートされなくなりました。
  • Kiali では、login および LDAP ストラテジーは非推奨になりました。今後のバージョンでは、OpenID プロバイダーを使用した認証が導入されます。

1.2.5. 既知の問題

Red Hat OpenShift Service Mesh には以下のような制限が存在します。

  • Red Hat OpenShift Service Mesh はまだ IPv6 をフルサポートを提供していません。その結果、Red Hat OpenShiftServiceMesh ではデュアルスタッククラスターはサポート対象外です。
  • グラフレイアウト: Kiali グラフのレイアウトは、アプリケーションのアーキテクチャーや表示データ (グラフィックノードとその対話の数) によって異なることがあります。すべての状況に適した単一のレイアウトを作成することは不可能ではないにしても困難であるため、Kiali は複数の異なるレイアウトの選択肢を提供します。別のレイアウトを選択するには、Graph Settings メニューから異なる Layout Schema を選択します。
  • Kiali コンソールから 分散トレースプラットフォーム や Grafana などの関連サービスに初めてアクセスする場合、OpenShift Container Platform のログイン認証情報を使用して証明書を受け入れ、再認証する必要があります。これは、フレームワークが組み込まれたページをコンソールで表示する方法に問題があるために生じます。
  • Bookinfo サンプルアプリケーションは、IBM Power、IBM Z、および {linuxoneProductName} にはインストールできません。
  • WebAssembly 拡張機能は、IBM Power、IBM Z、および {linuxoneProductName} ではサポートされていません。
  • LuaJIT は、IBM Power、IBM Z、および {linuxoneProductName} ではサポートされていません。
  • シングルスタック IPv6 サポートは、IBM Power、IBM Z、および {linuxoneProductName} では利用できません。

1.2.5.1. Service Mesh の既知の問題

Red Hat OpenShift Service Mesh には次のような既知の問題が存在します。

  • OSSM-3890 マルチテナントメッシュデプロイメントでゲートウェイ API を使用しようとすると、次のようなエラーメッセージが生成されます。

    2023-05-02T15:20:42.541034Z	error	watch error in cluster Kubernetes: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
    2023-05-02T15:20:42.616450Z	info	kube	controller "gateway.networking.k8s.io/v1alpha2/TCPRoute" is syncing...

    マルチテナントメッシュデプロイメントでゲートウェイ API をサポートするには、すべてのゲートウェイ API カスタムリソース定義 (CRD) ファイルがクラスター内に存在する必要があります。

    マルチテナントメッシュデプロイメントでは、CRD スキャンが無効になり、Istio はクラスター内にどの CRD が存在するかを検出する方法がありません。その結果、Istio はサポートされているすべての Gateway API CRD を監視しようとしますが、それらの CRD の一部が存在しない場合はエラーが生成されます。

    Service Mesh 2.3.1 以降のバージョンは、v1alpha2v1beta1 の両方の CRD をサポートします。したがって、マルチテナントメッシュデプロイメントでゲートウェイ API をサポートするには、両方の CRD バージョンが存在する必要があります。

    回避策: 次の例では、kubectl get 操作により v1alpha2 および v1beta1 CRD がインストールされます。URL には追加の experimental セグメントが含まれており、それに応じて既存のスクリプトが更新されることに注意してください。

    $ kubectl get crd gateways.gateway.networking.k8s.io ||   { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=v0.5.1" | kubectl apply -f -; }
  • OSSM-2042 default という名前の SMCP のデプロイメントが失敗します。SMCP オブジェクトを作成し、そのバージョンフィールドを v2.3 に設定する場合、オブジェクトの名前は default にできません。名前が default の場合、コントロールプレーンはデプロイに失敗し、OpenShift は次のメッセージを含む Warning イベントを生成します。

    Error processing component mesh-config: error: [mesh-config/templates/telemetryv2_1.6.yaml: Internal error occurred: failed calling webhook "rev.validation.istio.io": Post "https://istiod-default.istio-system.svc:443/validate?timeout=10s": x509: certificate is valid for istiod.istio-system.svc, istiod-remote.istio-system.svc, istio-pilot.istio-system.svc, not istiod-default.istio-system.svc, mesh-config/templates/enable-mesh-permissive.yaml

  • OSSM-1655 SMCP で mTLS を有効にした後に、Kiali ダッシュボードにエラーが表示されます。

    SMCP で spec.security.controlPlane.mtls 設定を有効にすると、Kiali コンソールにエラーメッセージ No subsets defined が表示されます。

  • OSSM-1505 この問題は、OpenShift Container Platform 4.11 で ServiceMeshExtension リソースを使用する場合にのみ発生します。OpenShift Container Platform 4.11 で ServiceMeshExtension を使用すると、リソースの準備が整いません。oc describe ServiceMeshExtension を使用して問題を調べると、stderr: Error creating mount namespace before pivot: function not implemented エラーが表示されます。

    回避策: ServiceMeshExtension は Service Mesh 2.2 で廃止されました。ServiceMeshExtension から WasmPlugin リソースに移行します。詳細は、ServiceMeshExtension から WasmPlugin リソースへの移行を参照してください。

  • OSSM-1396 ゲートウェイリソースに spec.externalIPs 設定が含まれていると、ゲートウェイは、ServiceMeshControlPlane の更新時に再作成されず削除され、再作成されることはありません。
  • OSSM-1168 サービスメッシュリソースが単一の YAML ファイルとして作成される場合は、Envoy プロキシーサイドカーが Pod に確実に挿入されません。SMCP、SMMR、およびデプロイメントリソースを個別に作成すると、デプロイメントは想定どおりに機能します。
  • OSSM-1115 spec.proxy API の concurrency フィールドが istio-proxy に伝播されませんでした。concurrency フィールドは、ProxyConfig で設定すると機能します。concurrency フィールドは、実行するワーカースレッドの数を指定します。フィールドが 0 に設定されている場合、使用可能なワーカースレッドの数は CPU コアの数と等しくなります。フィールドが設定されていない場合、使用可能なワーカースレッドの数はデフォルトで 2 になります。

    次の例では、concurrency フィールドが 0 に設定されています。

    apiVersion: networking.istio.io/v1beta1
    kind: ProxyConfig
    metadata:
      name: mesh-wide-concurrency
      namespace: <istiod-namespace>
    spec:
      concurrency: 0
  • OSSM-1052 Service Mesh コントロールプレーンで入力ゲートウェイのサービス ExternalIP を設定すると、サービスは作成されません。SMCP のスキーマには、サービスのパラメーターがありません。

    回避策: SMCP 仕様でゲートウェイの作成を無効にして、(サービス、ロール、および RoleBinding など) ゲートウェイのデプロイメントを完全に手動で管理します。

  • OSSM-882 これは、Service Mesh 2.1 以前に適用されます。namespace は accessible_namespace 一覧にありますが、Kiali UI には表示されません。デフォルトでは、Kiali は kube で始まる namespace を表示しません。これらの namespace は通常内部使用のみであり、メッシュの一部ではないためです。

    たとえば、akube-a という名前の namespace を作成し、これを Service Mesh メンバーロールに追加すると、Kiali UI は namespace を表示しません。定義された除外パターンの場合、ソフトウェアは、このパターンで始まるか、そのパターンを含む namespace を除外します。

    回避策: Kiali カスタムリソース設定を変更して、設定に接頭辞としてキャレット (^) を追加します。以下に例を示します。

    api:
      namespaces:
        exclude:
        - "^istio-operator"
        - "^kube-.*"
        - "^openshift.*"
        - "^ibm.*"
        - "^kiali-operator"
  • MAISTRA-2692 Mixer が削除されると、Service Mesh 2.0.x で定義されたカスタムメトリクスを 2.1 で使用できません。カスタムメトリクスは EnvoyFilter を使用して設定できます。明示的に文書化されている場合を除き、Red Hat は EnvoyFilter 設定をサポートできません。これは、下層の Envoy API と疎結合されており、後方互換性を保持することができないためです。
  • MAISTRA-2648 サービスメッシュ拡張機能は現在、IBM Z にデプロイされたメッシュと互換性がありません。
  • MAISTRA-1959 2.0 への移行 Prometheus の収集 (spec.addons.prometheus.scrapetrue に設定される) は mTLS が有効にされていると機能しません。また、Kiali は、mTLS が無効になっている場合に余分なグラフデータを表示します。

    この問題は、たとえば、プロキシー設定からポート 15020 を除外して対応できます。

    spec:
      proxy:
        networking:
          trafficControl:
            inbound:
              excludedPorts:
              - 15020
  • MAISTRA-453 新規プロジェクトを作成して Pod を即時にデプロイすると、サイドカーコンテナーの挿入は発生しません。この Operator は Pod の作成前に maistra.io/member-of を追加できないため、サイドカーコンテナーの挿入を発生させるには Pod を削除し、再作成する必要があります。
  • MAISTRA-158 同じホスト名を参照する複数のゲートウェイを適用すると、すべてのゲートウェイが機能しなくなります。

1.2.5.2. Kiali の既知の問題

注記

Kiali の新たな問題は、ComponentKiali に設定された状態の OpenShift Service Mesh プロジェクトに作成される必要があります。

Kiali の既知の問題は以下のとおりです。

  • KIALI-2206 初回の Kiali コンソールへのアクセス時に、Kiali のキャッシュされたブラウザーデータがない場合、Kiali サービスの詳細ページの Metrics タブにある View in Grafana リンクは誤った場所にリダイレクトされます。この問題は、Kiali への初回アクセス時にのみ生じます。
  • KIALI-507 Kiali は Internet Explorer 11 に対応していません。これは、基礎となるフレームワークが Internet Explorer に対応していないためです。Kiali コンソールにアクセスするには、Chrome、Edge、Firefox、または Safari ブラウザーの最新の 2 バージョンのいずれかを使用します。

1.2.5.3. Red Hat OpenShift 分散トレースの既知の問題

Red Hat OpenShift 分散トレースには、以下の制限があります。

  • Apache Spark はサポートされていません。
  • AMQ/Kafka 経由のストリーミングデプロイメントは、IBM Z および IBM Power Systems ではサポートされません。

これらは Red Hat OpenShift 分散トレースの既知の問題です。

  • OBSDA-220 分散トレースデータコレクションを使用してイメージをプルしようとすると、イメージのプルが失敗し、Failed to pull image エラーメッセージが表示される場合があります。この問題に対する回避策はありません。
  • TRACING-2057 Kafka API が v1beta2 に更新され、Strimzi Kafka Operator 0.23.0 がサポートされるようになりました。ただし、この API バージョンは AMQ Streams 1.6.3 ではサポートされません。以下の環境がある場合、Jaeger サービスはアップグレードされず、新規の Jaeger サービスを作成したり、既存の Jaeger サービスを変更したりすることはできません。

    • Jaeger Operator チャネル: 1.17.x stable または 1.20.x stable
    • AMQ Streams Operator チャネル: amq-streams-1.6.x

      この問題を解決するには、AMQ Streams Operator のサブスクリプションチャネルを amq-streams-1.7.x または stable のいずれかに切り替えます。

1.2.6. 修正された問題

次の問題は、現在のリリースで解決されています。

1.2.6.1. Service Mesh の修正された問題

  • OSSM-4197 では、ServiceMeshControlPlane リソースの v2.2 または v2.1 をデプロイしても、/etc/cni/multus/net.d/ ディレクトリーは作成されませんでした。その結果、istio-cni Pod の準備ができず、istio-cni Pod のログに次のメッセージが含まれていました。

    $ error   Installer exits with open /host/etc/cni/multus/net.d/v2-2-istio-cni.kubeconfig.tmp.841118073: no such file or directory

    ここで、ServiceMeshControlPlane リソースの v2.2 または v2.1 をデプロイすると、/etc/cni/multus/net.d/ ディレクトリーが作成され、istio-cni Pod の準備が整います。

  • OSSM-3993 以前は、Kiali は標準 HTTPS ポート 443 上のプロキシー経由の OpenShift OAuth のみをサポートしていました。現在、Kiali は非標準の HTTPS ポートを介した OpenShift OAuth をサポートします。ポートを有効にするには、Kiali CR で spec.server.web_port フィールドをプロキシーの非標準 HTTPS ポートに設定する必要があります。
  • OSSM-3936 以前は、injection_label_rev および injection_label_name 属性の値がハードコーディングされていました。これにより、カスタム設定が Kiali カスタムリソース定義 (CRD) で有効になりませんでした。今回のリリースより、属性値はハードコーディングされなくなりました。spec.istio_labels 仕様の injection_label_rev および injection_label_name 属性の値をカスタマイズできます。
  • OSSM-3644 これまで、フェデレーション egress-gateway はネットワークゲートウェイエンドポイントの誤った更新を受信し、余分なエンドポイントエントリーが発生していました。これで、egress-gateway ゲートウェイはサーバー側で更新され、正しいネットワークゲートウェイエンドポイントを受信できるようになりました。
  • OSSM-3595 これまでは、iptables-restore ユーティリティーが /tmp ディレクトリー内のファイルを開くことを SELinux が許可しなかったため、RHEL 上で istio-cni プラグインが失敗することがありました。SELinux は、ファイル経由ではなく stdin 入力ストリーム経由で iptables-restore を渡すようになりました。
  • OSSM-3586 以前は、Google Cloud Platform (GCP) メタデータサーバーが利用できない場合に Istio プロキシーの起動が遅くなりました。Istio 1.14.6 にアップグレードすると、メタデータサーバーが利用できない場合でも、Istio プロキシーは GCP 上で期待どおりに起動します。
  • OSSM-3025 Istiod が準備完了にならないことがあります。メッシュに多くのメンバーの namespace が含まれている場合は、Istiod 内のデッドロックが原因で Istiod Pod が準備完了にならないことがありました。デッドロックが解決され、Pod が期待どおりに起動するようになりました。
  • OSSM-2493 SMCP のデフォルトの nodeSelectortolerations が Kiali に渡されません。SMCP.spec.runtime.defaults に追加する nodeSelectortolerations が Kiali リソースに渡されるようになりました。
  • OSSM-2492 SMCP のデフォルトの Toleration が Jaeger に渡されません。SMCP.spec.runtime.defaults に追加する nodeSelectortolerations が Jaeger リソースに渡されるようになりました。
  • OSSM-2374 ServiceMeshMember リソースの 1 つを削除すると、サービスメッシュ Operator が ServiceMeshMemberRoll を削除しました。これは、最後の ServiceMeshMember を削除する際に期待される動作ですが、削除されたメンバーに加えて、メンバーが含まれている場合、Operator は ServiceMeshMemberRoll を削除しないようにする必要があります。この問題は修正され、Operator は最後の ServiceMeshMember リソースが削除された場合のみ、ServiceMeshMemberRoll を削除するようになりました。
  • OSSM-2373 ログイン時に OAuth メタデータを取得しようとして、エラーが発生しました。クラスターのバージョンを取得するには、system:anonymous アカウントが使用されます。クラスターの既定のバンドルされた ClusterRole と ClusterRoleBinding を使用すると、匿名アカウントはバージョンを正しく取得できます。system:anonymous アカウントがクラスターバージョンを取得する権限を失うと、OpenShift 認証は使用できなくなります。

    これは、Kiali SA を使用して、クラスターのバージョンを取得することで修正されます。これにより、クラスターのセキュリティーも向上します。

  • OSSM-2371 Kiali が view-only として設定されているにもかかわらず、ユーザーはワークロードの詳細の Logs タブの kebab メニューからプロキシーログレベルを変更できます。この問題は修正されており、Kiali が view-only として設定されている場合は、Set Proxy Log Level の下のオプションが無効になります。
  • OSSM-2344 Istiod を再起動すると、Kiali によって CRI-O がポート転送リクエストでいっぱいになります。この問題は、Kiali が Istiod に接続できず、Kiali が同時に大量のリクエストを istiod に発行したときに発生しました。Kiali が istiod に送信するリクエストの数が制限されるようになりました。
  • OSSM-2335 Traces の散布図のプロット上でマウスポインターをドラッグすると、同時バックエンドリクエストが原因で Kiali コンソールが応答を停止する場合がありました。
  • OSSM-2221 以前は、デフォルトで ignore-namespace ラベルが名前空間に適用されていたため、ServiceMeshControlPlane 名前空間へのゲートウェイインジェクションはできませんでした。

    v2.4 コントロールプレーンを作成すると、名前空間に ignore-namespace ラベルが適用されなくなり、ゲートウェイインジェクションが可能になります。

    以下の例では、oc label コマンドは既存のデプロイメントの namespace から ignore-namespace ラベルを削除します。

    $ oc label namespace <istio_system> maistra.io/ignore-namespace-

    上の例では、<istio_system> は ServiceMeshControlPlane namespace の名前を表します。

  • OSSM-2053 Red Hat OpenShift Service Mesh Operator 2.2 または 2.3 を使用すると、SMCP の調整中に、SMMR コントローラーがメンバーの namespace を SMMR.status.configuredMembers から削除しました。これにより、メンバーの namespace のサービスがしばらく利用できなくなりました。

    Red Hat OpenShift Service Mesh Operator 2.2 または 2.3 を使用すると、SMMR コントローラーは SMMR.status.configuredMembers から namespace を削除しなくなります。代わりに、コントローラーは namespace を SMMR.status.pendingMembers に追加して、それらが最新ではないことを示します。調整中に、各 namespace が SMCP と同期されると、namespace は SMMR.status.pendingMembers から自動的に削除されます。

  • OSSM-1962 フェデレーションコントローラーで EndpointSlices を使用します。フェデレーションコントローラーが EndpointSlices を使用するようになりました。これにより、大規模なデプロイメントでのスケーラビリティとパフォーマンスが向上します。PILOT_USE_ENDPOINT_SLICE フラグはデフォルトで有効になっています。フラグを無効にすると、フェデレーションデプロイメントを使用できなくなります。
  • OSSM-1668 新しいフィールド spec.security.jwksResolverCA がバージョン 2.1 SMCP に追加されましたが、2.2.0 および 2.2.1 リリースにはありませんでした。このフィールドが存在する Operator バージョンから、このフィールドが存在しなかった Operator バージョンにアップグレードする場合は、SMCP.spec.security.jwksResolverCA フィールドを使用できませんでした。
  • OSSM-1325 istiod Pod がクラッシュし、fatal error: concurrent map iteration and map write のエラーメッセージが表示されます。
  • OSSM-1211 フェールオーバー用のフェデレーションサービスメッシュの設定が想定どおりに機能しません。

    Istiod パイロットログに、envoy connection [C289] TLS error: 337047686:SSL routines:tls_process_server_certificate:certificate verify failed のエラーが表示されます。

  • OSSM-1099 Kiali コンソールに Sorry, there was a problem.Try a refresh or navigate to a different page. メッセージが表示されました
  • OSSM-1074 SMCP で定義された Pod アノテーションが Pod に注入されません。
  • OSSM-999 Kiali は想定どおりに保持されませんでした。ダッシュボードグラフでは、カレンダーの時刻がグレーアウトされています。
  • OSSM-797 Kiali Operator Pod は、Operator のインストールまたはアップグレード時に CreateContainerConfigError を生成します。
  • kube で始まる OSSM-722 namespace は Kiali には表示されません。
  • OSSM-569: Prometheus istio-proxy コンテナーには CPU メモリー制限がありません。Prometheus istio-proxy サイドカーは、spec.proxy.runtime.container で定義されたリソース制限を使用するようになりました。
  • OSSM-535 SMCP での validationMessages のサポート。Service Mesh コントロールプレーンの ValidationMessages フィールドを True に設定できるようになりました。これにより、問題のトラブルシューティングに役立つ、リソースのステータスのログが書き込まれます。
  • OSSM-449 VirtualService および Service により、"Only unique values for domains are permitted.Duplicate entry of domain." エラーが生じます。
  • 同様の名前を持つ OSSM-419 namespace は、namespace が Service Mesh Member Role で定義されていない場合でも、Kiali namespace の一覧に表示されます。
  • OSSM-296 ヘルス設定を Kiali カスタムリソース (CR) に追加する場合、これは Kiali configmap にレプリケートされません。
  • OSSM-291 Kiali コンソールの、Applications、Services、および Workloads ページの Remove Label from Filters が機能しません。
  • OSSM-289 Kiali コンソールの istio-ingressgateway および jaeger-query サービスの Service Details ページにはトレースが表示されません。トレースは Jaeger にあります。
  • OSSM-287 Kiali コンソールでは、トレースが Graph Service に表示されません。
  • OSSM-285 Kiali コンソールにアクセスしようとすると、Error trying to get OAuth Metadata エラーメッセージが表示されます。

    回避策: Kiali Pod を再起動します。

  • MAISTRA-2735 Red Hat OpenShift Service Mesh バージョン 2.1 では、SMCP の調整時に Service Mesh Operator が削除するリソースが変更されました。以前のバージョンでは、Operator は以下のラベルを持つリソースを削除しました。

    • maistra.io/owner
    • app.kubernetes.io/version

    Operator は app.kubernetes.io/managed-by=maistra-istio-operator ラベルを含まないリソースを無視するようになりました。独自のリソースを作成する場合は、app.kubernetes.io/managed-by=maistra-istio-operator ラベルをそれらに追加することはできません。

  • MAISTRA-2687 外部証明書を使用する場合は、Red Hat OpenShift Service Mesh 2.1 フェデレーションゲートウェイでは、証明書チェーンが完全に送信されません。Service Mesh フェデレーション egress ゲートウェイはクライアント証明書のみを送信します。フェデレーション Ingress ゲートウェイはルート証明書のみを認識するため、ルート証明書をフェデレーションインポート ConfigMap に追加しない限り、クライアント証明書を検証できません。
  • MAISTRA-2635 非推奨の Kubernetes API が置き換えられました。OpenShift Container Platform 4.8 との互換性を維持するために、apiextensions.k8s.io/v1beta1 API は Red Hat OpenShift Service Mesh 2.0.8 で非推奨になりました。
  • MAISTRA-2631 nsenter バイナリーが存在しないことが原因で Podman に問題が発生しているため、WASM 機能は使用できません。Red Hat OpenShift Service Mesh は Error: error configuring CNI network plugin exec: "nsenter": executable file not found in $PATH エラーメッセージを生成します。コンテナーイメージには nsenter が含まれ、WASM が予想通りに機能するようになりました。
  • MAISTRA-2534 istiod が JWT ルールで指定された発行者の JWKS の取得を試行する際に、発行者サービスは 502 で応答します。これにより、プロキシーコンテナーの準備ができなくなり、デプロイメントがハングしていました。コミュニティーバグ の修正は、Service Mesh 2.0.7 リリースに含まれています。
  • MAISTRA-2411 Operator が ServiceMeshControlPlanespec.gateways.additionaIngress を使用して新規 ingress ゲートウェイを作成する場合、Operator はデフォルトの istio-ingressgateway の場合と同様に追加の Ingress ゲートウェイの NetworkPolicy を作成しません。これにより、新規ゲートウェイのルートから 503 応答が生じました。

    回避策: <istio-system> namespace に NetworkPolicy を手動で作成します。

  • MAISTRA-2401 CVE-2021-3586 servicemesh-operator: NetworkPolicy リソースが Ingress リソースのポートを誤って指定しています。Red Hat OpenShift Service Mesh にインストールされた NetworkPolicy リソースでは、アクセス可能なポートが適切に指定されませんでした。これにより、任意の Pod からこれらのリソースの全ポートにアクセスできるようになりました。以下のリソースに適用されるネットワークポリシーが影響を受けます。

    • Galley
    • Grafana
    • Istiod
    • Jaeger
    • Kiali
    • Prometheus
    • サイドカーインジェクター
  • MAISTRA-2378: クラスターが ovs-multitenant で OpenShift SDN を使用するように設定されており、メッシュに多数の namespace (200+) が含まれる場合に、OpenShift Container Platform ネットワークプラグインは namespace を迅速に設定できません。Service Mesh がタイムアウトすると、namespace がサービスメッシュから継続的にドロップされ、再リストされます。
  • MAISTRA-2370 は listerInformer で tombstones を処理します。更新されたキャッシュコードベースは、namespace キャッシュからのイベントを集約されたキャッシュに変換する際に tombstones を処理しないため、go ルーチンでパニックが生じました。
  • MAISTRA-2117 オプションの ConfigMap マウントを Operator に追加します。CSV にはオプションの ConfigMap ボリュームマウントが含まれるようになり、smcp-templates ConfigMap (存在する場合) をマウントします。smcp-templates ConfigMap が存在しないと、マウントされたディレクトリーは空になります。ConfigMap を作成すると、ディレクトリーには ConfigMap からのエントリーが設定され、SMCP.spec.profiles で参照できます。Service Mesh Operator の再起動は必要ありません。

    CSV を変更して 2.0 Operator を使用して smcp-templates ConfigMap をマウントしている場合は、Red Hat OpenShift Service Mesh 2.1 にアップグレードできます。アップグレード後は、CSV を編集せずに、既存の ConfigMap およびこれに含まれるプロファイルを引き続き使用できます。以前別の名前で ConfigMap を使用していた場合は、ConfigMap の名前を変更するか、アップグレード後に CSV を更新する必要があります。

  • MAISTRA-2010 AuthorizationPolicy は request.regex.headers フィールドをサポートしません。validatingwebhook はこのフィールドのある AuthorizationPolicy を拒否し、これを無効にした場合でも、パイロットは同じコードを使用してこの検証を試行し、機能しません。
  • MAISTRA-1979 2.0 への移行 変換 webhook は、SMCP.status を v2 から v1 に変換する際に以下の重要なフィールドをドロップします。

    • conditions
    • components
    • observedGeneration
    • annotations

      Operator を 2.0 にアップグレードすると、リソースの maistra.io/v1 バージョンを使用する SMCP ステータスを読み取るクライアントツールが破損する可能性があります。

      また、oc get servicemeshcontrolplanes.v1.maistra.io の実行時に READY および STATUS 列が空になります。

  • MAISTRA-1947 テクノロジープレビュー ServiceMeshExtensions への更新は適用されません。

    回避策: ServiceMeshExtensions を削除し、再作成します。

  • MAISTRA-1983 2.0 への移行 既存の無効な ServiceMeshControlPlane を使用した 2.0.0 へのアップグレードは修復できません。ServiceMeshControlPlane リソース内の無効な項目により、回復不可能なエラーが発生しました。修正により、エラーが回復可能になりました。無効なリソースを削除してこれを新しいリソースに置き換えるか、リソースを編集してエラーを修正できます。リソースの編集に関する詳細は、 [Red Hat OpenShift Service Mesh インストールの設定] を参照してください。
  • MAISTRA-1502 バージョン 1.0.10 の CVE の修正により、Istio ダッシュボードは Grafana の Home Dashboard メニューから利用できなくなりました。Istio ダッシュボードにアクセスするには、ナビゲーションパネルの Dashboard メニューをクリックし、Manage タブを選択します。
  • MAISTRA-1399 Red Hat OpenShift Service Mesh では、サポート対象外の CNI プロトコルがインストールされなくなりました。サポート対象のネットワーク設定は変更されていません。
  • MAISTRA-1089 2.0 への移行 コントロールプレーン以外の namespace で作成されたゲートウェイは自動的に削除されます。SMCP 仕様からゲートウェイ定義を削除した後にこれらのリソースを手動で削除する必要があります。
  • MAISTRA-858 Istio 1.1.x に関連する非推奨のオプションと設定 を説明する以下のような Envoy ログメッセージが予想されます。

    • [2019-06-03 07:03:28.943][19][warning][misc] [external/envoy/source/common/protobuf/utility.cc:129] 非推奨の 'envoy.api.v2.listener.Filter.config' オプションの使用。この設定はまもなく Envoy から削除されます。
    • [2019-08-12 22:12:59.001][13][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] lds.proto ファイルから非推奨の 'envoy.api.v2.Listener.use_original_dst' オプションを使用。この設定はまもなく Envoy から削除されます。
  • MAISTRA-806 エビクトされた Istio Operator Pod により、メッシュおよび CNI はデプロイできなくなります。

    回避策: コントロールペインのデプロイ時に istio-operator Pod がエビクトされる場合は、エビクトされた istio-operator Pod を削除します。

  • MAISTRA-681 Service Mesh コントロールプレーンに多くの namespace がある場合に、パフォーマンスの問題が発生する可能性があります。
  • MAISTRA-193 ヘルスチェックが citadel で有効になっていると、予期しないコンソール情報メッセージが表示されます。
  • Bugzilla 1821432: OpenShift Container Platform カスタムリソースの詳細ページのトグルコントロールで CR が正しく更新されません。OpenShift Container Platform Web コンソールの Service Mesh Control Plane (SMCP) Overview ページの UI のトグルコントロールにより、リソースの誤ったフィールドが更新されることがあります。SMCP を更新するには、YAML コンテンツを直接編集するか、トグルコントロールをクリックせずにコマンドラインからリソースを更新します。

1.2.6.2. Red Hat OpenShift 分散トレースの修正された問題

  • OSSM-1910 バージョン 2.6 で導入された問題により、OpenShift Container Platform Service Mesh で TLS 接続を確立できませんでした。今回の更新では、OpenShift Container Platform Service Mesh および Istio で使用される規則に一致するようにサービスポート名を変更することで、問題を解決します。
  • OBSDA-208 この更新の前は、デフォルトの 200m CPU および 256Mi メモリーリソース制限により、大規模なクラスターで分散トレーシングデータ収集が継続的に再開される可能性がありました。この更新プログラムは、これらのリソース制限を削除することで問題を解決します。
  • OBSDA-222 この更新の前は、OpenShift Container Platform 分散トレースプラットフォームでスパンがドロップされる可能性がありました。この問題の発生を防ぐために、このリリースではバージョンの依存関係が更新されています。
  • TRACING-2337 Jaeger が、Jaeger ログに以下のような警告メッセージを繰り返しロギングします。

    {"level":"warn","ts":1642438880.918793,"caller":"channelz/logging.go:62","msg":"[core]grpc: Server.Serve failed to create ServerTransport: connection error: desc = \"transport: http2Server.HandleStreams received bogus greeting from client: \\\"\\\\x16\\\\x03\\\\x01\\\\x02\\\\x00\\\\x01\\\\x00\\\\x01\\\\xfc\\\\x03\\\\x03vw\\\\x1a\\\\xc9T\\\\xe7\\\\xdaCj\\\\xb7\\\\x8dK\\\\xa6\\\"\"","system":"grpc","grpc_log":true}

    この問題は、gRPC ポートではなく、クエリーサービスの HTTP(S) ポートのみを公開することで解決されました。

  • TRACING-2009 Jaeger Operator が Strimzi Kafka Operator 0.23.0 のサポートを追加するように更新されました。
  • TRACING-1907: アプリケーション namespace に Config Map がないため、Jaeger エージェントサイドカーの挿入が失敗していました。Config Map は間違った OwnerReference フィールドの設定により自動的に削除され、そのため、アプリケーション Pod は ContainerCreating ステージから移動しませんでした。誤った設定が削除されました。
  • TRACING-1725 は TRACING-1631 に対応しています。これはもう 1 つの修正であり、同じ名前だが異なる namespace にある複数の Jaeger 実稼働インスタンスがある場合に Elasticsearch 証明書を適切に調整できるようになりました。BZ-1918920 も参照してください。
  • TRACING-1631 同じ名前を使用するが、異なる namespace 内にある複数の Jaeger 実稼働インスタンスを使用すると、Elasticsearch 証明書に問題が発生します。複数のサービスメッシュがインストールされている場合は、すべての Jaeger Elasticsearch インスタンスが個別のシークレットではなく同じ Elasticsearch シークレットを持っていたため、OpenShift Elasticsearch Operator がすべての Elasticsearch クラスターと通信できなくなりました。
  • TRACING-1300 Istio サイドカーの使用時に、Agent と Collector 間の接続に失敗しました。Jaeger Operator で有効になっている TLS 通信の更新は、Jaeger サイドカーエージェントと Jaeger Collector 間でデフォルトで提供されます。
  • TRACING-1208 Jaeger UI にアクセスする際に、認証の 500 Internal Error が出力されます。OAuth を使用して UI に対する認証を試行すると、oauth-proxy サイドカーが additionalTrustBundle でインストール時に定義されたカスタム CA バンドルを信頼しないため、500 エラーが出力されます。
  • TRACING-1166 現時点で、Jaeger ストリーミングストラテジーを非接続環境で使用することはできません。Kafka クラスターがプロビジョニングされる際に、Failed to pull image registry.redhat.io/amq7/amq-streams-kafka-24-rhel7@sha256:f9ceca004f1b7dccb3b82d9a8027961f9fe4104e0ed69752c0bdd8078b4a1076 のエラーが出力されます。
  • Trace-809 Jaeger Ingester には Kafka 2.3 との互換性がありません。Jaeger Ingester のインスタンスが複数あり、十分なトラフィックがある場合は、リバランスメッセージがログに継続的に生成されます。これは、Kafka 2.3.1 で修正された Kafka 2.3 のリグレッションによって生じます。詳細は、Jaegertracing-1819 を参照してください。
  • BZ-1918920/LOG-1619 Elasticsearch Pod は更新後に自動的に再起動しません。

    回避策: Pod を手動で再起動します。