Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

1.4. 既知の問題

1.4.1. 既知の問題

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

  • アップストリームの Istio プロジェクトでサポートされておらず、また OpenShift でも完全にサポートされていないため、Red Hat OpenShift Service Mesh は IPv6 をサポートしていません。
  • istio-init コンテナーでは、特権付きのセキュリティーコンテキストがあること、または最低でも root として実行され、NET_ADMIN 機能を使用できるようにする必要があります。istio-init コンテナーには、ネットワーク接続のインターセプトのために Pod の iptables ルールを適切に設定する必要があるため、特権が設定される必要があります。現時点で、Istio で必要な権限を縮小する方法について調査されています。

    注記

    Istio CNI プラグインは、各 Pod について追加の権限を要求することなく、Pod がサービスメッシュに参加することを許可します。プラグインを有効にするには、コントロールプレーンカスタムリソースファイルを編集し、istio_cni セクションの enabled フィールドを trueに設定します。

  • グラフレイアウト: Kiali グラフのレイアウトは、アプリケーションのアーキテクチャーや表示データ (グラフィックノードとその対話の数) によって異なることがあります。すべての状況に適した単一のレイアウトを作成することは不可能ではないにしても困難であるため、Kiali は複数の異なるレイアウトの選択肢を提供します。別のレイアウトを選択するには、Graph Settings メニューから異なる Layout Schema を選択します。
注記

Kafka パブリッシャーは Jaeger の一部としてリリースに含まれていますが、サポートされていません。

