1.6. バグ修正

api-server-auth

  • 以前のバージョンでは、openshift-service-ca namespace には openshift.io/run-level: 1 のラベルが付けられました。これにより、この namespace の Pod は追加の権限で実行されました。このラベルは削除され、この namespace の Pod は適切な権限で実行されるようになりました。(BZ#1806915)
  • 以前のバージョンでは、openshift-service-ca-operator namespace に openshift.io/run-level: 1 のラベルが付けられました。これにより、この namespace の Pod は追加の権限で実行されました。新規インストールの場合にこのラベルは削除され、この namespace の Pod は適切な権限で実行されるようになりました。アップグレードされたクラスターの場合、このラベルを手動で削除し、影響を受ける Pod を再起動することができます。(BZ#1806917)
  • 以前のバージョンでは、openshift-oauth-apiserver namespace の OAuth API サーバー Pod を収集するための設定がなく、OAuth API サーバー Pod のメトリクスは Prometheus でクエリーできませんでした。不足している設定が追加され、OAuth API サーバーメトリクスが Prometheus で利用可能になりました。(BZ#1887428)
  • 以前のバージョンでは、Cluster Authentication Operator コードの満たされていない条件により、ログが実際に実行されていないデプロイメントに対する更新についてのメッセージで一杯になりました。Operator のステータスを更新するかどうかを判断するためのロジックが更新され、Cluster Authentication Operator ログで実際に生じていないデプロイメント更新についてのメッセージを受信しなくなりました。(BZ#1891758)
  • 以前のバージョンでは、Cluster Authentication Operator は cluster という名前の設定リソースのみを監視しました。これにより、Operator は default という名前の Ingress 設定の変更を無視しました。これにより、Ingress がカスタムノードセレクターで設定されている場合にスケジュール可能なワーカーノードがないと誤って仮定されました。Cluster Authentication Operator は名前に関係なくすべてのリソースを監視し、Operator は適切に Ingress 設定の変更を監視し、ワーカーノードの可用性を調整するようになりました。(BZ#1893386)

ベアメタルハードウェアのプロビジョニング

  • 以前のバージョンでは、一部のシステムでは、インストーラーは準備状態になり、失敗する前に Ironic と通信しました。今回のリリースでは、これは発生しなくなりました。(BZ#1902653)
  • 以前のバージョンでは、Dell システムで仮想メディアを使用する場合に、仮想メディアは、デプロイメントを開始する前にすでに割り当てられていると失敗する可能性がありました。これが生じると、Ironic が再試行するようになりました。(BZ#1910739)
  • 以前のバージョンでは、マスターノードはプロビジョニングインターフェイスの IPv6 リンクローカルアドレスを失い、これにより、プロビジョニングが IPv6 で機能しなくなりました。この発生を防ぐために、回避策が toggle addr_gen_mode に追加されました。(BZ#1909682)
  • 以前のバージョンでは、cluster-baremetal-operator は誤ったロギングライブラリーを使用していました。この問題により、コマンドライン引数が他の Operator と一貫性がなく、すべての Kubernetes ライブラリーのログが記録される訳ではありませんでした。この問題は、ロギングライブラリーの切り替えにより修正されています。(BZ#1906143)
  • インターフェイスで IPv6 を使用する場合、一定の時間が経過すると、Network Manager はリンクローカル IPv6 アドレスを削除します。この問題により、IPv6 リンクローカルアドレスの削除後に PXE ブートがノードに対して失敗しました。インターフェイス IPv6 addr_gen_mode を切り替えるための回避策が追加され、リンクローカルアドレスが再び追加されるようになりました。(BZ#1901040)
  • 以前のバージョンでは、Supermicro ノードは、ディスクへのデプロイメントに成功すると再起動時に PXE に対してブートしました。この問題は、BootSourceOverrideTarget の設定時に BootSourceOverrideEnabled を常に設定することにより修正されました。Supermicro ノードがデプロイメント後に永続的にディスクに対して起動するようになりました。(BZ#1918558)
  • baremetal IPI に同梱されるサービスエージェントイメージは、UEFI セキュアブートが有効にされたシステムで実行できるようになりました。ネットワークブートはセキュアなブートと互換性がないため、この場合は仮想メディアを使用する必要があります。(BZ#1893648)
  • ノードの自動検出は baremetal IPI で有効にされなくなりました。これは適切に処理されず、ベアメタルホストの登録の重複が発生しました。(BZ#1898517)
  • 以前のバージョンでは、syslinux-nonlinux パッケージは、ベアメタルのプロビジョニングイメージに含まれていませんでした。このため、BIOS ブートモードを使用するマシンへの仮想メディアのインストールは失敗しました。パッケージはイメージに含まれるようになりました。(BZ#1862608)
  • 以前のバージョンでは、一部の Dell ファームウェアバージョンは、Redfish PowerState を誤って報告していました。Dell iDRAC ファームウェアをバージョン 4.22.00.53 に更新すると、問題は解決されます。(BZ#1873305)
  • 以前のバージョンでは、Redfish は BIOS 設定値の取得や設定が可能なインターフェイス一覧にはありませんでした。そのため、BIOS 設定で Redfish を使用することはできませんでした。Redfish が一覧に含まれているようになり、BIOS 設定で使用できるようになりました。(BZ#1877105)
  • 以前のバージョンでは、BIOS 設定の設定に使用する Redfish インターフェイスが適切に実装されませんでした。その結果、Dell iDRACs は BIOS 設定値を設定できませんでした。実装エラーが修正されました。Redfish インターフェイスは BIOS 設定を設定できるようになりました (BZ#1877924)。
  • 以前のバージョンでは、Supermicro が IPMI で ートデバイスの設定を処理する方法の違いにより、イメージがディスクに書き込まれた後に IPMI および UEFI を使用する Supermicro ノードが失敗しました。Supermicro ノードが適切な IPMI コードを渡して、ディスクから起動するようになりました。その結果、デプロイメント後に Supermicro ノードが正しくディスクから起動されるようになりました。(BZ#1885308)
  • インストーラーでプロビジョニングされるインフラストラクチャーでのベアメタルインストールは、無効なルートデバイスのヒントが提供される場合でも、警告なしでイメージの書き込みを省略しなくなりました。(BZ#1886327)
  • 以前のバージョンでは、Supermicro ノードのブートモード情報が不完全であるために、Redfish を使用したデプロイメントが失敗しました。ブートモード情報が含まれるようになりました。これにより、Redfish を使用して Supermicro ノードをデプロイすることができます。(BZ#1888072)
  • ベアメタルのインストーラーでプロビジョニングされるインフラストラクチャーに組み込まれた Ironic API サービスは、8 つのワーカーではなく 4 つのワーカーを使用するようになりました。その結果、RAM の使用率が減少します。(BZ#1894146)

ビルド

  • 以前のバージョンでは、Dockerfile ビルドは /etc/pki/ca-trust ディレクトリーのパーミッションを変更したり、その中にファイルを作成したりすることができませんでした。この問題は、バージョン 4.6 の BZ#1826183 の修正によって生じました。この修正により、ビルドの CA を含む HTTPS プロキシーのサポートが追加され、/etc/pki/ca-trust が常にマウントされました。その結果、独自の CA を含むビルドや、システムの信頼ストアを変更したビルドがランタイム時に適切に機能できなくなりました。現在のリリースでは、この問題はバグ 1826183 を元に戻すことで修正されています。独自の CA を含むビルダーイメージが再び機能するようになりました。(BZ#1891759)
  • 以前のバージョンでは、OpenShift Container Platform バージョン 4.5 からバージョン 4.6 にアップグレードした後に、ビルドはソースコードのプルに使用された Git 設定にプロキシー情報を追加していないため、プライベートリポジトリーからの git clone の実行に失敗しました。そのため、クラスターがグローバルプロキシーを使用し、ソースがプライベート Git リポジトリーからプルされた場合、ソースコードはプルできませんでした。Git は、クラスターがグローバルプロキシーを使用する場合に適切に設定され、git clone コマンドはクラスターがグローバルプロキシーを使用する場合にプライベート Git リポジトリーからソースコードをプルできるようになりました。(BZ#1896446)
  • 以前のバージョンでは、ノードのプルシークレット機能は機能しませんでした。forcePull: true が Source および Docker ストラテジービルドに設定されている場合、ノードのプルシークレットは使用されませんでした。そのため、ビルドはクラスター全体のプルシークレットを必要とするイメージのプルに失敗しました。ノードのプルシークレットはユーザーによって提供されるプルシークレットと常にマージされるようになりました。その結果、ビルドは forcePull: true が設定されている場合にイメージをプルでき、ソースレジストリーにはクラスター全体のプルシークレットが必要になります。(BZ#1883803)
  • 以前のバージョンでは、OpenShift Container Platform のビルドは、Git SCP 形式の SSH の場所に対応しない Golang URL の解析により、SCP 形式の SSH の場所が指定されている場合に git clone で失敗しました。その結果、OpenShift Container Platform ビルドおよび S2I (Source-to-Image) は、それらのタイプのソース URL が指定されていると失敗しました。今回のリリースより、ビルドおよび S2I は Golang URL の解析をバイパスし、 ssh:// 接頭辞を取り除き、Git SCP 形式の SSH の場所に対応するようになりました (BZ#1884270)
  • 以前のバージョンでは、認証キーが base64 でエンコードされていない無効なビルドプルシークレットによって生じるビルドエラーは、ビルドスタックで伝播されませんでした。そのため、これらのエラーの根本的な原因を特定することは困難でした。現在のリリースではこの問題は修正され、これらのタイプのビルドエラーはビルドスタックで伝播されるようになりました。ユーザーが無効なビルドプルシークレットキーの根本的な原因を判別することがより容易になりました。(BZ#1918879)

クラウドコンピュート

  • 以前のバージョンでは、マシン API は認証情報シークレットが無効な場合にユーザーにフィードバックを提供しないため、クラウドプロバイダーの認証情報に問題がある場合の診断が困難でした。マシンセットの作成時または更新時に認証情報に問題がある場合 (認証情報のシークレットが存在しないか、またはフォーマットが正しくない場合など) にユーザーに警告が表示されるようになりました。(BZ#1805639)
  • 以前のバージョンでは、ベアメタルアクチュエーターは、Machine オブジェクトも削除して基礎となるホストを削除しましたが、これはマシンコントローラーの意図される操作ではありません。今回の更新により、ホストの検索に失敗した場合に InsufficientResourcesMachineError エラーの理由をマシンに設定し、ホストのないマシンが最初にスケールダウンされるようになりました。マシンは、ホストのプロビジョニング解除時に Failed フェーズに移行します。マシンヘルスチェックが失敗したマシンを削除し、Machine オブジェクトは自動的に削除されなくなりました。(BZ#1868104)
  • 以前のバージョンでは、マシンが Failed 状態になると、クラウドプロバイダーの状態は調整されませんでした。マシンのステータスでは、仮想マシンを削除できる場合に、削除後にクラウド仮想マシンの状態を Running と報告しました。マシンのステータスは、マシンが Failed 状態にある場合にクラウド仮想マシンの観察される状態を Unknown と、より正確に反映するようになりました。(BZ#1875598)
  • 以前のバージョンでは、複数のマシン API カスタムリソース定義に、対応する参照ドキュメントに対するテンプレートスキーマの説明に破損したリンクが含まれていました。リンクが正しいアップストリームの場所に対して更新され、破損しなくなりました。(BZ#1876469)
  • 以前のバージョンでは、コマンドの oc explain Provisioning は、古いバージョンの CRD 定義が使用されているためにカスタムリソース定義 (CRD) の説明を返しませんでした。CRD バージョンが更新され、Provisioning CRD の oc explain で予想される情報を返すようになりました。(BZ#1880787)
  • 以前のバージョンでは、ユーザーがディスクサイズが推奨される最小サイズよりも小さいマシンの作成または更新を行う場合、ディスクサイズが低レベルの状態にあると、マシンは警告なしに起動に失敗しました。ディスクサイズは初期のイメージサイズよりも大きくなければなりません。ユーザーには、ディスクサイズのレベルが低下しており、これによりマシンまたはマシンセットが起動しない可能性があることを示す警告が通知されるようになりました。(BZ#1882723)
  • 以前のバージョンでは、マシンの状態が調整時に永続化されませんでした。そのため、Machine オブジェクトの instance-state アノテーションと providerStatus.instanceState には異なる値が表示されることがありました。マシンの状態が調整されたマシンで複製され、instance-state アノテーションが providerStatus.instanceState の値に一致するようになりました。(BZ#1886848)
  • 以前のバージョンでは、publicIP オプションが MachineSet リソースオブジェクトで true に設定されている場合に、非接続環境の Microsoft Azure で実行されるマシンセットは起動とスケーリングに失敗しました。今回のリリースより、マシンの防ぐために、ユーザーは無効な publicIP 設定で、非接続環境のマシンセットを作成できなくなりました。(BZ#1889620)
  • 以前のバージョンでは、マシンの作成時に、特定のエラーのみが mapi_instance_create_failed の失敗メトリクスの更新を生じさせました。マシンの作成において発生するすべてのエラーが mapi_instance_create_failed メトリクスを適切に増分するようになりました。(BZ#1890456)
  • 以前のバージョンでは、クラスター Autoscaler は特定の状況におけるノードのスケーリングの意思決定用にテンプレートノードを使用しました。nodeAffinity 述語は意図された通りにスケールアップできず、保留中の Pod をスケジュールできないことがありました。今回の更新により、クラスター Autoscaler がスケールアップでき、ノードのアフィニティーチェックを渡すことができるように、テンプレートノードにできるだけ多くのラベルが含まれるようになりました。(BZ#1891551)
  • 以前のバージョンでは、マシンセットのデフォルトの削除の優先順位 (random) では、ビルド中のノードよりも Ready 状態のノードが優先されることはありませんでした。とくに多数のマシンをスケーリングする場合に、マシンセットをスケールアップしてからすぐにスケールダウンすると Ready 状態のすべてのノードが削除される可能性がありました。これにより、クラスターが利用できなくなる可能性がありました。今回のリリースより、低い優先順位がまだ Ready 状態にないマシンに割り当てられるようになりました。そのため、大規模なマシンのスケールアップの直後にスケールダウンが実行されると、ワークロードを実行しているマシンを削除する前にビルド中のマシンが削除されます。(BZ#1903733)

Cluster Version Operator

  • 以前のバージョンでは、インストールおよびアップグレードプロセスのメッセージには、完了前でも現在のプロセスが 100% 完了していると表示されました。この正しくないメッセージは丸めエラーによって生じました。今回のリリースより、パーセンテージは丸められず、メッセージには終了したサブプロセスの数と正確な完了度 (percent complete) の値が表示されるようになりました。(BZ#1768255)
  • 以前のバージョンでは、Cluster Version Operator (CVO) は、チャネルメンバーシップやエラータ URI などの Cincinnati メタデータをマージする際にプル仕様を実際の available-update および current-target の値と比較しました。有効な代替プル仕様を使用するミラーリングされたリリースイメージからインストールしているか、またはこれに対して更新している場合、Cincinnati メタデータを受信されませんでした。CVO は、どのレジストリーがイメージをホストするかにかかわらず、リリースをダイジェストで比較し、チャネルメンバーシップなどの Cincinnati メタデータを適切に関連付けるようになりました。(BZ#1879976)
  • 以前のバージョンでは、metrics-serving goroutine の競合状態により、CVO がシャットダウン時に停止した状態になる可能性がありました。管理対象オブジェクトの調整やモニターリングなどの CVO 動作は機能せず、更新やインストールがフリーズする可能性がありました。CVO は数分後にタイムアウトし、停止状態のメトリクスの goroutine を破棄し、意図された通りにシャットダウンするようになりました。(BZ#1891143)
  • 以前のバージョンでは、一部の CVO ログメッセージは、適切に検出されていた変更タイプの変数をレンダリングしませんでした。変数が正しくレンダリングされ、エラーメッセージが意図された通りに表示されるようになりました。(BZ#1921277)

CNF プラットフォーム検証

  • 以前のバージョンでは、プラットフォーム検証用にエンドツーエンドテストを実行すると、マシン設定に設定仕様が含まれていない場合に SCTP 検証ステップでエラーが生じました。今回のバグ修正により、設定仕様が見つからない場合に SCTP テストが省略されるようになりました。(BZ#1889275)
  • 以前のバージョンでは、Performance Addon Operator が 2 つ以上の NUMA ノードを持つホストで hugepages テストを実行し、パフォーマンスプロファイルがノード全体に分散される Huge Page を要求すると、テストは失敗しました。今回のバグ修正により、hugepages テストで NUMA ノードの Huge Page の数を判別する方法が修正されました。(BZ#1889633)

config-operator

  • 以前のバージョンでは、OpenShift Container Platform 4.1 以降アップグレードされたクラスターでアップグレードを実行中に、非推奨の status.platformStatus フィールドは設定されませんでした。そのため、アップグレードが失敗する可能性がありました。今回の修正により、Cluster Config Operator がこのフィールドを設定するように変更されました。その結果、このフィールドが変更されない場合でもアップグレードは失敗しなくなりました。(BZ#1890038)

コンソール kubevirt プラグイン

  • 以前のバージョンでは、ストレージクラスは DataVolume ソースの永続ボリューム要求 (PVC) から VM ディスク一覧に伝播しませんでした。ストレージクラスが Web コンソールの仮想マシンディスク一覧に表示されるようになりました。(BZ#1853352)
  • 以前のバージョンでは、インポートされた SR-IOV ネットワークを別のネットワークインターフェイスタイプに設定できました。今回の修正により、インポートされた SR-IOV ネットワークは SR-IOV ネットワークインターフェイスタイプのみに設定されるようになりました。(BZ#1862918)
  • 以前のバージョンでは、仮想マシン名がクラスターで再使用されると、イベント画面に表示される仮想マシンイベントが正しくフィルターされず、両方の仮想マシンのイベントが混在しました。今回のリリースより、イベントが適切にフィルターされ、イベント画面には現在の仮想マシンに属するイベントのみが表示されるようになりました。(BZ#1878701)
  • 以前のバージョンでは、VM Import ウィザードによって作成された V2VVMWare および OvirtProvider オブジェクトが適切にクリーンアップされませんでした。V2VVMWare および OvirtProvider オブジェクトは予想通りに削除されるようになりました。(BZ#1881347)
  • 以前のバージョンでは、使用状況データは仮想マシンが関連付けられていない仮想マシンのある Virtual Machine Interface (VMI) について表示されませんでした。VMI の使用状況データが利用可能な場合には、これが表示されるようになりました。(BZ#1884654)
  • 以前のバージョンでは、PVC のクローンが作成されると、その仮想マシンの状態が Pending と報告されましたが、追加情報は表示されませんでした。PVC のクローン作成時に、仮想マシンの状態が進捗バーと Pod または PVC へのリンクが含まれる追加の情報と共に インポート されるようになりました。(BZ#1885138)
  • 以前のバージョンでは、仮想マシンのインポートステータスに正しくない仮想マシンのインポートプロバイダーが表示されました。仮想マシンのインポートステータスに正しい仮想マシンのインポートプロバイダーが表示されるようになりました。(BZ#1886977)
  • 以前のバージョンでは、デフォルトの Pod ネットワークインターフェイスタイプは間違った値に設定されました。デフォルトの Pod ネットワークインターフェイスタイプは masquerade に設定されるようになりました。(BZ#1887797)

コンソールストレージプラグイン

  • 以前のバージョンでは、Local Storage Operator (LSO) のインストール時に、ノードのディスクは表示されませんでした。また、そのノードでディスクの検出を開始する方法はありませんでした。LSO のインストール時に、検出が実行されていない場合に、Disk タブが有効にされ、Discover Disks オプションが選択可能になりました。(BZ#1889724)
  • 今回の更新により、Disk Mode オプションの名前が Volume Mode 変更されました。(BZ#1920367)

Web コンソール (Developer パースペクティブ)

  • 以前のバージョンでは、ユーザーのパーミッションが不十分であるために、他のプロジェクトからイメージをプルするためのユーザーのアクセスは拒否されました。今回のバグ修正により、ロールバインディングについてのすべてのユーザーインターフェイスのチェックが削除され、ユーザーのコマンドラインの使用に役立つ oc コマンドアラートが表示されるようになりました。今回のバグ修正により、ユーザーの異なる namespace からのイメージの作成がブロックされなくなり、他のプロジェクトからイメージをデプロイできるようになりました。(BZ#1894020)
  • コンソールでは、仕様の resources および service account フィールドを使用する KafkaSource オブジェクトの以前のバージョンを使用していました。KafkaSource オブジェクトの最新の v1beta1 バージョンでは、ユーザーが v1beta1 バージョンで KafkaSource オブジェクトを作成できないために、これらのフィールドが削除されました。この問題は修正され、ユーザーは v1beta1 バージョンで KafkaSource オブジェクトを作成できるようになりました。(BZ#1892653)
  • 以前のバージョンでは、.git 接尾辞を使用して Git リポジトリーからのソースコードでアプリケーションを作成し、編集ソースコードリンクをクリックすると、page not found エラーが表示されました。今回の修正により、リポジトリー URL から .git 接尾辞が削除され、SSH URL を HTTPS URL に変換できるようになりました。生成されたリンクは正しいリポジトリーページにつながります。(BZ#1896296)
  • 以前のバージョンでは、基礎となる SinkBinding リソースが Container Source および KameletBinding リソースの場合に作成される実際のソースと共に Topology ビューに表示され、これはユーザーに混乱をもたらす可能性がありました。この問題は修正されました。イベントソース用に作成された実際のリソースが Topology ビュー に表示され、基礎となる SinkBinding リソースは (作成されている場合に) サイドバーに表示されるようになりました。(BZ#1906685)
  • 以前のバージョンでは、イベントカスタムリソースを作成せずに Serverless Operator をインストールすると、チャネルカードが表示されました。カードをクリックすると、混乱を生じさせるアラートメッセージが表示されました。この問題は修正されています。適切なアラートメッセージを含むチャネルカードは、チャネルのカスタムリソース定義が存在する場合にのみ表示されるようになりました。(BZ#1909092)
  • 以前のバージョンでは、Web 端末接続を閉じると、そのセッションからの端末出力がすべて非表示になりました。この問題は修正されています。端末の出力は、セッション終了後も保持されるようになりました。(BZ#1909067)
  • テクノロジープレビューのバッジは、 OpenShift Container Platform 4.6 の GA リリースと表示されていても Eventing ユーザーインターフェイスに表示されていました。テクノロジープレビューのバッジが削除され、変更は OpenShift Container Platform 4.6.9 バージョンにバックポートされました。(BZ#1894810)
  • 以前のバージョンでは、デプロイメントがコンソール編集フローを使用して編集されている場合には、デプロイメントのボリュームマウントは保持されませんでした。変更されたデプロイメント YAML は、Pod テンプレート仕様のボリュームマウントを書き換えるか、または削除しました。この問題は修正されています。ボリュームマウントは、コンソールの編集フローを使用してデプロイメントが編集されている場合でも保持されるようになりました。(BZ#1867965)
  • 複数のトリガーで Knative サービスにサブスクライブしているものと、サブスクライバーとして In Memory Channel にサブスクライブしているものがある場合、Knative リソースは Topology ビュー に表示されませんでした。この問題は修正され、Knative データモデルは適切なデータを返し、Knative リソースが Topology ビューに表示されるようになりました。(BZ#1906683)
  • 以前のバージョンでは、コードの取得中の無効な設定が原因で、非接続環境の Helm チャートは Developer Catalog に表示されませんでした。この問題は、プロキシー環境変数が考慮されるようにすることで修正され、Helm チャートは Developer Catalog に表示されるようになりました。(BZ#1918748)
  • Pipeline の実行時に、TaskRun リソースのログタブには、出力のコマンドの後に文字列 undefined が表示されました。これは、一部の内部文字列操作がログ出力に undefined を出力する一部のエッジケースによって生じました。この問題は修正され、Pipeline のログ出力はログストリームの空の行をドロップしなくなり、文字列の undefined を出力しなくなりました。(BZ#1915898)
  • 以前のバージョンでは、Add フローの Port 一覧では、公開されたポートのみにオプションを指定でき、カスタムポートは指定できませんでした。この一覧は typeahead 選択メニューに置き換えられ、アプリケーションの作成時にカスタムポートを指定できるようになりました。(BZ#1881881)
  • 以前のバージョンでは、条件付きタスクが失敗すると、完了したパイプライン実行で、失敗した条件付きタスクごとに永続的な保留状態のタスクが表示されました。この問題は、失敗した条件付きタスクを無効にし、省略 (skipped) アイコンをそれらのタスクに追加することで修正されています。これにより、パイプライン実行の状態をより明確に把握することができます。(BZ#1880389)
  • 以前のバージョンでは、Pod のスケールアップボタンまたはダウンボタンが単一の Pod リソースで利用可能であり、ユーザーがスケールダウンボタンを押すと、ページはクラッシュしました。この問題は、単一の Pod リソースのスケールアップまたはダウンボタンを非表示にすることで修正されています。(BZ#1909678)
  • 以前のバージョンでは、helm リリースをインスタンス化するためにチャートをダウンロードする際にチャート URL にアクセスできませんでした。これは、Helm チャートリポジトリーで参照されるリモートリポジトリーからの index.yaml ファイルがフェッチされ、そのまま使用されるために生じました。これらのインデックスファイルには、相対チャート URL が含まれているものもあります。この問題は相対チャート URL を絶対 URL に変換することによって修正され、これによりチャート URL にアクセスできるようになりました。(BZ#1912907)
  • Serverless 0.10 では、サポートされる最新バージョンが、triggersubscriptionchannel、および IMC について更新されました。それぞれに対応する静的モデルには、beta の API バージョンが表示されました。イベントリソースの API バージョンが v1 に更新され、UI にサポートされる最新バージョンが表示されるようになりました。(BZ#1890104)
  • 以前のバージョンでは、特定のデプロイメントから All workloads などのように、ユーザーが Monitoring Dashboard タブでワークロードを切り替えると、ダッシュボードには白いキャンバスが表示され、チャートは表示されませんでした。この問題は修正され、ユーザーがワークロードを切り替える際にダッシュボードににチャートが表示されるようになりました。(BZ#1911129)
  • 以前のバージョンでは、critical および warning などの重大度レベルのモニターリングアラートは info レベルのアラートとして処理されました。そのため、Monitoring Alert アイコンは、これらのアラートの Topology ビューのワークロードに表示されませんでした。この問題は修正され、critical などのアラートは warning レベルのアラートとして処理され、 Monitoring Alert アイコンが表示されるようになりました。(BZ#1925200)
  • 以前のバージョンでは、Helm インストールの YAML ビュー では、YAML コードのみが表示されました。Schema ビューアーが YAML エディターに追加され、スキーマとその説明が表示されるようになりました。(BZ#1886861)
  • 以前のバージョンでは、すべての Pod は、外部プライベートイメージレジストリーにアクセスするためにイメージのプルシークレットが追加された後でも、ErrImagePull および ImagePullBackOff エラーを出して失敗しました。これは、外部イメージレジストリーのパーミッションがなく、クラスターは指定されたシークレットなしに外部 URL から直接コンテナーイメージを読み込もうとしてイメージのダウンロードに失敗することによります。そのため、デプロイメントは、サービスアカウントまたはデプロイメントが手動で更新されるまで停止しました。この問題は修正され、新規デプロイメントは内部プライベートコンテナーレジストリーから Pod を起動し、サービスアカウントまたはデプロイメントへの追加の変更なしに外部のプライベートコンテナーレジストリーからコンテナーイメージをインポートできるようになりました。(BZ#1924955)
  • サンプルアプリケーションの作成時に、Developer パースペクティブは、相互に依存し、特定の順序で実行する必要のある複数のリソースを作成します。以前のバージョンでは、受付プラグインはこれらのリソースのいずれも確認できず、Developer パースペクティブでサンプルアプリケーションを生成できないことがありました。この問題は修正されています。このコードはリソースを必要な順序で作成するため、サンプルアプリケーションの作成の安定性が高くなります。(BZ#1933665)
  • 以前のバージョンでは、API サーバーはリソースの作成に失敗し、リソースクォータのリソースの更新中の競合により 409 の競合状態の応答ステータスコードを返すことがありました。この問題は修正されています。409 ステータスコードを受信すると、OpenShift Web コンソールは要求を最大 3 回再試行するようになりました。引き続き 409 のステータスコードを受信する場合には、コンソールにエラーメッセージが表示されます。(BZ#1928228)
  • 以前のバージョンでは、ユーザーが Topology ビューに移動すると、openshift namespace にテンプレートがない場合はエラーが生じました。このエラーが発生した場合は、空のページが表示されます。この問題は、テンプレートが openshift namespace に存在しないというエッジケースを処理することで修正されています。Topology ビューに移動し、予想通りにロードできるようになりました。(BZ#1952293)
  • OpenShift Pipeline は GA 機能であったにも拘らず、テクノロジープレビューのバッジは Web コンソールの OpenShift Pipeline ワークフローに表示されていました。テクノロジープレビューのバッジが削除されました。(BZ#1945153)
  • 以前のバージョンでは、プライベートリポジトリーの Git Import フローで作成されたパイプラインは実行できませんでした。これは、パイプライン ServiceAccount オブジェクトが、プライベート Git リポジトリーの Git import フローで作成されたシークレットを使用しないために生じました。今回の更新により、シークレット名をパイプライン ServiceAccount オブジェクトのアノテーションに追加し、パイプライン固有のアノテーションを指定されるシークレットに追加できるようになりました。その結果、プライベート Git リポジトリーのパイプラインは正常に実行されます。(BZ#1970485)
  • 以前のバージョンでは、Start Pipeline モーダルは空の文字列を有効なエントリーとして認識しなかったため、値を入力する必要がありました。これは、OpenShift Pipelines Operator は空の文字列を有効な パラメーターのデフォルト として認識している場合でも生じました。今回の更新により、オプションで空白の文字列を入力できるようになりました。(BZ#1966275)
  • 以前のバージョンでは、アノテーションはメタデータと共に Knative サービスの仕様に渡されていました。その結果、デコレーターはトポロジー内の Knative サービスの関連するリビジョンに表示されました。現在のリリースでは、アノテーションを Knative サービスメタデータにのみ渡すことで、この問題を修正しています。今回のバージョンでは、デコレーターはトポロジーの Knative サービスに対してのみ表示され、関連付けられたリビジョンには表示されなくなりました。(BZ#1954962)
  • 以前のバージョンでは、ユーザーは Developer パースペクティブからプライベートサービスとして Knative サービスを作成できませんでした。この問題は、networking.knative.dev/visibility': 'cluster-local ラベルを更新して修正されています。(BZ#1970796)

DNS

  • 以前のバージョンでは、一部のノードの /etc/hosts ファイルに無効なエントリーが含まれるため、クラスターで断続的な DNS 解決のエラーが発生する可能性がありました。今回のリリースより、無効なエントリーを持つ /etc/hosts ファイルがある場合でも DNS 解決が失敗しなくなりました。(BZ#1882485)

etcd

  • 以前のバージョンでは、etcd readiness プローブで lsof および grep コマンドが使用されました。これにより、機能しないプロセスが残される可能性がありました。etcd readiness プローブは TCP ポートプローブを使用するようになり、これはよりコストの低いプローブであり、機能しないプロセスが作成されることはなくなりました。(BZ#1844727)
  • 以前のバージョンでは、IP アドレスがコントロールプレーンノードで変更されると、ディスク上の証明書が無効になり、etcd がピアとの接続に失敗する理由についての不明確な etcd のエラーメッセージが出されました。コントロールプレーンノードの IP アドレスの変更が検出され、イベントが報告され、 EtcdCertSignerControllerDegraded のマークが付けられるようになりました。(BZ#1882176)
  • 以前のバージョンでは、etcd クラスターのメンバーが 3 メンバー未満の場合に新規の静的 Pod のリビジョンが発生する可能性があり、これが生じると、一時的にクォーラム (定足数) が失われました。すべてのコントロールプレーンノードが利用できない場合に静的 Pod のリビジョンは回避されるようになり、クォーラム (定足数) が一時的に失われることがなくなりました。(BZ#1892288)
  • 以前のバージョンでは、etcd バックアップには、バックアップが取られたコントロールプレーンノードに固有のリカバリー YAML ファイルが含まれました。そのため、あるコントロールプレーンノードから取得されるバックアップは別のコントロールプレーンノードで復元できませんでした。リカバリー YAML ファイルはより汎用的になり、etcd バックアップはすべてのコントロールプレーンノードで復元できるようになりました。(BZ#1895509)
  • 以前のバージョンでは、etcd バックアップスクリプトは最後の変更されたタイムスタンプを使用して最新のリビジョンを判別していました。これにより、正しくない静的 Pod リソースが etcd バックアップに保存されました。etcd バックアップスクリプトはマニフェストファイルを使用して最新のリビジョンを判別し、正しい静的 Pod リソースが etcd バックアップに保存されるようになりました。(BZ#1898954)
  • 以前のバージョンでは、IPv4 CIDR が install-config マシンネットワーク CIDR 配列の最初の要素でない限り、ブートストラップのレンダリングロジックは、IPv6 デュアルスタックモードを使用する場合に使用可能なマシンネットワーク CIDR を検出できませんでした。解析ロジックはすべてのマシンネットワーク CIDR をループするように修正され、IPv4 アドレスはデュアルスタックモードでマシンネットワーク CIDR 間で正しく読み込まれるようになりました。(BZ#1907872)
  • 以前のバージョンでは、openshift-etcd namespace が削除されると、etcd-endpoints 設定マップは再作成されず、クラスターは回復しませんでした。etcd-endpoints 設定マップがない場合はこれが再作成されるようになり、クラスターを回復できるようになりました。(BZ#1916853)

イメージレジストリー

  • 最後の Kubernetes の更新により API のタイムアウトが実行されました。このタイムアウトにより、34 秒後にすべての長期的に続く要求がドロップされます。大規模なリポジトリーをインポートする場合 (とくに複数のタグを持つリポジトリーの場合) に、タイムアウトに達すると、以前のバージョンのようにインポートを正常に実行できません。oc クライアントに異なるタイムアウトを設定するためのフラグがありますが、サンプルがないために、クライアントが API のタイムアウトをバイパスする方法を把握するのが困難でした。oc help でフラグの使用法が示されることにより、クライアントがこのオプションを検索するのが容易になりました。(BZ#1878022)
  • 以前のバージョンでは、同じロギングパッケージの 2 つの異なるバージョンを使用すると、Operator ログが部分的に失われました。今回の修正により、ロギングパッケージのバージョンが等しいバージョンとなり、Operator で使用されるアップグレードされたロギングパッケージは client-go で使用されるパッケージに一致するようになりました。ログが失われることはなくなりました。(BZ#1883502)
  • 以前のバージョンでは、プルーナーはイメージストリームを使用してレジストリー名を検出しようとしましたが、イメージストリームがない場合、プルーナーはレジストリー名の検出に失敗しました。今回の修正により、Image Registry Operator はレジストリー名と共にプルーナーを提供するようになりました。プルーナーはレジストリー名を検出するためにイメージストリームの有無に依存しなくなりました。(BZ#1887010)
  • 以前のバージョンでは、Operator Pod にはメモリー要求がありませんでした。ノードでのメモリー不足が発生した場合、Operator は他の BestEffort コンテナーの前にメモリー不足になるために強制終了する可能性がありました。今回の修正により、メモリー要求が追加されました。今回のリリースより、Operator は、他の BestEffort コンテナーがノードにある場合にメモリー不足になっても強制終了されなくなりました。(BZ#1888118)
  • 以前のバージョンでは、プルーナーはイメージストリームを使用してレジストリー名を検出しようとしましたが、イメージストリームがない場合、プルーナーはレジストリー名の検出に失敗しました。今回の修正により、Image Registry Operator は、レジストリーが設定されている場合にプルーナにレジストリー名を提供し、レジストリーがインストールされていない場合には、レジストリープルーニングを無効にするようになりました。(BZ#1888494)
  • 以前のバージョンでは、Operator ステータスの定義時に使用できる Operand デプロイメントのステータスに関する分析がありませんでした。一部のシナリオでは、Image Registry Operator は自らについて 2 つの矛盾する情報を表示しました。ユーザーには、Not Available (利用不可) であると同時に Not Degraded (低下していない) と通知しました。これらの 2 つの状態は、デプロイメントでイメージレジストリーの稼働の試行を停止した後も依然として提示されました。このシナリオでは、Degraded フラグを Operator で設定する必要があります。イメージレジストリーのデプロイメントを考慮して、Operator は、アプリケーションの実行を試行する際に Operand デプロイメントが進捗期限に達すると、自らを Degraded に設定するようになりました。デプロイメントの失敗時に、進捗期限に達すると、Operator は自らのステータスを Degraded に設定します。Operator は、引き続き Operator デプロイメントが進行中に Progressing と報告します。(BZ#1889921)
  • 以前のバージョンでは、Image Registry Operator は明示的なコマンドが提供されるため、そのエントリーポイントを使用しませんでした。クラスター全体の trusted-ca は Operator で使用されず、Operator はカスタム trusted-ca なしでは機能しないストレージプロバイダーに接続できませんでした。今回の修正により、Pod 仕様から明示的なコマンドが削除されました。イメージエントリーポイントは、trusted-ca を適用するコンテナーで使用されるようになりました。(BZ#1892799)
  • 以前のバージョンでは、プルーナーのデフォルトのログレベルは 2 でした。そのため、エラーが発生すると、プルーナーはスタックトレースをダンプしました。今回の修正により、デフォルトのログレベルは 1 に変更されました。今回のリリースより、スタックトレースなしでエラーメッセージのみが出力されるようになりました。(BZ#1894677)
  • 以前のバージョンでは、configs.imageregistry.operator.openshift.io ステータスフィールドは Operator の同期中に更新されませんでした。つまり、ステータスフィールドには最新の適用済みの swift 設定が表示されませんでした。今回の修正により、同期プロセスで configs.imageregistry.operator.openshift.io ステータスが仕様の値に更新されるようになりました。仕様およびステータスフィールドは、適用された設定を示すステータスフィールドと同期します。BZ#1907202)
  • 以前のバージョンでは、HTTP/2 プロトコルの再試行がないと関連する再試行可能なエラーが生じ、ミラーリングがエラーメッセージを出してキャンセルされました。今回の修正により、エラーメッセージが HTTP/2 プロトコル関連のエラーに対応する場合、再試行が追加されました。これらのエラーが生じる場合に、複数回の試行後にミラー操作がキャンセルされるようになりました。(BZ#1907421)
  • 以前のバージョンでは、node-ca デーモンセットの明示的なユーザーおよびグループ ID がない場合に、node-ca Pod で使用されているユーザーおよびグループの解釈する際に混乱が生じました。今回の修正により、node-ca デーモンセットに runAsUser および runAsGroup 設定が提供されます。node-ca DaemonSet YAML ファイルを検査する際に、ユーザーおよびグループの定義が明確になりました。(BZ#1914407)

ImageStreams

  • 以前のバージョンでは、イメージプルーナーでは、使用中のイメージの一覧を収集する際に StatefulSetJob、および Cronjob オブジェクトによって使用されるイメージを考慮しませんでした。そのため、誤ったイメージをプルーニングする可能性がありました。イメージプルーナーでは、イメージ一覧の作成時にこれらのオブジェクトによって使用されるイメージを考慮に入れるようになりました。これらのオブジェクトによって使用されるイメージはプルーニングされなくなりました。(BZ#1880068)
  • 以前のバージョンでは、新規に作成されたイメージストリームは publicDockerImageRepository 値で装飾されませんでした。ウォッチャーは、新規オブジェクトの publicDockerImageRepository 値を受信しませんでした。イメージストリームは正しい値で装飾されるようになりました。その結果、ウォッチャーは publicDockerImageRepository 値を持つイメージストリームを取得するようになりました。(BZ#1912590)

Insights Operator

  • 以前のバージョンでは、誤ったエラー処理により、Operator は監視するファイルで変化が生じるとそのプロセスをあいまいな方法で終了しました。Operator のエラー処理が改善されました。今回のリリースより、Operator は実行を継続し、監視するファイルが変更される場合でも終了プロセスシグナルを送信しなくなりました。(BZ#1884221)
  • 以前のバージョンでは、Operator はレポートのアーカイブ中にリソースの namespace を使用しませんでした。そのため、異なる namespace の同じ名前を持つリソースが上書きされました。Operator はデータのアーカイブ中に namespace と共にレポートパスを使用するようになりました。その結果、すべてのレポートが namespace ごとに収集されます。(BZ#1886462)

インストーラー

  • 以前のバージョンでは、virtual-media が使用されると、fast-track モードはノードが操作と操作の間で再起動されるために、予想通りに機能しませんでした。この問題は修正されています。(BZ#1893546)
  • 以前のバージョンでは、デュアルスタックのデプロイメントを使用する場合、ワーカーノードのホスト名はデプロイメントの前に検査される名前と一致しませんでした。これにより、ノードで手動の承認が必要でした。これは修正されています。(BZ#1895909)
  • コントロールプレーンとデプロイされるホスト間に最大 1 時間までの小規模なクロックスキューがある場合に、ベアメタルのプロビジョニングは失敗しなくなりました。(BZ#1906448)
  • vCenter ホスト名に大文字が含まれる場合、VMware vSphere の OpenShift Container Platform インストールプログラムでは、最終的に失敗するまでにクラスターの完了を待機する長い時間がかかりました。インストールプログラムは、初期プロセスで vCenter ホスト名に大文字が含まれていないことを検証し、待機時間を回避できるようになりました。(BZ#1874248)
  • 以前のバージョンでは、OpenShift Container Platform インストールプログラムの内部 Terraform バックエンドは、Amazon Web Services (AWS) の場合のように Terraform コアから Terraform プロバイダーへの大規模な入力をサポートしませんでした。bootstrap.ign ファイルが文字列として AWS プロバイダーに渡されると、入力制限を超える可能性があり、ブートストラップ Ignition S3 バケットの作成時にインストールプログラムが失敗する可能性がありました。今回のバグ修正により、Terraform バックエンドは、bootstrap.ign をディスク上のパスとして渡すように変更され、AWS プロバイダーは入力サイズの制限を無視して大規模なファイルを読み取れるようになりました。今回のリリースより、入力制限よりも大きなブートストラップ Ignition ファイルを作成する Cal effort インストールの実行時に、インストールプログラムが正常に実行されるようになりました。(BZ#1877116)
  • 以前のリリースでは、Red Hat OpenStack Platform (RHOSP) の起動前 (pre-flight) のインストーラーの検証がフレーバーのメタデータに対して実行されました。これにより、インストールの完了に必要な容量がある可能性のある、baremetal と検出されるフレーバーへのインストールが阻止される可能性がありました。通常、これは RHOSP 管理者がベアメタルフレーバーに適切なメタデータを設定しないことによって生じます。baremetal と検出されるフレーバーでの検証が省略され、間違って失敗がが報告されることがなくなりました。(BZ#1878900)
  • 以前のバージョンでは、GCP および Azure にインストールされるクラスターの Manual 認証情報モードは許可されませんでした。このため、ユーザーは手動の認証情報を使用してクラスターを GCP または Azure にインストールできませんでした。インストールプログラムは、GCP および Azure 用に提供される手動の認証情報を検証できるようになりました。(BZ#1884691)
  • 以前のバージョンでは、インストールプログラムは、Azure にインストールされたクラスターを破棄する前にリソースグループが存在することを検証しませんでした。これにより、インストールプログラムがエラーを出して継続的にループしました。インストールプログラムは、クラスターを破棄する前にリソースグループが存在することを検証でき、クラスターを正常に破棄できるようになりました。(BZ#1888378)
  • 以前のバージョンでは、インストールプログラムは、共有リソースでクラスターを作成する際に、AWS アカウントに UnTagResources パーミッションがあることをチェックしませんでした。そのため、クラスターを破棄する際に、インストールプログラムには既存のネットワークに追加されたタグを削除するパーミッションがありませんでした。今回のバグ修正により、共有ストレージリソースでクラスターを作成する際に、UnTagResources の有無をチェックし、インストールプロセスの終了前にアカウントに適切なパーミッションがあることを確認できるようになりました。(BZ#1888464)
  • openshift-install destroy cluster コマンドが適切に機能するには、インストールプログラムが最初に作成するクラスターオブジェクトを削除する必要があります。一部の例では、ホストされるゾーンオブジェクトがすでに削除され、これによりインストールプログラムがハングすることがありました。インストールプログラムは、オブジェクトがすでに削除されている場合にオブジェクトの削除を省略し、これによりクラスターが正常に破棄されるようになりました。(BZ#1890228)
  • 以前のリリースでは、Red Hat OpenStack Platform (RHOSP) のコントロールプレーンポートには追加のユーザー定義のセキュリティーグループが割り当てられませんでした。これにより、ユーザー定義のセキュリティーグループルールがコントロールプレーンノードに適切に適用されませんでした。追加のユーザー定義のセキュリティーグループがコントロールプレーンのポートに割り当てられるようになり、セキュリティーグループルールがコントロールプレーンノードに正しく適用されるようになりました。(BZ#1899853)
  • 以前のバージョンでは、別のセキュリティーグループをソースとするデフォルトの AWS セキュリティーグループのルールにより、クラスターを破棄する際に、インストールプログラムがその他のセキュリティーグループを削除することができませんでした。これにより、クラスターの破棄プロセスが完了せず、AWS リソースが残されたままになりました。デフォルトのセキュリティーグループからルールが削除され、他のセキュリティーグループの削除のブロックが解除されました。これにより、すべての AWS リソースをクラスターから削除されるようになりました。(BZ#1903277)
  • Red Hat OpenStack Platform (RHOSP) 検証に欠落しているガードが空のサブネット ID を持つサブネットの一覧を取得し、一部の RHOSP 以外のクラウドが予期しない値を返す可能性がありました。予期しないエラーコードにより検証に失敗し、OpenShift Container Platform が RHOSP 以外のクラウドにインストールできませんでした。今回のバグ修正により、欠落していたガードが空のサブネット ID に対して追加され、適切な検証が可能になりました。(BZ#1906517)
  • 以前のバージョンでは、VMware vSphere へのユーザーによってプロビジョニングされるインフラストラクチャーの参照ロードバランサーは単純な TCP チェック用に設定され、ヘルスチェックは api サーバーの正常性を考慮しませんでした。この設定により、API サーバーが再起動されるたびに API 要求が失敗することがありました。ヘルスチェックは /readyz エンドポイントに対して API サーバーの正常性をチェックし、参照 API ロードバランサーが API サーバーの再起動時に要求を正常に処理するようになりました。(BZ#1836017)
  • 以前のバージョンでは、インストールプログラムを使用する際に CTRL+C を押しても、プログラムは常に中断されず、常に予想通りに終了する訳ではありませんでした。インストールプログラムを使用して CTRL+C を押すと、プログラムは常に中断し、終了します。BZ#1855351)
  • 以前のバージョンでは、サービスプリンシパルの期限が切れた時など、無効な認証情報を使用して Azure のクラスターの削除を試行し、デバッグログを表示しない場合に、クラスターは削除されない場合も削除されているものとして表示されました。クラスターを削除しないことのほかに、ローカルに保存されたクラスターメタデータが削除され、openshift-install destroy cluster をコマンドを再度実行してもクラスターを削除できませんでした。無効な Azure 認証情報の使用時にクラスターの削除を試行する場合に、インストールプログラムはエラーを出して終了し、認証情報を更新してから再試行できるようになりました。(BZ#1866925)
  • 以前のバージョンでは、インストーラーでプロビジョニングされるインフラストラクチャーベアメタルのインストール方法の install-config.yaml ファイルは clusterProvisioningIP 名ではなく provisioningHostIP 名を誤って使用しました。これにより、ドキュメントと YAML ファイルで使用される実際のフィールド名との間に差異が生じました。provisioningHostIP フィールドが非推奨となり、clusterProvisioningIP が優先して使用されることになり、差異がなくなりました。(BZ#1868748)
  • 以前のバージョンでは、インストールプログラムは Ignition 設定ファイルの期限切れの証明書の有無をチェックしませんでした。期限切れの証明書が原因で、説明なしにインストールが失敗していました。インストールプログラムは、期限切れの証明書の有無をチェックし、証明書の期限が切れている場合に警告を出力するようになりました。(BZ#1870728)

kube-apiserver

  • 以前のバージョンでは、preserveUnknownFields フィールドは v1beta1 CRD で true に設定され、oc explain で CRD フィールドについての説明がなくてもエラーは出されませんでした。検証条件が追加され、preserveUnknownFields フィールドが false に設定されていない v1beta CRD のステータスに spec.preserveUnknownFields: Invalid value: true: must be false のエラーが表示されます。(BZ#1848358)
  • 以前のバージョンでは、IBM Cloud クラスターの OpenShift Container Platform では、LocalStorageCapacityIsolation 機能ゲートはデフォルトで無効にされていました。無効にされている場合、一時ストレージ要求または制限を設定すると、Pod がスケジュール対象外になります。今回の修正によりコードが変更され、LocalStorageCapacityIsolation 機能ゲートが無効になっている場合に、一時ストレージ要求または制限は無視され、Pod を予想通りにスケジュールできるようになりました。(BZ#1886294)

Red Hat OpenShift Logging

今回のリリースにより、Cluster LoggingRed Hat OpenShift Logging バージョン 5.0 になりました。詳細は、Red Hat OpenShift Logging 5.0 リリースノート を参照してください。

Machine Config Operator

  • 以前のリリースでは、Red Hat OpenStack Platform (RHOSP) にデプロイして、ホスト名と共に HTTP プロキシーを使用する場合、インストールプロセスがコンテナーイメージのプルに失敗し、エラーメッセージ unable to pull image がレポートされる可能性がありました。今回のバグ修正により、プロキシーが環境変数で設定される方法が修正され、ノードがリモートレジストリーからコンテナーイメージをプルできるようになりました。(BZ#1873556)
  • 以前のバージョンでは、アップグレード時に、以前のリリースの Machine Config Controller (MCC) は新規の Machine Config Operator (MCO) からの設定変更に応答する可能性がありました。MMC は次に別の変更を導入し、これにより、アップグレードプロセスで不要な再起動が生じました。今回のバグ修正により、MCC が新規 MCO からの設定変更に応答しなくなり、不要な再起動を回避できるようになりました。(BZ#1879099)
  • 以前のバージョンでは、CoreDNS 分散クエリーの転送プラグインが、設定されたすべての DNS サーバーに対してランダムにクエリーを実行していました。CoreDNS は機能しない DNS サーバーにクエリーするため、名前解決は断続的に失敗しました。今回のバグ修正により、クエリーが応答する最初の DNS サーバーに送信されるように、順次ポリシーを使用するよう転送プラグインが設定されました。(BZ#1882209)
  • 以前のバージョンでは、Machine Config Operator は multi-user.target.wants ディレクトリーからの有効にされた systemd ターゲットユニットのみを読み込みました。そのため、multi-user.target.wats ディレクトリーをターゲットにしないユニットはこのディレクトリーをターゲットとするように変更されました。今回の修正により、systemd で事前に設定されるファイルを使用して MCO で事前設定されたファイルを作成できるように MCO が変更されました。これにより、すべての systemd サービスが予想通りに有効および無効にされます。(BZ#1885365)
  • 以前のバージョンでは、クラスターを OVN-Kubernetes デフォルト Container Network Interface (CNI) に移行する際に、事前に設定された Linux ボンディングインターフェイスのボンディングオプションは無視されました。そのため、ボンディングは指定されるモードではなく、ラウンドロビンを使用して設定され、ボンディングが機能しない可能性がありました。ovs-configuration.service (configure-ovs.sh) が変更され、Linux ボンディング上の以前のボンディングオプションは ovs-if-phys0 Network Manager 接続にコピーされます。これにより、すべてのボンディングは最初に設定されるように機能するはずです。(BZ#1899350)
  • OpenShift Container Platform 4.6 では、BFQ (Budget Fair Queueing) Linux I/O スケジューラーを使用するように変更が加えられました。そのため、etcd の fsync I/O レイテンシーが引き上げられました。今回の修正により、I/O スケジューラーを使用しないように設定された NVMe デバイスを除き、I/O スケジューラーが mq-deadline スケジューラーを使用するように変更されました。Red Hat Enterprise Linux CoreOS (RHCOS) の更新では、BFQ スケジューラーは引き続き使用されます。その結果、レイテンシーが許容レベルに短縮されました。(BZ#1899600)

Web コンソール (Administrator パースペクティブ)

  • 以前のバージョンでは、依存関係の問題により、OpenShift Container Platform Web コンソールで YAML Editor の永続的なアンマウントおよび再マウントが生じました。そのため、YAML エディターは数秒ごとに YAML ファイルの上部にジャンプしました。今回の修正により、依存関係についてのデフォルトのパラメーター値が削除されました。その結果、YAML エディターは予想通りに動作するようになりました。(BZ#1903164)
  • 以前のバージョンでは、OpenShift Container Platform Web コンソールの Operator の説明のリンクがサンドボックス iframe でレンダリングされ、これによりその iframe 内の java スクリプトが無効になりました。そのため、ユーザーがリンクをクリックすると、サンドボックスの制限が新規タブによって継承されるため、JavaScript はリンクされたページを実行しませんでした。このリンクは、 allow-popups-to-escape-sandbox パラメーターを Operator の説明の iframe サンドボックスの属性に追加することで修正され、新規タブはサンドボックスの外部で開くことができます。その結果、Operator の説明からのリンクが開か、通常通りに実行されるようになりました。(BZ#1905416)
  • 以前のバージョンでは、OpenShift Container Platform Web コンソールのスケーリング Pod 機能は scale サブリソースを使用せず、デプロイメント設定に patch 動詞のないカスタムロールおよびデプロイメントは Web コンソールの Pod をスケーリングできませんでした。今回の修正によりコードが変更され、スケーリング Pod 機能で scale サブリソースを使用するようになりました。その結果、ユーザーは patch 動詞を追加せずに Web コンソールで Pod をスケーリングできます。(BZ#1911307)
  • 以前のバージョンでは、fieldDependency 記述が同一の名前を持つコントロールフィールドを使用するスキーマプロパティーに適用される OpenShift Container Platform Web コンソールでカスタムリソースを作成すると、getJSONSchemaPropertySortWeight ヘルパー関数が無限に再帰しました。これにより、DynamicForm コンポーネントが例外を出力し、Web ブラウザーがクラッシュする可能性がありました。今回の修正により、getJSONSchemaPropertySortWeight 関数が変更され、現在のパスを追跡し、パス全体を使用してフィールド名のみではなく依存関係を判別できるようになりました。その結果、DynamicForm コンポーネントは上記の条件下で例外を出力しなくなりました。(BZ#1913969)
  • 以前のバージョンでは、SamplesTBRInaccessibleOnBoot アラートの説明には bootstrapped という用語の誤字が含まれていました。アラートの説明の内容が正しくなりました。(BZ#1914723)
  • 以前のバージョンでは、CPU およびメモリーの specDescriptor フィールドにより、YAML エディターで空の文字列が追加されました。これらのフィールドは YAML エディターに空の文字列を追加しなくなりました。(BZ#1797766)
  • 以前のバージョンでは、Subscription および CSV オブジェクトは Operator のインストール時に Installed Operators ページに表示されました。この重複は修正され、一致する CSV オブジェクトがすでに存在する場合、 Subscription Operator が Installed Operators ページに表示されなくなりました。(BZ#1854567)
  • 以前のバージョンでは、ビルドが 1 時間前に開始された場合に、空のリソース使用状況チャートが Build details ページに表示されましたが、デフォルトは最後の 1 時間のみを表示するよう設定されていました。Build details ページの使用状況チャートには、ビルドの実行時間についてのデータが表示されるようになりました。(BZ#1856351)
  • 以前のバージョンでは、OpenAPI 定義は初回のページの読み込み時にのみ更新されました。OpenAPI 定義は 5 分間隔、およびモデルが API からフェッチされるたびに更新されるようになりました。OpenAPI 定義は、ページの更新がなくても最新の状態を維持します。(BZ#1856354)
  • 本リリースでは、クラスターモニターリングのドキュメントへの破損したリンクが修正されています。(BZ#1856803)
  • 以前のバージョンでは、、utm_source パラメーターは Red Hat Marketplace URL にありませんでした。本リリースでは、utm_source パラメーターが属性についての Red Hat Marketplace URL に追加されました。(BZ#1874901)
  • 以前のバージョンでは、Escape キーを使用しても、プロジェクトの選択ドロップダウンを閉じることができませんでした。Escape キーのハンドラーが更新され、ユーザーはプロジェクト選択ドロップダウンを終了し、閉じることができるようになりました。(BZ#1874968)
  • 以前のバージョンでは、スケジュールステータスに使用されるフォントの色はアクセシビリティーに準拠するものではありませんでした。フォントとフォントの色が更新され、使用しやすくなりました。スケジュールで無効にされたノードは黄色の警告アイコン (感嘆符アイコン) で表示されます。(BZ#1875516)
  • 以前のバージョンでは、一部の API 呼び出しのパッチのパスは正しくありませんでした。これにより、仕様記述子フィールドがリソースプロパティーを更新しませんでした。本リリースでは、記述子からパッチパスをビルドするロジックが更新されました。(BZ#1876701)
  • 以前のバージョンでは、Unschedulable ステータスフィールドは True に設定されている場合にのみ表示されました。本リリースでは、ステータス情報をより明確に表示するために、新たな UX デザインが実装されました。(BZ#1878301)
  • 以前のバージョンでは、同じ namespace の別のサブスクリプションに手動の承認ストラテジーがある場合に、自動承認ストラテジーが設定されたサブスクリプションは手動の承認ストラテジーを持つかのように動作しました。本リリースでは、手動承認ストラテジーを持つサブスクリプションによって、namespace のすべてのサブスクリプションが手動で動作することをユーザーに通知するよう更新が加えられました。(BZ#1882653)
  • 以前のバージョンでは、手動インストール計画が複数の Operator に影響する可能性がありました。ただし UI では、実際に影響を与える場合でもこれについて明確に示唆せず、承認を要求する UI が表示されました。そのため、ユーザーは複数の Operator のインストール計画を承認しても、UI ではそのことが明確に示唆されないことがありました。本リリースでは、UI には手動の承認計画で影響を受けるすべての Operator が一覧表示され、インストールされる Operator を明確に示されます。(BZ#1882660)
  • 以前のバージョンでは、namespace 作成モーダルから重複する namepsace を作成すると、拒否エラーが生じました。本リリースでは、プロジェクトを作成する際のエラーハンドラーが追加され、重複プロジェクトを作成しても拒否エラーが生じなくなりました。(BZ#1883563)
  • 以前のバージョンでは、Prometheus swagger 定義には解決できない $ref プロパティーが含まれていたため、Prometheus オペランドの作成フォームでランタイムエラーが発生しました。definitions プロパティーが、definitionFor ヘルパー関数で返されるスキーマに追加され、 $ref が解決され、ランタイムエラーが発生しなくなりました (BZ#1884613)。
  • 以前のバージョンでは、ユーザーは、インストールステータスページが表示されるまで、必要なリソースがバックグラウンドで読み込まれるのを待機する必要がありました。インストールステータスページは更新され、ユーザーの Operator のインストール時にすぐに表示されるようになりました。(BZ#1884664)
  • 以前のリリースでは、iOS は自己署名証明書を使用したセキュアな Websocket 経由で接続する機能をサポートしないため、コンソールに白い画面が表示されました。自己署名証明書のある Websocket が正常に実行されない場合は、接続が https にフォールバックし、コンソールが正しく読み込まれるようになりました。(BZ#1885343)
  • 以前のバージョンでは、ユーザーが Web コンソールで新規のロールバインディングを作成する際に、システムロールは存在しませんでした。システムロールはロール名のドロップダウンに表示されるようになり、ユーザーは新規ロールバインディングの作成時にシステムロールを選択できるようになりました。(BZ#1886154)
  • 以前のバージョンでは、ターミナルではすべての Pod が Linux Pod であると仮定し、Windows Pod を考慮しませんでした。そのため、ターミナルは sh コマンドにデフォルト設定される際に Windows Pod を使用すると機能しませんでした。ターミナルは Pod のタイプを検出し、必要に応じてコマンドを変更するようになりました。(BZ#1886524)
  • 以前のバージョンでは、新規プロビジョナー名には kubernetes.io/ 接頭辞が含まれないため、ユーザーは web-console から PVC を aws-ebs-csi-driver(gp2-csi) で作成する際に RWX および RWO アクセスモードを選択できました。追加のプロビジョナーが AccessMode マッピングに追加され、web-console から aws-ebs-csi-driver(gp2-csi) で PVC を作成する場合に RWX および RWO アクセスモードは利用できなくなりました。(BZ#1887380)
  • 以前のバージョンでは、アクティブな namespace を維持するロジックでは、現在アクティブな namespace の削除は考慮されませんでした。そのため、UI で最近削除された namespace は現在アクティブな namespace として設定されたままになる可能性がありました。今回のリリースより、アクティブな namespace のロジックが更新され、現行のブラウザーセッションでユーザーが現在アクティブな namespace を削除する際に、デフォルトで All namespaces に設定されるようになりました。ユーザーが現在アクティブな namespace を削除すると、同じブラウザーセッションでアクティブな namespace は All Namespaces に自動的に更新されるようになりました。(BZ#1887465)
  • 以前のバージョンでは、v0.1.1 のコンソールベンダーの 'runc' モジュールに潜在的なセキュリティー上の問題が含まれていたため、frog xray は 'runc' に潜在的な脆弱性があるものとしてフラグを付けていました。'runc' モジュールは修正を含む v1.0.0-rc8 バージョンに固定されました。これには修正が含まれ、'runc' の依存関係には潜在的な脆弱性があるものとしてのフラグが付けられなくなりました。(BZ#1887864)
  • 以前のバージョンでは、CSV および PackageManifest は最新バージョンだけではなく、提供されたすべての API バージョンを一覧表示したため、CSV および PackageManifest ページには重複 API が表示される可能性がありました。API を取得するためのロジックが更新され、提供される各 API の最新バージョンのみが表示されるようになりました。(BZ#1888150)
  • 以前のバージョンでは、Install Operand Form の記述が SynchMarkdownView コンポーネントに欠落していたため、マークダウンでフォーマットされませんでした。Install Operand Form がマークダウンでフォーマットされ、Install Operand Form の記述が正しくフォーマットされるようになりました (BZ#1888036)
  • 以前のバージョンでは、、fieldDependency specDescriptor は同位 (sibling) 以外の依存関係に対応するように設計されておらず、テストされませんでした。そのため、同位 (sibling) 以外の依存関係の場合あに、想定通りに動作することが保証されませんでした。今回の更新により、同位 (sibling) 以外の依存関係が予想通りに機能するようにロジックが修正されました。(BZ#1890180)
  • 以前のバージョンでは、ローカルの ensureKind 関数 が null の data 引数を適切に処理しない場合に例外が出力されました。今回の更新により、data 引数の使用する際に null の合体 (coalescence) が追加され、例外が出力されなくなり、null data 引数の正常な処理が可能になりました。(BZ#1892198)
  • 以前のバージョンでは、TLS シークレットはコンソールで編集できませんでした。今回の更新により、コンソールで TLS シークレットを更新できるように type フィールドが追加されました。(BZ#1893351)
  • 今回の更新により、Web コンソールに正しくないファイルシステムの容量および使用データが表示される問題が修正されました。(BZ#1893601)
  • 以前のバージョンでは、Web コンソールは Operator Lifecycle Manager (OLM) Operator のメトリクスを収集するために正しくないサービスアカウントの Prometheus Operator にパーミッションを誤って付与していました。コンソールは prometheus-k8s サービスアカウントにパーミッションを正しく付与し、メトリクスを収集できるようになりました。(BZ#1893724)
  • 以前のバージョンでは、コンソール Pod の TopologyKeykubernetes.io/hostname に設定され、これにより、更新およびゾーンの停止時に可用性の問題が生じました。今回の更新により、TopologyKeytopology.kubernetes.io/zone に設定され、更新およびゾーンの停止時の可用性が改善されました。(BZ#1894216)
  • 以前のバージョンでは、namespace に status ブロックがない OperatorGroup は、OperatorHub から新規 Operator をインストールする際に Web コンソールでランタイムエラーを発生させる可能性がありました。この問題は解決されています。(BZ#1895372)
  • 以前のバージョンでは、CRD のモデルが存在しない場合、コンソールは Provided API 一覧からカスタムリソース定義 (CRD) をフィルターしました。そのため、Details タブには初回インストール時に Provided API カードが表示されず、これにより、Operator が API を提供していないというように表示されました。今回の更新により、API カードからフィルターが削除され、モデルが存在しない場合にそれらが表示されるようになりました。その結果、Provisiond API カードとそれらの対応するタブは常に一致するようになり、モデルが利用可能ではない場合に UI に空の状態が表示されなくなりました。(BZ#1897354)
  • lodash startCase 関数が記述子フィールドのオペランドに適用されることがありました。そのため、フィールドラベルは Start Case としてフォーマットされ、記述子の displayName プロパティーを上書きしました。今回の更新により、記述子の displayName が指定されていない場合にのみ、startCase が適用され、オペランドフォームに displayName が適切に表示されるようになりました。(BZ#1898532)
  • 以前のバージョンでは、react-jsonschema-form は null に明示的に設定された配列タイプのスキーマを適切に処理しませんでした。DynamicForm コンポーネントに渡されるフォームデータに null に設定された配列タイプのプロパティーが含まれる場合、ランタイム例外が発生しました。今回の更新により、配列フィールドに null チェックが追加され、このシナリオで例外が出力されなくなりました。(BZ#1901531)

モニターリング

  • 以前のバージョンでは、prometheus-adapter は OpenAPI 仕様を実装しませんでした。そのため、API サーバーは、Prometheus アダプターがクラスターにデプロイされる間に OpenAPI が存在しないことを示すメッセージを、60 秒ごとにログに記録しました。さらに、KubeAPIErrorsHigh アラートはログのエラーによって実行される可能性がありました。今回の修正により、OpenAPI 仕様が prometheus-adapter に導入され、OpenShift Container Platform の他のコア API リソースに準拠するようになりました。(BZ#1819053)
  • 以前のバージョンでは、SCC (Security Context Constraints) を昇格する特定のシナリオで、Prometheus のステートフルセットのデプロイメントが失敗しました。nonroot SCC がモニターリング用のステートフルセットのデプロイメントに使用されるようになりました。今回の修正により、Alertmanager、Prometheus、および Thanos Ruler のすべてのモニターリングのステートフルセットのデプロイメントについて、以下の Kubernetes セキュリティーコンテキスト設定が必要になります。

    securityContext:
      fsGroup: 65534 1
      runAsNonRoot: true
      runAsUser: 65534 2
    1
    ファイルシステムグループ ID は、nobody ユーザーの ID 65534 に設定されます。kubelet は Pod の起動時にグループ ID を再帰的に設定します。Pod のボリュームパーミッションおよび所有権変更ポリシーの設定についての詳細は、Kubernetes ドキュメント を参照してください。
    2
    ステートフルセットのモニターリングデプロイメントはすべて、nobody ユーザーの ID 65534 で実行されます。

    (BZ#1868976)

  • 以前のバージョンでは、ハイパーバイザーが別の仮想プロセッサーを提供する間に仮想 CPU が実際の CPU を待機する時間である CPU Steal Time が報告される CPU 消費のメトリクスックに影響を及ぼしました。その結果、CPU 使用率はノードの CPU 数よりも大きくなる可能性がありました。今回のリリースより、CPU 消費を報告するメトリクスは CPU Steal Time を考慮しなくなり、報告される CPU 使用率は実際の CPU の使用状況を反映するようになりました。(BZ#1878766)
  • 以前のバージョンでは、権限昇格したパーミッションのない認証要求は、ユーザー定義プロジェクトの Prometheus の /api/v1/query および /api/v1/query_range エンドポイントにアクセスできました。そのため、通常のサービスアカウントのトークンにアクセスできるユーザーは、任意のモニターされるターゲットからメトリクスを読み取れる可能性がありました。kube-rbac-proxy は、/metrics エンドポイントのみへの要求を許可するように設定されるました。/metrics エンドポイントのクラスター全体のパーミッションのない認証要求は、api/v1/query および /api/v1/query_range エンドポイントへのクエリーに対応して HTTP 404 ステータスコードを受信します。(BZ#1913386)

ネットワーク

  • デフォルトゲートウェイを検出する ovn-kube のコードでは、マルチパス環境が考慮されませんでした。そのため、Kubernetes ノードはデフォルトゲートウェイを見つけることができず、起動に失敗しました。マルチパスが存在する場合に、最初に利用可能なゲートウェイを考慮するようロジックが変更されました。OVN-Kubernetes は、マルチパスおよび複数のデフォルトゲートウェイを使用する環境で機能するようになりました。(BZ#1914250)
  • クラスターをデュアルスタックモードでデプロイする場合、OVN-Kubernetes は信頼できない情報源を使用していました。

    OVN-Kubernetes マスターノードは初期同期を実行し、OVN および Kubernetes システムのデータベースの同期を保ちます。この問題により、OVN-Kubernetes の起動時に競合状態が生じ、一部の Kubernetes サービスに到達不可能になりました。ブートストラップのロジックでは、これらのサービスが孤立していると見なされるとこれらを削除しました。

    今回のバグ修正により、Kubernetes が信頼できる情報源 (source of truth) として使用されるようになりました。OVN-Kubernetes が正しく起動し、起動時に OVN と Kubernetes の両方の同期を維持するようになりました。(BZ#1915295)

  • Cluster Network Operator (CNO) 設定オブジェクトに additionalNetworks スタンザを指定して追加のネットワークを作成する場合、CNO は作成される NetworkAttachmentDefinition オブジェクトのライフサイクルを管理します。ただし、additionalNetworks スタンザから追加のネットワークを除外するように CNO 設定が更新されてもオブジェクトは削除されませんでした。本リリースでは、CNO は追加のネットワークに関連するすべてのオブジェクトを削除するようになりました。(BZ#1755586)
  • OVN-Kubernetes クラスターネットワークプロバイダーの場合、egress IP アドレスが設定され、egress IP アドレスをホストするノードのいずれかが到達不能になる場合、到達不能なノードに割り当てられる egress IP アドレスは他のノードに再度割り当てられませんでした。本リリースでは、egress IP アドレスをホストするノードが到達不能であるも、egress IP アドレスは別のノードに割り当てられます。(BZ#1877273)
  • OVN-Kubernetes クラスターネットワークプロバイダーの場合、br-ex ブリッジのルートの優先順位は、クラスターのインストール後に追加されるセカンダリーネットワークインターフェイスのデフォルトルートによって置き換えられる可能性があります。セカンダリーデバイスのデフォルトルートがノードの br-ex ブリッジよりも優先される場合、クラスターネットワークは機能しなくなります。本リリースでは、br-ex ブリッジのデフォルトルートを置き換えることはできません。(BZ#1880259)
  • OVN-Kubernetes クラスターネットワークプロバイダーを使用するクラスターの場合、Red Hat Enterprise Linux (RHEL) 7 ワーカーノードをクラスターに追加する際に、新規ワーカーノードはクラスターネットワークに接続できませんでした。本リリースでは、RHEL ワーカーノードを正常に追加できるようになりました。(BZ#1882667)
  • OVN-Kubernetes クラスターネットワークプロバイダーを使用するクラスターの場合、VLAN またはボンディングされたネットワークデバイスをノード上のデフォルトゲートウェイとして使用することができませんでした。本リリースでは、OVN-Kubernetes はこれらのネットワークデバイスと連携するようになりました。(BZ#1884628)
  • Kuryr クラスターネットワークプロバイダーを使用するクラスターの場合、ホストネットワークを使用する Pod 用に不要な Neutron ポートが作成されました。本リリースでは、Neutron ポートはホストネットワーク Pod 用に作成されなくなりました。(BZ#1886871)
  • OVN-Kubernetes クラスターネットワークプロバイダーを使用するクラスターの場合、br-ex ブリッジは veth<N> などの他のインターフェイスの割り当てをサポートせず、ブリッジに追加されるインターフェイスが正常に機能しませんでした。本リリースでは、新しいインターフェイスを br-ex インターフェイスに割り当てることができ、正常に機能するようになりました。(BZ#1887456)
  • OVN-Kubernetes クラスターネットワークプロバイダーを使用するクラスターの場合、ExternalIP アドレスが設定されていると、その IP アドレスを使用するように設定されていないクラスター内のノードは、externalIP に送信されるトラフィックをルーティングしませんでした。クラスターのすべてのノードが ExternalIP に必要なルートで設定されるようになりました。(BZ#1890270)
  • OpenShift SDN クラスターネットワークプロバイダーを使用するクラスターの場合、namespace とネットワーク namespace が削除される順序は無視できませんでした。Namespace オブジェクトに関連付けられた NetNamespace オブジェクトが最初に削除される場合、ネットワーク namespace を再度作成できませんでした。本リリースでは、namespace およびその関連付けられたネットワークの namespace は任意の順序で削除できるようになりました。(BZ#1892376)
  • OpenShift SDN クラスターネットワークプロバイダーを使用するクラスターの場合、以前のバージョンでは、ネットワークプロバイダーは unable to allocate netid 1 というメッセージをログに記録しました。このメッセージは、NETID が 10 未満の場合は安全性に問題がないため、本リリースでは OpenShift SDN が NETID が 10 未満の場合にこのメッセージを生成しなくなりました。(BZ#1897073)
  • クラスターが OVN-Kubernetes クラスターネットワークプロバイダーを使用している場合、すべてのインバウンド ICMPv6 はノードと OVN の両方に誤って送信されました。本リリースでは、ICMPv6 Neighbor Advertisement および Route Advertisement のみがホストと OVN の両方に送信されます。その結果、クラスター内のノードに送信された ping により、重複した応答が出されなくなりました。(BZ#1897641)
  • 以前のバージョンでは、ノードが多数あるクラスターでは、過剰なマルチキャスト DNS (mDNS) トラフィックが生成されました。その結果、ネットワークスイッチがオーバーフローする可能性がありました。本リリースでは、mDNS クエリーを 1 秒ごとに 1 回に制限しています。
  • 以前のバージョンでは、IPv6、Whereabouts CNI プラグイン、および指定の除外されたサブネット範囲を使用する追加のネットワークの割り当てを作成すると、除外されたサブネット範囲が無視されました。今回のバグ修正により、サブネット範囲を除外できるようにプラグインが修正されました。(BZ#1900835)
  • 以前のバージョンでは、特定の状況では、Pod は Multus のエラー状態により終了しませんでした。Multus のログには、問題が発生した場合に failed to destroy network for pod sandbox というメッセージが含まれます。今回のバグ修正により、Multus が削除されたキャッシュファイルを容認し、Pod が終了できるようになりました。(BZ#1900835)
  • 以前のバージョンでは、ネットワークポリシーで OpenShift SDN ネットワークプロバイダーを使用する場合、ネットワークポリシーを使用しない namespace であっても、Pod でネットワーク接続の問題が発生する可能性がありました。今回のバグ修正により、ネットワークポリシーを実装する基礎となる Open vSwitch (OVS) フローが有効になりました。(BZ#1914284)
  • 以前のバージョンでは、OVN-Kubernetes ネットワークプロバイダーを使用し、複数の Pod を使用して外部ゲートウェイとして機能させる場合に、Pod をスケールダウンすると、namespace の他の Pod がトラフィックを残りの外部ゲートウェイにルーティングすることができませんでした。トラフィックはノードのデフォルトゲートウェイにルーティングされました。今回のバグ修正により、Pod は残りの外部ゲートウェイへのトラフィックのルーティングを継続するようになりました。(BZ#1917605)

ノード

  • 以前のバージョンでは、Pod またはコンテナーの作成要求に時間がかかりすぎると、負荷がかかったクラスターはタイムアウトする可能性がありました。CRI-O がリソースの作成中の場合でも、kubelet はそのリソースの再要求を試行します。これにより、要求は name is reserved エラーを出して失敗します。CRI-O が元の要求を終了した後に、要求がタイムアウトしたことを認識し、失敗した Pod/コンテナーをクリーンアップし、プロセスを開始します。その結果、Pod およびコンテナーの作成は停止し、複数の name is reserved エラーが kubelet によって報告されます。これにより、すでにオーバーロードされたノードがさらにオーバーロードされます。今回の修正により CRI-O が変更され、システムの負荷が原因でタイムアウトした Pod またはコンテナー作成の進捗が保持されるようになりました。さらに CRI-O は kubelet からの新規の要求を停止するため、name is reserved エラーの発生が少なくなります。その結果、クラスターに負荷がかかる場合に、CRI-O は kubelet を表示し、クラスターへの負荷を軽減します。ノードの全体の負荷が減り、Kubelet および CRI-O はより迅速に調整されます。(BZ#1785399)
  • 以前のバージョンでは、ボリュームのディープディレクトリーにより、SELinux の再ラベル時間が長くなりました。そのため、コンテナー作成要求はタイムアウトし、kubelet がそのリソースの再要求を試行し、error reserving ctr name または Kubelet may be retrying requests that are timing out in CRI-O due to system load エラーが生じました。今回の修正により CRI-O が変更され、システムの負荷が原因でタイムアウトした Pod またはコンテナー作成の進捗が保持されるようになりました。そのため、コンテナーの要求を時間内に満たすことができます。(BZ#1806000)
  • 以前のバージョンでは、CRI-O は、ホストポートマッピングの管理に IPv4 iptables のみを使用していました。したがって、IPv6 では、ホストポートは機能しません。今回の修正により、IPv6 ホストポートをサポートするように CRI-O が変更されました。その結果、IPv6 を使用するホストポートは予想通りに機能します。(BZ#1872128)
  • 以前のバージョンでは、HTTP/2 トランスポートにはタイムアウトロジックを提供する接続に正しいオプションが割り当てられませんでした。これにより、VMWare ネットワークインターフェイス (およびその他のシナリオ) がが数秒間にわたって応答しなくなり、接続が警告なしに失敗しました。そのため、接続が滞り、これによりノードの停止していても検出されない、古い接続を使用した API 呼び出しの失敗などの他の関連する障害が発生しました。今回の修正により、適切なタイムアウトが追加されました。その結果、システム内の HTTP/2 接続の信頼性が高くなり、副次的な影響が軽減されます。(BZ#1873114)
  • 以前のバージョンでは、Topology Manager のエンドツーエンドテスト (openshift-tests run-test) では、Machine Config Daemon (MCD) が各ワーカーノードで実行されている必要がありました。これは、Red Hat Enterprise Linux CoreOS (RHCOS) ノードにデプロイされるノードの場合に該当し、Red Hat Enterprise Linux (RHEL) にデプロイされるノードの場合には該当しません。そのため、RHEL にデプロイされたクラスターに対して実行する場合、Topology Manager のエンドツーエンドテストは検出漏れ (false-negative) で失敗しました。今回の修正により、テストが変更され、MCD が検出されないノードを省略できるようになりました。その結果、検出漏れ (false-negative) を招く障害が報告されなくなりました。(BZ#1887509)
  • 以前のバージョンでは、ステータスが欠落している場合に Kubelet は移行を適切に処理しませんでした。そのため、一部の終了した Pod は再起動されませんでした。今回の修正により、failed というコンテナーのステータスが追加され、必要に応じてコンテナーを再起動できるようになりました。その結果、kubelet Pod の処理によって無効な状態の移行が生じなくなりました。(BZ#1888041)
  • 以前のバージョンでは、cAdvisor からのマシンメトリクスは Kubernetes 1.19 以降の場合に欠落していました。今回の修正により、CAdvisor マシンメトリクスを適切に収集できるようにコードが変更されました。その結果、マシンメトリクスが表示されるようになりました。(BZ#1913096)
  • 以前のバージョンでは、Horizontal Pod Autoscaler (HPA) は、init コンテナーを持つ Pod などの不完全なメトリクスを持つ Pod を無視していました。そのため、init コンテナーを持つ Pod はスケーリングされませんでした。今回の修正により、Prometheus アダプターが init コンテナーの完全なメトリクスを送信するようになりました。その結果、HPA は init コンテナーを持つ Pod をスケーリングできます。(BZ#1867477)
  • 以前のバージョンでは、Vertical Pod Autoscaler (VPA) にはデプロイメント設定のモニターするためのアクセスがありませんでした。そのため、VPA はデプロイメント設定のワークロードをスケーリングできませんでした。今回の修正により、VPA に適切なパーミッションが追加され、デプロイメント設定をモニターできるようになりました。その結果、VPA はデプロイメント設定のワークロードをスケーリングできます。(BZ#1885213)

Node Tuning Operator

  • 無効な Tuned プロファイルが作成されると、openshift-tuned supervisor プロセスは今後のプロファイルの更新を無視し、更新されたプロファイルの適用に失敗する可能性があります。今回のバグ修正により、Tuned プロファイルアプリケーションの成否などの状態についての情報が保持されるようになりました。openshift-tuned は、新規の有効なプロファイルを受信する際にプロファイルアプリケーションの障害から回復できるようになりました。(BZ#1919970)

oauth-proxy

  • 以前のバージョンでは、認証チェックの失敗についてのレガシーのロギングがありました。oauth-proxy の背後にあるサービスへの要求により、行がプロキシーログに書き込まれる可能性があり、これにより、ログが一杯になりました。今回の修正により、プロキシーから不要なログの行が削除されました。プロキシーではログのスパムが発生しなくなりました。(BZ#1879878)
  • 以前のバージョンでは、oauth-proxy コマンドで正しくないオプションの組み合わせが指定されると、無効なオプションの処理により nil 逆参照 (nil dereference) が生じました。これにより、使用メッセージの最後にセグメンテーションの障害スタックトレースが出力されました。オプションの処理が改善され、正しくないオプションの組み合わせが指定されている場合に nil 逆参照が発生しなくなりました。正しくないオプションを指定すると、スタックの追跡なしで使用メッセージが出力されます。(BZ#1884565)

oc

  • 以前のバージョンでは、ロギングライブラリーの変更により、ログレベルが 2 という低いレベルで goroutine スタックトレースが出力され、デバッグがより困難になりました。goroutine スタックトレースのログレベルが引き上げられ、ログレベル 6 以上でのみ出力されるようになりました。(BZ#1867518)
  • 以前のバージョンでは、同じユーザー名を使用して OpenShift CLI (oc) で複数クラスターにログインすると、毎回それぞれのクラスターにログインする必要がありました。ユーザー名が同じ場合でも一意になるように、コンテキスト名が適切に更新されました。ログイン後にコンテキストを切り替えると、再度ログインする必要がなくなりました。(BZ#1868384)
  • 以前のバージョンでは、oc adm release mirror を使用してリリースがディスクにミラーリングされる場合に、マニフェストファイル名にはアーキテクチャーの拡張 (例: -x86_64) が含まれませんでした。これにより、タグ名が競合しない場合でも、複数のアーキテクチャーを同じリポジトリーにミラーリングすることはできませんでした。ファイル名に適切なアーキテクチャーの拡張が含まれるようになり、タグ名の競合を防げるようになりました。(BZ#1878972)
  • 以前のバージョンでは、イメージ検証オブジェクトが適切に設定されず、これにより、イメージの検証時に OpenShift CLI (oc) が nil ポインター例外を出して失敗する可能性がありました。イメージ検証オブジェクトが適切に設定され、イメージの検証時に OpenShift CLI (oc) は、nil ポインター例外を出して失敗しなくなりました。(BZ#1885170)
  • 以前のバージョンでは、oc adm verify-image-signature を使用してイメージ署名を検証する際に正しくないユーザー名が使用され、イメージ署名の検証に失敗しました。イメージ署名を検証し、イメージ署名の検証が予想通りに機能する場合に、適切なユーザー名が使用されるようになりました。(BZ#1890671)
  • 以前のバージョンでは、バージョン情報を提供するメタデータはビルドプロセス中に生成されず、OpenShift CLI (oc) の Windows バイナリーに存在しませんでした。適切な Windows バージョン情報が生成され、Windows バイナリーで利用可能になりました。(BZ#1891555)
  • 以前のバージョンでは、ルート条件についての nil チェックがないと、ルートの記述時に OpenShift CLI (oc) でクラッシュが発生する可能性がありました。nil チェックが追加され、ルートの記述が適切に機能するようになりました。(BZ#1893645)
  • 以前のバージョンでは、OpenShift CLI (oc) にはクライアントスロットリングについての低い制限が設定され、API 検出に到達する要求はクライアントコードによって制限されました。クライアントのスロットリング制限が引き上げられ、クライアント側のスロットリングが表示される頻繁が低くなりました。(BZ#1899575)
  • 以前のバージョンでは、oc debug コマンドの変更時に init コンテナーのサポートが失われ、init コンテナーのデバッグを行うことができませんでした。init コンテナーのサポートが oc debug コマンドに追加され、init コンテナーのデバッグが可能になりました。(BZ#1909289)

OLM

  • Marketplace Operator は、marketplace-operator Pod が正常に終了するたびにその提供するサービスが低下することを報告するように作成されました。このレポートは通常のクラスターアップグレード時に発生しました。これにより、通常のアップグレード時に Pod が動作が低下したものとして報告されるため、混乱が生じました。Marketplace Operator は、正常に終了し、Telemeter クライアントが degraded のフラグを付けない場合は低下したことを示す報告をしなくなりました。(BZ#1838352)
  • 以前のバージョンでは、Operator のアップグレード時に、Operator Lifecycle Manager (OLM) はアップグレードの完了前に既存のクラスターサービスバージョン (CSV) を削除しました。これにより、新規 CSV が Pending 状態のままになりました。今回のバグ修正により OLM が更新され、サービスアカウントの所有権がチェックされ、新規 CSV について新規サービスアカウントが作成されるようになりました。その結果、新規 CSV が Succeeded の状態に正常に移行するまで既存の CSV が削除されなくなりました。(BZ#1857877)
  • 以前のバージョンでは、Operator Lifecycle Manager (OLM) は存在しないチャネルを指定する Subscription オブジェクトを受け入れました。サブスクリプションは正常であると表示され、関連するエラーメッセージが表示されないため、ユーザーに混乱を招きました。今回のバグ修正により OLM が更新され、このシナリオでは Subscription オブジェクトが失敗するようになりました。クラスター管理者は、以下の例のように、依存関係の解決の失敗情報について default namespace のイベントを確認できます。

    $ oc get event -n default

    出力例

    LAST SEEN   TYPE      REASON             OBJECT                    MESSAGE
    6m22s       Warning   ResolutionFailed   namespace/my-namespace    constraints not satisfiable: my-operator is mandatory, my-operator has a dependency without any candidates to satisfy it

    (BZ#1873030)

  • 以前のバージョンでは、Operator Lifecycle Manager (OLM) での受付 Webhook 設定のサポートは、API サーバーのデプロイ時に使用される CA 証明書生成コードを再利用していました。このコードで使用されるマウントディレクトリーは、証明書情報を以下の場所に配置します。

    • /apiserver.local.config/certificates/apiserver.crt
    • /apiserver.local.config/certificates/apiserver.key

    ただし、Kubebuilder または Operator SDK を使用してビルドされる受付 Webhook は、CA 証明書が以下の場所にマウントされることを予想します。

    • /tmp/k8s-webhook-server/serving-certs/tls.cert
    • /tmp/k8s-webhook-server/serving-certs/tls.key

    この不一致により、Webhook の実行が失敗しました。今回のバグ修正により、OLM が更新され、Kubebuilder または Operator SDK でビルドされる Webhook によって予想されるデフォルトの場所に Webhook CA 証明書がマウントされるようになりました。その結果、Kubebuilder または Operator SDK でビルドされた Webhook を OLM でデプロイできるようになりました。(BZ#1879248)

  • API サービス、変換 Webhook、または受付 Webhook を使用して Operator をデプロイする場合、Operator Lifecycle Manager (OLM) は既存のリソースから CA を取得し、CA ハッシュアノテーションを算出する必要があります。このアノテーションは、OLM がデプロイメントが正常にインストールされていることを確認するために使用するデプロイメントハッシュに影響を与えます。現時点で、OLM は変換 Webhook から CA を取得しないため、無効なデプロイメントハッシュが発生し、これにより OLM はクラスターサービスバージョン (CSV) の再インストールを試行します。

    CSV が変換 Webhook を定義するものの、API サービスまたは受付 Webhook が含まれていない場合、CSV は Pending、ReadyToInstall、および Installing フェーズを無限に繰り返します。今回のバグ修正により OLM が既存の変換 Webhook を使用して CA の値を取得できるように更新され、デプロイメントハッシュを正しく計算されるようになりました。その結果、OLM は API サービスまたは受付 Webhook なしで変換 Webhook を定義する CSV をインストールできるようになりました。(BZ#1885398)

  • 以前のバージョンでは、opm コマンドの semver-skippatch モードでは、リリース前のバージョンが無視され、後のパッチバージョンのあるバンドルのみが有効な置き換えとして許可されました。同じパッチバージョンであるが、後のリリース前のバージョンを持つバンドルは、置き換え用として許可されませんでした。今回のバグ修正により、semver-skippatch チェックをベースをパッチバージョンのみでなく、セマンティクスバージョン全体とするように opm コマンドが更新されました。その結果、後のリリース前のバージョンが semver-skippatch モードに対して有効になりました。(BZ#1889721)
  • 以前のバージョンでは、Marketplace Operator はクラスターのアップグレード時に古いサービスをクリーンアップせず、Operator Lifecycle Manager (OLM) はサービスを検証せずに古いサービスを受け入れました。そのため、古いサービスはトラフィックを、古いコンテンツが含まれるカタログソース Pod に転送しました。今回のバグ修正により OLM がサービスに仕様 ハッシュ情報を追加し、ハッシュ情報を比較してサービスに正しい仕様が含まれることをチェックするように更新されました。OLM はサービスが古い場合に削除し、再作成します。その結果、サービス仕様はトラフィックを正しいカタログソース Pod に転送するようになりました。(BZ#1891995)
  • Operator を非接続レジストリーにミラーリングした後に、関連するバンドルイメージがないために Operator のインストールが失敗する可能性がありました。この問題は、バンドルイメージが index.db データベースに存在しないために生じました。今回のバグ修正により、opm コマンドが更新され、バンドルイメージがデータベースの related_images テーブルに置かれるようになりました。(BZ#1895367)
  • 以前のバージョンでは、Operator の作成者は、1 から 65535 の範囲外で設定されたコンテナーのポートを持つ Webhook を定義するクラスターサービスバージョン (CSV) を作成できました。そのため、検証の失敗により ValidatingWebhookConfiguration または MutatingWebhookConfiguration オブジェクトを作成できませんでした。正常にインストールされることのない CSV が作成される可能性がありました。CSV のカスタムリソース定義 (CRD) 検証に、webhookDescription ContainerPort フィールドの適切な最小および最大値が含まれるようになりました。コンテナーポートが定義されていない場合、デフォルトで 443 に設定されるようになりました。無効なコンテナーポートを持つ CSV は CSV の作成前に検証に失敗するようになりました。(BZ#1891898)
  • いずれのチャネルエントリーでも参照されない標準 Operator イメージバンドルは opm index prune 操作後もそのまま残りました。これにより、予期しないインデックスイメージがミラーリングされました。標準イメージバンドルは、インデックスがプルーニングされる際に削除され、Operator カタログが後にミラーリングされる際に予期しないイメージが含まれなくなりました。(BZ#1904297)
  • 以前のバージョンでは、Operator の更新により、Operator Pod が新規サービスアカウントの作成前にデプロイされる可能性がありました。Pod は既存のサービスアカウントを使用してデプロイでき、パーミッションが不十分な場合に起動に失敗する可能性がありました。クラスターサービスバージョン (CSV) が Pending から Installing 状態に移行する前に新規サービスアカウントが存在することを確認するためのチェックが追加されました。新規サービスアカウントが存在しない場合、CSV は Pending 状態のままとなり、デプロイメントは更新されません。(BZ#1905299)
  • 以前のバージョンでは、Operator Lifecycle Manager (OLM) が ClusterServiceVersion (CSV) オブジェクトを複数のターゲット namespace にコピーする際に、コピーした CSV の .status.lastUpdateTime フィールドは現在の時間に設定されました。現在の時間が元の CSV の最後の更新時間よりも後の時間である場合、コピーされる CSV が元の CSV に一致しない同期の競合状態がトリガーされました。これは、多くの namespace がクラスターに存在する場合に発生する可能性が高くなりました。元の .status.lastUpdateTime タイムスタンプがコピーされた CSV に保持され、同期の競合状態は .status.lastUpdateTime の値の差異によってトリガーされなくなりました。(BZ#1905599)
  • 以前のバージョンでは、ClusterServiceVersion (CSV) オブジェクトの StrategyDetailsDeployment オブジェクトで定義される Pod テンプレートには、CSV で定義されたものと一致しない Pod アノテーションが含まれる可能性がありました。Operator Lifecycle Manager (OLM) は、CSV のアノテーションが CSV の一部としてデプロイされる Pod に存在することが予想されたため、Operator のインストールに失敗しました。StrategyDetailsDeployment オブジェクトで定義される Pod テンプレートのアノテーションは CSV で定義されるもので上書きされるようになりました。OLM は、アノテーションが Pod テンプレートで定義されたものと競合する CSV のデプロイに失敗しなくなりました。(BZ#1907381)
  • openshift-marketplace namespace のデフォルトのカタログソースが OperatorHub API で無効にされる場合、そのデフォルトと同じ名前でカスタムカタログソースを作成できます。以前のバージョンでは、デフォルトのカタログソースと同じ名前を持つカスタムカタログソースは、Marketplace の再起動時に Marketplace Operator によって削除されました。アノテーションが Marketplace Operator によって作成されるデフォルトのカタログソースに追加されました。Operator は、Marketplace の再起動時にアノテーションを含むカタログソースのみを削除するようになりました。デフォルトカタログソースと同じ名前で作成されたカスタムカタログソースは削除されません。(BZ#1908431)
  • 以前のバージョンでは、oc adm catalog mirror コマンドは、namespace がない Operator インデックスイメージの適切なマッピングを生成しませんでした。また、--filter-by-os オプションは、マニフェスト一覧全体をフィルターしました。これにより、カタログでフィルターされたイメージへの無効な参照が生じました。namespace のないインデックスイメージが正しくマッピングされ、--index-filter-by-os オプションが追加され、プルおよび展開されるインデックスイメージのみをフィルターできるようになりました。oc adm catalog mirror コマンドは、namespace のないインデックスイメージの有効なマッピングを生成し、--index-filter-by-os オプションでフィルターされたイメージへの有効な参照を作成できるようになりました。(BZ#1908565)
  • 以前のバージョンでは、Operator はクラスターサービスバージョン (CSV) 置き換えチェーンで skipRange を指定し、これにより、Operator Lifecycle Manager (OLM) が Operator をそれ自体に対して更新する可能性がありました。この無限ループにより、CPU の使用率が上昇しました。CSV の置き換えチェーンが更新され、Operator が無効な skipRange がある場合も無限ループに陥ることがなくなりました。(BZ#1916021)
  • 以前のバージョンでは、クラスターサービスバージョン (CSV) 調整ループの csv.status.LastUpdateTime 時間の比較は、常に false の結果を返しました。これにより、Operator Lifecycle Manager (OLM) Operator は CSV オブジェクトを継続的に更新し、別の調整イベントをトリガーしました。時間の比較が改善され、ステータスが変更されない場合に CSV が更新されなくなりました。(BZ#1917537)
  • デフォルトの 15 分の再同期期間よりも長い 15 分の倍数のポーリング間隔が設定されたカタログ更新 Pod は、Catalog Operator によって継続的に調整されます。これは、次のポーリング時間に達するまで継続され、これにより CPU 負荷が増大しました。調整の再キューイングのロジックが改善され、継続的な調整と関連する CPU 負荷の増大が発生しなくなりました。(BZ#1920526)
  • 以前のバージョンでは、Operator サブスクリプション作成の試行時に一致する Operator が見つからない場合に、解決の失敗イベントに一覧表示される制約に内部で使用される用語が含まれました。サブスクリプション制約の文字列は、ユーザーの視点での解決失敗の理由を説明するものではありませんでした。制約の文字列はより分かりやすくなりました。(BZ#1921954)

openshift-apiserver

  • 以前のバージョンでは、deploymentconfigs/<name>/instantiate サブリソースをターゲットにする要求は no kind "DeploymentConfig" is registered for version apps.openshift.io/ を出して失敗しました。DeploymentConfig の正しいバージョンが設定され、これらの要求は失敗しなくなりました。(BZ#1867380)

Operator SDK

  • 以前のバージョンでは、すべての operator-sdk サブコマンドが、PROJECT がディレクトリーである場合でも PROJECT ファイルの読み取りを試行しました。その結果、PROJECT ファイルを要求しないサブコマンドが失敗しました。PROJECT ファイルを要求しないサブコマンドは、この読み取りを試行せず、無効な PROJECT ファイルが存在する場合でも正常に実行されるようになりました。(BZ#1873007)
  • 以前のバージョンでは、operator-sdk cleanup コマンドを実行すると、operator-sdk run bundle コマンドでデプロイされた Operator はクリーンアップされませんでした。その代わりにエラーメッセージが表示され、Operator はクリーンアップされませんでした。operator-sdk cleanup コマンドが更新され、run bundle でデプロイされた Operator は cleanup コマンドを使用してクリーンアップできるようになりました。(BZ#1883422)

Performance Addon Operator

  • 以前のバージョンでは、must-gather ロジックの誤った待機時間により、ログ収集が早く終了しました。この問題によって、タイミングによっては、ログ収集操作が途中で中断されました。これにより、ログ収集が部分的になりました。これは、must-gather ロジックに正しい待機時間を追加して修正されています。(BZ#1906355)
  • 以前のバージョンでは、must-gather はすべてのノードでバインドされていない量の kubelet ログを収集していました。この問題により、過剰な量のデータが転送および収集されましたが、これにはユーザーにとっての実際の利点はありませんでした。

    この問題は、収集される量を最後の 8 時間にバインドし、kubelet ログをワーカーノードでのみ収集し、コントロールプレーンノードでは収集しないようにすることで修正されています。(BZ#1918691)

  • 以前のバージョンでは、マシン設定プールのパフォーマンスが低下すると、パフォーマンスプロファイルは正確なマシン設定プールの状態を表示するように更新されませんでした。パフォーマンスプロファイルノードセレクターまたはマシン設定プールセレクターは関連するマシン設定プールを適切に監視し、動作が低下したマシン設定プールは正しいステータスを反映するようになりました。(BZ#1903820)

RHCOS

  • 以前のバージョンでは、RHCOS のインストール時に追加の Azure ディスクを設定すると、Azure ディスクの udev ルールが RHCOS initramfs に欠落するために失敗しました。インストール時に追加のディスクが正しく設定されるように、必要な udev ルールが追加されました。(BZ#1756173)
  • 以前のリリースでは、rhcos-growpart.service はベストプラクティスではない方法で使用されていました。rhcos-growpart.service はインストール時に Ignition でディスクを設定することが優先されるために削除されました。RHCOS の初回インストール後にディスク設定を変更するには、必要なディスク設定の変更でシステムを再プロビジョニングする必要があります。(BZ#1851103)
  • 以前のバージョンでは、Machine Config Operator は rpm-ostree cleanup -p の実行時に rpm-ostree の変更のロールバックを試行し、System transaction in progress エラーが発生しました。今回の修正により、D-Bus 処理に関連する rpm-ostree コードが改善され、エラーが発生しなくなりました。(BZ#1865839)
  • 以前は、RHEL 8.2 の KVM では ppc64le または s390x での NVME エミュレーションのサポートはなく、NVME エミュレーションを使用する kola --basic-qemu-scenarios は失敗しました。ppc64le および s390x の NVME エミュレーションのテストが無効にされ、テストが正常に実行されるようになりました。(BZ#1866445)
  • 以前のバージョンでは、Ignition は、DHCP サーバーの DHCP クエリーへの応答に時間がかかり過ぎる場合に、ネットワーク経由でリモート設定をフェッチできませんでした。 NetworkManager が DHCP の応答の待機を停止し、ネットワークが initramfs で設定されないためです。NetworkManager の新規バージョンでは、タイムアウトと再試行回数を増やすためにカーネルパラメーターとして rd.net.timeout.dhcp=xyz および rd.net.dhcp.retry=xyz オプションが設定されている場合にこれらを認識し、遅延する DHCP 応答に対応するようにこれらのオプションを設定できるようになりました。(BZ#1877740)
  • 以前のバージョンでは、カーネルコマンドラインの複数の nameserver= エントリーが複数の NetworkManager 接続プロファイルを作成するために、正しくないネットワーク設定が作成されました。RHCOS の NetworkManager の新しいバージョンは複数の nameserver= エントリーを正しく処理し、複数の nameserver= エントリーが指定される場合にネットワーク設定が適切に生成されるようになりました。(BZ#1882781)
  • 以前のバージョンでは、スタックをオーバーフローする再帰的呼び出しが原因で、ノードプロセスでセグメンテーション障害が生じました。このロジックエラーが修正され、セグメンテーション障害が発生しなくなりました。(BZ#1884739)
  • 以前のバージョンでは、ネットワーク関連のサービスユニットは厳密に順序付けられていませんでした。つまり、 -copy-network を使用してコピーされたネットワーク設定がインストール済みシステムへの初回の再起動時に有効にならないことがありました。関連するサービスユニットの順序が修正され、それらが最初の再起動時に常に有効になるようになりました。(BZ#1895979)
  • 以前のバージョンでは、coreos-installer コマンドが fdasd を呼び出して s390x 上の有効な DASD ラベルの有無をチェックする際に、udev が DASD デバイスを再度プローブし、これにより udev が依然としてデバイスにアクセス中であるために DASD のフォーマットに失敗しました。DASD ラベルのチェック後に、coreos-installer は udev が DASD の処理を完了するまで待機し、DASD フォーマットが正常に実行されるようになりました。(BZ#1900699)
  • 以前のバージョンでは、DHCP を使用する場合に NetworkManager の接続設定のクエリーおよび修正を実行する際に混乱が生じました。すべてのインターフェイスに一致する単一の NetworkManager 接続がデフォルトで作成されるためです。DHCP を使用する際に、NetworkManager がデフォルトで各インターフェイスに個別の接続を作成するようになり、ユーザーエクスペリエンスが改善されました。(BZ#1901517)
  • 以前のバージョンでは、実際のルートに切り替える前に initrd のネットワークインターフェイスを適切に停止できないと、VLAN インターフェイスへの静的 IP 割り当てが実際のルートで正常にアクティブにならない可能性がありました。今回の修正により、initrd でネットワークインターフェイスが停止する方法が変更され、VLAN インターフェイスへの静的 IP 割り当てが実際のルートで正常にアクティベートされるようになりました。(BZ#1902584)
  • 以前のバージョンでは、RHCOS を DHCP 操作に dhclient を使用するように設定している場合に、システムでは DHCP アドレスを適切に取得できませんでした。initramfs で NetworkManager の使用への切り替えが行われると dhclient バイナリーが RHCOS から削除されるためです。dhsclient バイナリーは RHCOS に組み込まれ、RHCOS システムが dhclient を使用して DHCP 操作を正常に実行できるようになりました。(BZ#1908462)
  • 以前のバージョンでは、iSCSI イニシエーター名を再生成するサービスユニットが初回起動時にのみ機能するため、アップグレードされたノードは一意の生成されるイニシエーター名を受信しませんでした。今回の修正により、サービスユニットが毎回のブート時に実行されるようになり、アップグレードされたノードが生成されたイニシエーター名を受信できるようになりました (すでに存在しない場合)。(BZ#1908830)
  • 以前のバージョンでは、/etc/mke2fs.conf が存在しない場合に mkfs.ext4 が失敗するため、 Ignition で ext4 ファイルシステムを作成できませんでした。今回の修正により、/etc/mke2fs.conf が initramfs に追加され、Ignition が ext4 ファイルシステムを正常に作成できるようになりました。(BZ#1916382)

ルーティング

  • 以前のバージョンでは、haproxy.router.openshift.io/timeout アノテーションを 25 日を超える値を使用してルートに設定することができました。25 日を超える値により、Ingress コントローラーが失敗しました。今回のバグ修正により、タイムアウトの上限が 25 日に設定されます。(BZ#1861383)
  • 以前のバージョンでは、DNS がプロビジョニングされていないか、または必要なロードバランサーが準備状態にない場合でも、Ingress コントローラーは Available のステータスを報告していました。今回のバグ修正により、Ingress Operator に検証が追加され、Ingress コントローラーが利用可能になる前に DNS がプロビジョニングされ、必要な場合はロードバランサーが準備状態にあることを確認できるようになりました。(BZ#1870373)
  • 以前のバージョンでは、誤字エラーを入力して、Ingress コントローラーのデフォルト証明書を存在しないシークレットに設定することができました。今回のバグ修正により、デフォルトの証明書を変更する前にシークレットが存在することを確認する検証が追加されました。(BZ#1887441)
  • 以前のバージョンでは、63 文字を超える長さの名前を持つルートを作成できました。ただし、ルートの作成後に検証は失敗しました。今回のバグ修正により、ルートの作成時の検証が追加されました。(BZ#1896977)

ストレージ

  • 以前のバージョンでは、受付プラグインは適切に設定されていない場合でもフェイルオーバードメインおよびリージョンラベルを追加し、静的にプロビジョニングされた永続ボリューム (PV) を使用する Pod が設定に空のリージョンを持つ OpenStack クラスターでの起動に失敗しました。今回の修正により、有効なリージョンおよび障害ドメインが含まれる場合にのみテーブルが PV に追加され、静的にプロビジョニングされた PV を使用する Pod は、空のリージョンまたは障害ドメインで設定された OpenStack クラスターの動的にプロビジョニングされる PV と同じ動作をするようになりました。(BZ#1877681)
  • 以前のバージョンでは、LocalVolumeDiscoveryResult オブジェクトが Web コンソールに表示され、これらを手動で定義できる可能性があることを暗示しました。今回の修正により、LocalVolumeDiscoveryResult タイプに内部オブジェクトのフラグが付けられ、これは Web コンソールに表示されなくなりました。ローカルディスクを表示するには、Compute → Nodes → Select Nodes → Disks の順に移動します。(BZ#1886973)
  • 以前のバージョンでは、認証情報を必要とするスナップショットの作成時に、VolumeSnapshotClass CRD がすでに削除されている場合にスナップショットの削除を強制的に実行できませんでした。今回のリリースより、VolumeSnapshotClass CRD が存在するかどうかに依存せずに、認証情報が VolumeSnapshotContent CRD から取得されるようになり、これらの認証情報を含むシークレットが継続的に存在する場合に、認証情報を使用するボリュームスナップショットおよびボリュームスナップショットのコンテンツを削除できるようになりました。(BZ#1893739)
  • 以前のバージョンでは、Kubernetes FibreChannel (FC) ボリュームプラグインは削除前にマルチパスデバイスを適切にフラッシュしませんでした。また、稀なケースとして、マルチパス FC デバイスのファイルシステムは Pod の破棄時に破損しました。Kubernetes は、ファイルシステムの破損を防ぐために FC マルチパスデバイスを削除する前にデータをフラッシュするようになりました。(BZ#1903346)

スケーリング

  • 以前のバージョンでは、ハイパースレッディングを設定する nosmt 追加カーネル引数については、OpenShift Container Platform で使用する方法について文書化されていませんでした。ハイパースレッディングを無効にするには、ハードウェアおよびトポロジーに適したパフォーマンスプロファイルを作成し、nosmt を追加のカーネル引数として設定します。

    詳細は、低レイテンシーおよびリアルタイムのアプリケーションのハイパースレッディングについて 参照してください。