1.8. 既知の問題
OpenShift Container Platform 4.1 では、匿名ユーザーは検出エンドポイントにアクセスできました。後のリリースでは、一部の検出エンドポイントは集約された API サーバーに転送されるため、このアクセスを無効にして、セキュリティーの脆弱性の可能性を減らすことができます。ただし、既存のユースケースに支障がで出ないように、認証されていないアクセスはアップグレードされたクラスターで保持されます。
OpenShift Container Platform 4.1 から 4.7 にアップグレードされたクラスターのクラスター管理者の場合、認証されていないアクセスを無効にするか、またはこれを引き続き許可することができます。特定の必要がなければ、認証されていないアクセスを無効にすることが推奨されます。認証されていないアクセスを引き続き許可する場合は、それに伴ってリスクが増大することに注意してください。
警告認証されていないアクセスに依存するアプリケーションがある場合、認証されていないアクセスを取り消すと 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
-
ユーザーによってプロビジョニングされるインフラストラクチャーで 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)
x86_64
アーキテクチャーを使用する VMware でクラスターを実行し、platform: none
フィールドがinstall-config.yaml
ファイルに設定されていると、OpenShift Container Platform クラスターバージョン 4.7 の新規インストール、またはクラスターバージョン 4.6 からバージョン 4.7 へのアップグレードに失敗する可能性があります。この失敗は、クラスターが仮想ハードウェアバージョン 14 以上で設定された仮想マシン (VM) を使用する場合に発生します。回避策として、仮想ハードウェアのバージョン 13 を使用するように仮想マシンを設定できます。VMware Cloud (VMC) にデプロイされるクラスターでは、仮想ハードウェアバージョン 14 以上の問題は発生しません。(BZ#1941714)
- Prometheus の割り当てられた PVC を使用してクラスターモニターリングを実行している場合、OpenShift Container Platform 4.7 へのアップグレード時に OOM による強制終了が生じる可能性があります。永続ストレージが Prometheus 用に使用される場合、Prometheus のメモリー使用量はクラスターのアップグレード時、およびアップグレードの完了後の数時間で 2 倍になります。OOM による強制終了の問題を回避するには、ワーカーノードで、アップグレード前に利用可能なメモリーのサイズを 2 倍にできるようにします。(BZ#1925061)
Pod をすぐに起動および停止すると、Pod が
Terminating
状態のままになる可能性があります。回避策として、以下のコマンドを実行して停止状態の Pod を削除する必要があります。$ oc delete --force -n <project_name> <pod_name>
この問題は OpenShift Container Platform の今後のリリースで修正されます。(BZ#1929463)
- RHCOS リアルタイム (RT) カーネルは、現時点ではコンピュートノードでのみサポートされており、コントロールプレーンノードではサポートされていません。コンパクトなクラスターは、OpenShift Container Platform 4.7 の RT カーネルではサポートされていません。(BZ#1887007)
- 現時点で、現在の OpenShift Container Platform の制限により、AWS C2S シークレットリージョンにインストールされたクラスターで、テクノロジープレビュー機能である AWS Secure Token Service (STS) を使用することはできません。これは OpenShift Container Platform の今後のリリースで修正されます。(BZ#1927157)
- Red Hat が推奨する CloudFormation テンプレート をベースに独自のインフラストラクチャーを使用して AWS C2S Secret Region にクラスターをインストールしようとしても、インストール時のブートストラップノードの作成に関する問題が原因でこれを実行することはできません。(BZ#1924080)
Performance Addon Operator を 4.6 から 4.7 にアップグレードすると、エラーを出して失敗します。
"Warning TooManyOperatorGroups 11m operator-lifecycle-manager csv created in namespace with multiple operatorgroups, can't pick one automatically"
アップグレードする前に、以前に特定の namespace にインストールされている場合の Performance Addon Operator のアップグレード に説明されている手順に従います。
サポートされる NIC で SR-IOV の変更を有効にするには、再起動が必要になる場合があります。現時点で SR-IOV は準備状態になると再起動を実行します。この再起動が Machine Config ポリシーの変更と同時に起こると、ノードは不確定 (undermined) の状態になる可能性があります。Machine Config Operator は、更新されたポリシーが適用されていなくても適用されたと仮定します。
注記この競合状態は、ノードを MCP および SR-IOV 変更を含む Machine Config Pool に追加すると生じる可能性もあります。
この問題を回避するには、MCO および SR-IOV の変更を必要とする新規ノードを順番に完了する必要があります。最初にすべての MCO 設定を適用し、ノードが解決するのを待機します。次に、SR-IOV 設定を適用します。
新規ノードが SR-IOV を含む Machine Config Pool に追加される場合は、Machine Config Pool から SR-IOV ポリシーを削除してから新規ワーカーを追加すことで、この問題を回避できます。次に、SR-IOV ポリシーを再度適用します。
-
stalld
サービスはカーネルのバグをトリガーするために、ノードのフリーズが生じます。この問題を回避するには、Performance Addon Operator はデフォルトでstalld
を無効にします。この修正は、DPDK ベースのワークロードに関連するレイテンシーに影響しますが、カーネルのバグ (BZ#1912118) が修正される場合に機能が復元されます。 -
ruby-kafka-1.1.0
およびfluent-plugin-kafka-0.13.1
gem を持つ Fluentd Pod には Apache Kafka バージョン 0.10.1.0 との互換性はありません。詳細は、Red Hat OpenShift Logging 5.0 リリースノートの既知の問題 を参照してください。 PTP (Precision Time Protocol) の障害が、アダプターカードの Mellanox MT27800 ファミリー [ConnectX-5] で確認されます。
ptp4l
ログでは、クロックの同期を妨げるエラーが確認されています。このようなエラーにより、NIC ハードウェアクロックのリセットが必要となるため、通常のシステムクロック更新よりも大規模な更新が必要になります。この問題の根本的な原因は不明であり、現時点で回避策はありません。
-
以前のバージョンでは、OpenStack SDK のバグにより、サーバーグループ
OSP16
を要求する際に失敗が生じました。そのため、コントロールプレーンサーバーの作成タスクの実行時に UPI Playbook のcontrol-plane.yaml
が失敗します。一時的な回避策として、OpenStack SDK を更新するためのホットフィックスを要求することができます。これにより、bastion ホストの OpenStack SDK が更新され、少なくともpython-openstacksdk-0.36.4-1.20201113235938.el8ost
に対して UPI Ansible タスクを実行できるようになります。このホットフィックスにより、Playbook が正常に実行されるようになりました。(BZ#1891816) 最新の Dell ファームウェア (04.40.00.00) ノードを使用してベアメタルへの IPI インストールを試みると、デプロイが行われず、エラーがステータスに表示されます。これは、eHTML5 を Virtual Console Plugin として使用する Dell Firmware (4.40.00.00) によって生じます。
この問題を回避するには、Virtual Console Plugin を HTML5 に変更し、デプロイメントを再度実行します。ノードが正常にデプロイされるはずです。詳細は、仮想メディアを使用してインストールするためにファームウェア要件 について参照してください。
ブートストラップ時に Kuryr を使用する RHOSP のクラスターのインストールは以下のメッセージを出してタイムアウトします。
INFO Waiting up to 20m0s for the Kubernetes API at https://api.ostest.shiftstack.com:6443... INFO API v1.20.0+ba45583 up INFO Waiting up to 30m0s for bootstrapping to complete... ERROR Attempted to gather ClusterOperator status after wait failure: listing ClusterOperator objects: Get "https://api.ostest.shiftstack.com:6443/apis/config.openshift.io/v1/clusteroperators": dial tcp 10.46.44.166:6443: connect: connection refused INFO Use the following commands to gather logs from the cluster INFO openshift-install gather bootstrap --help FATAL failed to wait for bootstrapping to complete: timed out waiting for the condition
タイムアウトは、Kuryr がクラスターのノードの RHOSP Networking サービス (neutron) サブネットを検出する方法の変更によって生じます。
回避策として、インストールドキュメントの Kubernetes マニフェストおよび Ignition 設定ファイルの作成セクションで説明されているコントロールプレーンマシンのマニフェストは削除しないでください。以下のコマンドを実行するように指示される場合:
$ rm -f openshift/99_openshift-cluster-api_master-machines-*.yaml openshift/99_openshift-cluster-api_worker-machineset-*.yaml
代わりに以下のコマンドを実行します。
$ rm -f openshift/99_openshift-cluster-api_worker-machineset-*.yaml
- OpenShift Container Platform 4.3 および 4.4 では、ユーザーが複数のタブでコンソールを開いている場合、Developer パースペクティブの一部のサイドバーのリンクがプロジェクトに直接リンクされず、選択されたプロジェクトで予期しない変化が生じます。この問題は、今後のリリースで解決される予定です。(BZ#1839101)
- OpenShift Container Platform 4.5 では、スケーリングパーミッションを持つユーザーは、デプロイメントまたはデプロイメント設定の編集権限がない場合、コンソールを使用してデプロイメントまたはデプロイメント設定をスケーリングできません。この問題は、今後のリリースで解決される予定です。(BZ#1886888)
- OpenShift Container Platform 4.5 では、Developer パースペクティブに最小限のデータがあるか、またはデータがない場合、大半のモニターリングチャートまたはグラフ (CPU 消費、メモリー使用量、および帯域幅) には -1 から 1 の範囲が表示されます。ただし、これらの値はいずれもゼロ未満の値にすることはできません。この問題は、今後のリリースで解決される予定です。(BZ#1904106)
- 現時点で、Web コンソールのクイックスタートカードの前提条件は、一覧ではなく段落で表示されます。この問題は、今後のリリースで解決される予定です。(BZ#1905147)
- 現時点で、Search Page で、Pipeline リソーステーブルは Name フィルターの適用または削除の直後に更新されません。ただし、ページを更新するか、または Pipelines セクションを閉じるか、または展開する場合に、Name フィルターが適用されます。Name フィルターを削除すると同じ動作が確認されます。この問題は、今後のリリースで解決される予定です。(BZ#1901207)
- Operator SDK CLI ツールは macOS での実行をサポートしますが、現時点で macOS バイナリーは OpenShift ミラーサイト にありません。macOS バイナリーは今後の更新に追加されます。(BZ#1930357)
- 現時点で、IPsec が有効にされているクラスターで、Red Hat Enterprise Linux (RHEL) 7.9 ノードは Red Hat Enterprise Linux CoreOS (RHCOS) ノードと通信できません。(BZ#1925925)
すべての HTTP トラフィックを HTTPS にリダイレクトする管理者によってプロビジョニングされる外部ロードバランサーを使用してデフォルトの Ingress Controller を公開するクラスターがある場合、4.6 から 4.7 へのアップグレードプロセスで Edge Termination を使用するように新規のクリアテキストの Ingress Canary ルートにパッチを適用する必要があります。
patch コマンドの例
$ oc patch route/canary -n openshift-ingress-canary -p '{"spec":{"tls":{"termination":"edge","insecureEdgeTerminationPolicy":"Redirect"}}}'
openswitch ("net: openvswitch: reorder masks array based on usage") コードへの更新により、openvswitch et/openvswitch/flow_table::flow_lookup がプリエンプション可能な (移行可能な) セクションの CPU ごとのデータにアクセスし、リアルタイムのカーネルパニックが発生します。その結果、kernel-rt は不安定になり、低レイテンシーのアプリケーションに影響します。
これが修正されるまで、OpenShift Container Platform 4.7 にアップグレードしないことが推奨されます。
SR-IOV デバイスプラグインでは、ノード上の VFIO デバイスをリソースとして公開することを許可しません。これにより、Intel デバイスで DPDK ワークロードがブロックされます。
この問題が修正されるまで、SR-IOV をお使いのお客様におかれましては OpenShift Container Platform 4.7 にアップグレードしないことをお勧めします。
OpenShift Container Platform 4.7 では、Operator インフラストラクチャーコードに追加される
ConfigInformers
オブジェクトは正常に起動しません。そのため、ConfigObserver
オブジェクトはキャッシュの同期に失敗します。これが生じると、oVirt CSI ドライバー Operator は数分後にシャットダウンし、これにより継続的に再起動が繰り返されます。回避策として、以下の手順を実行できます。oVirt CSI Operator でプロジェクトをクラスターに切り替えます。
$ oc project openshift-cluster-csi-drivers
warning: restart
メッセージの有無を確認します。$ oc status
警告がない場合は、以下のコマンドを入力します。
$ oc get pods
これにより、oVirt CSI ドライバー Operator は継続的に再起動しなくなります。(BZ#1929777)
-
oc annotate
コマンドは、等号 (=
) が含まれる LDAP グループ名では機能しません。これは、コマンドがアノテーション名と値の間に等号を区切り文字として使用するためです。回避策として、oc patch
またはoc edit
を使用してアノテーションを追加します。(BZ#1917280) -
OVN-Kubernetes ネットワークプロバイダーは、
NodePort
タイプサービスおよびLoadBalancer
タイプサービスのexternalTrafficPolicy
機能をサポートしていません。service.spec.externalTrafficPolicy
フィールドは、サービスのトラフィックをノードローカルまたはクラスター全体のエンドポイントにルーティングするかどうかを決定します。現在、このようなトラフィックはデフォルトでクラスター全体のエンドポイントにルーティングされており、トラフィックをノードローカルエンドポイントに制限する方法はありません。この問題は、今後のリリースで解決される予定です。(BZ#1903408) - 現在、Kubernetes ポートの衝突の問題により、Pod が再デプロイされた後でも、Pod 間の通信が機能しなくなる可能性があります。詳細および回避策については、Red Hat ナレッジベースソリューションの Port collisions between pod and cluster IPs on OpenShift 4 with OVN-Kubernetes を参照してください。(BZ#1939676、BZ#1939045)
- OpenShift Container Platform 4.7 では、Pod の制限および要求が Web コンソールに表示されません。この機能は、本リリースでは互換性をなくすような重大な変更を加えずにモニタリングに実装できません。この機能は OpenShift Container Platform 4.8 リリースで修正されています。詳細は、Red Hat ナレッジベースソリューション OpenShift Container Platform 4.7 console no longer displays request or limit line on CPU and Memory usage charts (BZ#1975147) を参照してください。