1.4.1.1. Red Hat OpenShift Service Mesh の問題

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

  • MAISTRA-684 istio-operator のデフォルトの Jaeger バージョンは 1.12.0 で、Red Hat OpenShift Service Mesh 0.12.TechPreview で提供される Jaeger バージョン 1.13.1 と一致しません。

    Jaeger バージョンを 1.13.1 に変更せずに Red Hat OpenShift Service Mesh 0.12.TechPreview をインストールすると、istio-system で Pod を確認する際に表示される内容が表示されます。

    $ oc get pods -n istio-system
    
    NAME                                      READY   STATUS             RESTARTS   AGE
    elasticsearch-0                           1/1     Running            0          16m
    grafana-694d54c786-m6dfc                  2/2     Running            0          18m
    istio-citadel-7658c96954-r8p46            1/1     Running            0          18m
    istio-egressgateway-d759556b8-hwc7n       1/1     Running            0          18m
    istio-galley-7cf565999f-b729t             1/1     Running            0          18m
    istio-ingressgateway-bc97545d5-5mpw4      1/1     Running            0          18m
    istio-pilot-dd7c67fb5-r8nbt               2/2     Running            0          29m
    istio-policy-b5df8c557-5xbbl              2/2     Running            0          18m
    istio-sidecar-injector-5bccb75987-xl6t6   1/1     Running            0          18m
    istio-telemetry-7f86b4f6d9-kgl5p          2/2     Running            0          30m
    jaeger-collector-85c597698c-54b2c         0/1     ImagePullBackOff   0          18m
    jaeger-query-59b877c9d9-92vmj             1/3     ImagePullBackOff   0          18m
    kiali-54ff784b57-8clh2                    1/1     Running            0          18m
    prometheus-7b89468cf6-pbnqh               2/2     Running            0          18m

    このコマンドを実行して istio-system イベントを表示します。

    $ oc get events -n istio-system

    以下のエラーが表示されます。

    ...
    8m50s       Warning   Failed                         pod/jaeger-query-59b877c9d9-92vmj              Failed to pull image "registry.redhat.io/distributed-tracing-tech-preview/jaeger-agent:1.12.0": rpc error: code = Unknown desc = Error reading manifest 1.12.0 in registry.redhat.io/distributed-tracing-tech-preview/jaeger-agent: error parsing HTTP 404 response body: invalid character 'F' looking for beginning of value: "File not found.\""
    ...

    回避策として、以下の変更をカスタムリソースに加え、Jaeger 1.13.1 をインストールします。

      tracing:
            enabled: true
            jaeger:
              tag: 1.13.1
  • MAISTRA-622 Maistra 0.12.0/TP12 では、パーミッシブモードは機能しません。ユーザーには Plain text モードまたは Mutual TLS モードを使用するオプションがありますが、パーミッシブモードのオプションはありません。
  • MAISTRA-572 Jaeger を Kiali と併用できません。本リリースでは、Jaeger は OAuth プロキシーを使用するように設定されていますが、ブラウザーでのみ機能するようにも設定され、サービスアクセスを許可しません。Kiali は Jaeger エンドポイントと適切に通信できないため、Jaeger が無効であると見なします。TRACING-591 も参照してください。
  • MAISTRA-465 Maistra Operator が、Operator メトリクスのサービスの作成に失敗します。
  • MAISTRA-453 新規プロジェクトを作成して Pod を即時にデプロイすると、サイドカーコンテナーの挿入は発生しません。この Operator は Pod の作成前に maistra.io/member-of を追加できないため、サイドカーコンテナーの挿入を発生させるには Pod を削除し、再作成する必要があります。
  • MAISTRA-357 AWS の OpenShift 4 Beta では、追加設定なしでポート 80 以外のポートの Ingress ゲートウェイを介して TCP または HTTPS サービスにアクセスすることはできません。AWS ロードバランサーには、サービスエンドポイントのポート 80 がアクティブであるかどうかを検証するヘルスチェックがあります。

    ロードバランサーのヘルスチェックは、Istio Ingress ゲートウェイポートの一覧で定義されている最初のポートのみを確認します。このポートは 80/HTTP:31380/TCP として設定されています。サービスがこのポート上で実行されていないと、ロードバランサーのヘルスチェックは失敗します。

    Ingress ゲートウェイを使用して HTTPS または TCP トラフィックをチェックするには、既存の HTTP サービスが必要になります (たとえば、Ingress ゲートウェイポート 80 で実行中の Bookinfo サンプルアプリケーション製品ページなど)。または、AWS EC2 コンソールを使用して、ロードバランサーがヘルスチェックを実行するために使用するポートを変更して、80 をサービスが実際に使用するポートに置き換えます。

  • MAISTRA-348 80 または 443 以外のポートでの Ingress ゲートウェイを使用して TCP サービスにアクセスするには、OpenShift ルーターではなく AWS ロードバランサーによって提供されるサービスホスト名を使用します。

    istio-ingressgateway ルートホスト名 (例: istio-ingressgateway-istio-system.apps.[cluster name].openshift.com) は、ポート 80 またはポート 443 トラフィックで機能します。ただし、そのルートのホスト名は他のポートトラフィックをサポートしません。

    Ingress ゲートウェイの TCP ポートで実行しているサービスにアクセスするには、istio-ingressgateway 外部ホスト名 (たとえば、[uuid].[aws region].elb.amazonaws.com) を取得し、その外部ホスト名の値を使用してトラフィックをチェックできます。

    外部 IP ホスト名の値を取得するには、以下のコマンドを実行します。

    $ oc -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
  • MAISTRA-193 ヘルスチェックが citadel で有効になっていると、予期しないコンソール情報メッセージが表示されます。
  • MAISTRA-158 同じホスト名を参照する複数のゲートウェイを適用すると、すべてのゲートウェイが機能しなくなります。
  • MAISTRA-108 OpenShift Container Platform クラスターで Operator Lifecycle Manager (OLM) をインストールするプロセスの一部として、レジストリー承認 Playbook が実行されますが、エラーが生じるためにプロセスが正常に完了されません。

    「openshift_control_plane : Check for file paths outside of /etc/origin/master in master’s config」タスクは、master-config.yaml ファイル内に「/dev/null」文字列が見つかると失敗します。この文字列は、Istio のインストール用にクラスターを準備する際に設定にパッチを適用すると追加されます。

    以下は 2 つの Webhook です。

    MutatingAdmissionWebhook:
    configuration:
    apiVersion: apiserver.config.k8s.io/v1alpha1
    kind: WebhookAdmission
    kubeConfigFile: /dev/null
    ValidatingAdmissionWebhook:
    configuration:
    apiVersion: apiserver.config.k8s.io/v1alpha1s
    kind: WebhookAdmission
    kubeConfigFile: /dev/null

    /var/lib/origin/null から /dev/null にソフトリンクを作成し、2 つの kubeConfigFile 変数を /var/lib/origin/null に置き換えます。これにより、タスクでは /var/lib/origin/null が元の "perimeter" のアセットとなり、実行を継続します。

  • MAISTRA-62 Istio インストールが正常に実行された後に、OCP クラスターを 3.10 から 3.11 にアップグレードすると、ストレージのアップグレードタスクが失敗し、アップグレードプロセス全体が失敗します。

1.4.1.2. Kiali の問題

  • KIALI-3118 ServiceMeshMemberRoll の変更 (namespace の追加または削除などの) 後、Kiali Pod が再起動し、その間にグラフページにエラーが表示されます。
  • KIALI-3096 サービスメッシュでラインタイムメトリクスが失敗します。サービスメッシュと Prometheus 間には oauth フィルターがあり、アクセスを付与するにはベアラートークンを Prometheus に渡す必要があります。Kiali は Prometheus サーバーと通信する際にこのトークンを使用するように更新されていますが、アプリケーションメトリクスは現在 403 エラーで失敗しています。
  • KIALI-2206 初回の Kiali コンソールへのアクセス時に、Kiali のキャッシュされたブラウザーデータがない場合、Kiali サービスの詳細ページの Metrics タブにある「View in Grafana」リンクは誤った場所にリダイレクトされます。この問題は、Kiali への初回アクセス時にのみ生じます。
  • KIALI-507 Kiali は Internet Explorer 11 に対応していません。これは、基礎となるフレームワークが Internet Explorer に対応していないためです。Kiali コンソールにアクセスするには、Chrome、Edge、Firefox、または Safari ブラウザーの最新の 2 バージョンのいずれかを使用します。