1.7. 既知の問題

  • ユーザーによってプロビジョニングされるインフラストラクチャーで vSphere 上の仮想マシンの電源をオンにすると、ノードのスケールアッププロセスは予想通りに機能しない可能性があります。ハイパーバイザー設定の既知の問題により、ハイパーバイザー内にマシンが作成されますが、電源がオンになりません。マシンセットをスケールアップした後にノードが Provisioning 状態のままである場合、vSphere インスタンス自体で仮想マシンのステータスを調査できます。VMware コマンド govc tasks および govc events を使用して、仮想マシンのステータスを判別します。以下のようなエラーメッセージがあるかどうかを確認します。

    [Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize(8192). ]

    この VMware KBase の記事 にある手順に従って、問題の解決を試行できます。詳細は、Red Hat ナレッジベースのソリューションの [UPI vSphere] Node scale-up doesn't work as expected を参照してください。(BZ#1918383)

  • 内部 Elasticsearch インスタンスが永続ボリューム要求 (PVC) を使用する場合、PVC には logging-cluster:elasticsearch ラベルが含まれる必要があります。ラベルがない場合、アップグレード時にガベージコレクションプロセスではそれらの PVC が削除され、Elasticsearch Operator は新規 PVC を作成します。バージョン 4.4.30 より前の OpenShift Container Platform バージョンから更新する場合は、ラベルを Elasticsearch PVC に手動で追加する必要があります。OpenShift Container Platform 4.4.30 以降では、Elasticsearch Operator はラベルを PVC に自動的に追加します。
  • 新規 OpenShift Container Platform z-stream リリースにアップグレードする場合、ノードがアップグレードされると API サーバーへの接続が中断され、API 要求が失敗する可能性があります。(BZ#1845411)
  • 新規 OpenShift Container Platform z-stream リリースにアップグレードする場合、ルーター Pod が更新されているためにルーターへの接続が中断される可能性があります。アップグレードの期間中、一部のアプリケーションには常に到達できなくなる可能性があります。(BZ#1809665)
  • デフォルトの CNI ネットワークプロバイダーを OVN-Kubernetes に設定して新規の OpenShift Container Platform リリースにアップグレードする場合、アップグレードは失敗し、クラスターは使用不可能な状態のままになります。(BZ#1854175)
  • イメージレジストリーのプルスルーの ImageContentSourcePolicy はまだサポートされていないため、イメージストリームでプルスルーポリシーが有効にされている場合、デプロイメント Pod はダイジェスト ID を使用してイメージをミラーリングできません。この場合、ImagePullBackOff エラーが表示されます。(BZ#1787112)
  • ユーザーによってプロビジョニングされるインフラストラクチャーを使用する RHOSP でのクラスターの実行中に RHEL ワーカーを使用して拡張すると、Ingress ポートの VIP が RHEL ワーカーにある場合にすべてのルートにアクセスできなくなります。回避策として、ルーター Pod を RHCOS ノードに再スケジュールし、Ingress VIP を RHCOS ノードに移行する必要があります。これを実行するには、アップグレード前に node.openshift.io/os_id: rhcos ラベルを Ingress コントローラーに追加します。

    $ oc -n openshift-ingress-operator edit ingresscontroller/default -o yaml
    spec:
      nodePlacement:
        nodeSelector:
          matchLabels:
            kubernetes.io/os: linux
            node-role.kubernetes.io/worker: ""
            node.openshift.io/os_id: rhcos

    (BZ#1848945)

  • Che Workspace Operator は、Workspace カスタムリソースの代わりに DevWorkspace カスタムリソースを使用するように更新されました。ただし、OpenShift Web ターミナルは引き続き Workspace カスタムリソースを使用します。このため、OpenShift Web ターミナルは最新バージョンの Che Workspace Operator で機能しなくなります。(BZ#1846969)
  • basic-user は、Developer パースペクティブの Monitoring ビューで Dashboard および Metrics タブを表示できません。(BZ#1846409)
  • Topology ビューで Knative サービスを右クリックすると、コンテキストメニューで Edit Application Grouping オプションが 2 度表示されます。(BZ#1849107)
  • Special Resources Operator (SRO) は OpenShift Container Platform 4.5 に正常にデプロイできません。このため、クラスターに必要な NVIDIA ドライバーが GPU リソースを必要とするワークロードを実行することができません。また、この既知の問題があるために Topology Manager 機能は GPU リソースでテストすることができませんでした。(BZ#1847805)
  • Web コンソールには、SLIRP バインディングで仮想マシンの vNIC を作成するオプションが含まれますが、これはサポートされていません。このオプションの使用を試みると、仮想マシンが起動に失敗します。このオプションは選択しないでください。(BZ#1828744)
  • ノード内で OpenShift SDN のデフォルト CNI ネットワークプロバイダーを使用する Pod がネットワーク通信を失い、Pod がクラッシュする可能性が生じる問題があります。これは、クラスターのアップグレード時に発生することがあります。回避策として、Pod を削除して再作成できます。(BZ#1855118)
  • マスターノードでカスタムプールがサポートされないという既知の問題があります。コマンド oc label node は新規カスタムロールをターゲットマスターノードに適用しますが、Machine Config Operator はカスタムプールに固有の変更を適用しません。これによりエラーが生じ、エラーは Machine Config Controller Pod ログに表示されます。コントロールプレーンノードの安定した状態を維持するための推奨される回避策として、マスターで複数のロールを適用しないことが推奨されます。(BZ#1797687)
  • クラスターのロギングパフォーマンスは、OpenShift Container Platform の以前のバージョンと比較すると低下します。これについては調査が行われており、OpenShift Container Platform の今後のリリースで更新されます。(BZ#1833486)
  • ボリュームに多数のファイルが含まれる場合、システムがボリュームをマウントできないというメッセージが表示される可能性があります。これは、Pod が FSGroup SecurityContext で設定されるボリュームをマウントする場合に発生する可能性があります。ファイルの GID 所有権がボリューム上のすべてのファイルについて再帰的に更新される必要があるためです。ユーザーは Pod が多数のファイルを持つボリュームを使用しており、FSGroup SecurityContext 設定の場合に起動にかなり時間がかかる可能性があることを予想する必要があります。(BZ#1515907)
  • プローブが頻繁に発生する Pod を実行すると、共通プロセス (common process) の数がすぐに増大する可能性があります。共通プロセス (common process) は親 (CRI-O) から切り離されるプログラムであり、コンテナーランタイムの実行に使用されます。プローブが頻繁に発生すると、systemd はその新規の子すべてを取得できず、一部の共通プロセス (common process) がゾンビ (zombie) 状態になる可能性があります。(BZ#1852064)
  • Microsoft Azure では、4.4 から 4.5 にアップグレードする際に、Ingress Operator はトークンの更新エラーにより DNSRecord を確認できない場合があります。Ingress Operator を再起動すると、この問題は解決されます。(BZ#1854383)
  • インストーラーでプロビジョニングされるインフラストラクチャーで Azure で OpenShift Container Platform を実行する場合、oc コマンドが TLS ハンドシェイクのタイムアウトエラーで断続的に失敗するという既知の問題があります。(BZ#1851549)
  • インストーラーでプロビジョニングされるインフラストラクチャーを使用する VMware vSphere インスタンス上のクラスターの場合、ブートストラップワーカーは失敗します。デフォルトのリソースプールは複数のインスタンスに解決します。(BZ#1852545)
  • OpenShift Container Platform クラスターのインストール時に Machine Config Operator (MCO) のパフォーマンスが低下する問題があります。これは、ブートストラップのプロセス時にマシン設定の順序付けの問題によって生じます。回避策として、カスタムマシン設定ファイルに 99- ではなく、98- の異なる優先順位の接頭辞を付ける必要があります。(BZ#1826150)
  • HTTPS プロキシーを通過する git clone 操作は失敗します。非 TLS (HTTP) プロキシーは問題なく使用できます。(BZ#1750650)
  • ソース URI が git:// または ssh:// スキームを使用する場合、git clone 操作はプロキシーの背後で実行されているビルドで失敗します。(BZ#1751738)
  • s390x および ppc64le アーキテクチャーについて、強制的な再起動または電源が切れた後にノードがワークロードで利用できない状態になる問題が確認されました。ノードを強制的に再起動したり、ノードの電源を切らないようにしてください。

    強制的な再起動または電源オフを回避できず、再起動後または電源オフ後のノードがワークロードで利用不可になる場合、以下を実行してください。

    1. ノードに対して SSH を実行します。
    2. CRI-O および kubelet サービスを停止します。
    3. rm -rf /var/lib/containers コマンドを実行します。
    4. CRI-O および kubelet サービスを再起動します。

      (BZ#1858411)

  • AWS アカウントが、グローバル条件を使用してすべてのアクションを拒否するか、または特定のパーミッションを要求する AWS 組織サービスコントロールポリシー (SCP) を使用するように設定されている場合、OpenShift Container Platform AWS のインストールは、提供される認証情報にインストールに必要なパーミッションが含まれる場合でも失敗します。

    この問題に対する回避策 が OpenShift Container Platform 4.5.8 で導入されました。(BZ#1829101)

  • OpenShift Container Platform 4.1 では、匿名ユーザーは検出エンドポイントにアクセスできました。後のリリースでは、一部の検出エンドポイントは集約された API サーバーに転送されるため、このアクセスを無効にして、セキュリティーの脆弱性の可能性を減らすことができます。ただし、既存のユースケースに支障がで出ないように、認証されていないアクセスはアップグレードされたクラスターで保持されます。

    OpenShift Container Platform 4.1 から 4.5 にアップグレードされたクラスターのクラスター管理者の場合、認証されていないアクセスを無効にするか、またはこれを引き続き許可することができます。特定の必要がなければ、認証されていないアクセスを無効にすることが推奨されます。認証されていないアクセスを引き続き許可する場合は、それに伴ってリスクが増大することに注意してください。

    警告

    認証されていないアクセスに依存するアプリケーションがある場合、認証されていないアクセスを取り消すと HTTP 403 エラーが生じる可能性があります。

    以下のスクリプトを使用して、検出エンドポイントへの認証されていないアクセスを無効にします。

    ## Snippet to remove unauthenticated group from all the cluster role bindings
    $ for clusterrolebinding in cluster-status-binding discovery system:basic-user system:discovery system:openshift:discovery ;
    do
    ### Find the index of unauthenticated group in list of subjects
    index=$(oc get clusterrolebinding ${clusterrolebinding} -o json | jq 'select(.subjects!=null) | .subjects | map(.name=="system:unauthenticated") | index(true)');
    ### Remove the element at index from subjects array
    oc patch clusterrolebinding ${clusterrolebinding} --type=json --patch "[{'op': 'remove','path': '/subjects/$index'}]";
    done

    このスクリプトは、認証されていないサブジェクトを以下のクラスターロールバインディングから削除します。

    • cluster-status-binding
    • discovery
    • system:basic-user
    • system:discovery
    • system:openshift:discovery

    (BZ#1821771)

  • oc annotate コマンドは、等号 (=) が含まれる LDAP グループ名では機能しません。これは、コマンドがアノテーション名と値の間に等号を区切り文字として使用するためです。回避策として、oc patch または oc edit を使用してアノテーションを追加します。(BZ#1917280)