1.8.23. RHBA-2020:4228 - OpenShift Container Platform 4.5.15 バグ修正の更新
発行日: 2020-10-19
OpenShift Container Platform release 4.5.15 が公開されました。この更新に含まれるバグ修正の一覧は、RHBA-2020:4228 アドバイザリーにまとめられています。この更新に含まれる RPM パッケージは、RHBA-2020:4229 アドバイザリーで提供されています。
このアドバイザリーでは、このリリースのすべてのコンテナーイメージに関する説明は除外されています。このリリースのコンテナーイメージに関する情報については、以下の記事を参照してください。
OpenShift Container Platform 4.5.15 コンテナーイメージの一覧
1.8.23.1. バグ修正
-
CSR の新しい API バージョンが OpenShift Container Platform の今後のバージョンで導入されました。そのため、アップグレード時に古いバージョンが証明書を承認したり、拒否したりすることができませんでした。今回のリリースにより、古いバージョンの
oc
の CSR のバージョンが許容されるようになり、今後のバージョンに対してoc
4.5 で証明書を拒否したり、承認したりすることができるようになりました。(BZ#1860789) ベアメタル環境では、
infra-dns
コンテナーは各ホストで実行され、ノード名の解決および他の内部 DNS レコードをサポートします。NetworkManager
スクリプトは、infra-dns
コンテナーを参照するように、ホストの/etc/resolv.conf
も更新します。さらに、Pod が作成されると、ホストから DNS 設定ファイル (/etc/resolv.conf
ファイル) を受信します。NetworkManager
スクリプトがホストの/etc/resolv.conf
ファイルを更新する前に HAProxy Pod が作成された場合、api-int
内部 DNS レコードが解決できないために Pod は繰り返し失敗する可能性があります。今回のバグ修正により、Machine Config Operator (MCO) が更新され、HAProxy Pod の/etc/resolv.conf
ファイルがホストの/etc/resolv.conf
ファイルと同じであることを確認できます。その結果、HAProxy Pod ではこれらのエラーが発生しなくなりました。(BZ#1862874)- 以前のバージョンでは、コントロールプレーン kubelet に到達できず、Pod が実行中であった場合、そのノードで実行されているマシン API Pod は別のノードに再スケジュールされました。これにより、クラスター内のマシン API リソースを制御するために競争する複数のマシン API Pod が作成されました。これにより、過剰にインスタンスが作成され、マシン API コントローラーがインスタンスをリークする可能性が生じ、手動の介入が必要になる可能性がありました。今回のリリースにより、リーダーの選択がすべてのマシン API コントローラーに追加され、コントローラーの単一インスタンスのみがマシン API リソースを管理できるようになりました。コントローラーごとに 1 つのリーダーのみとなり、追加のインスタンスは作成されたり、リークされたりしなくなりました。(BZ#1864352)
- 以前のバージョンでは、編集 (edit) フローでリソース名が更新され、アプリケーションの編集ユーザーは Git リポジトリーを変更したり、アプリケーションを更新することができませんでした。今回の修正により、編集フローにある場合にアプリケーション名が更新されなくなり、編集フローのユーザーが Git リポジトリーを変更し、アプリケーションを更新できるようになりました。(BZ#1877290)
-
以前のバージョンでは、Kubernetes API の監視 (watch) キャッシュはグローバルリビジョン (
etcd
) から初期化され、変更が加えられていない場合には定義されない期間そのまま残る可能性がありました。この動作により、クライアントが新しい RV を検出したサーバーからリソースバージョン (RV) を取得し、ネットワークエラーが原因で切断され、背後のサーバーに再接続され、Too large resource version エラーが発生する状態になることがありました。今回のリリースにより、リフレクターは Too large resource version エラーからリカバリーできるように修正され、サーバーから通知を取得するためにclient-go
ライブラリーを使用する Operator のリカバリーが可能となり、Too large resource version エラーの受信時に進捗が見られるようになりました。(BZ#1877346) -
以前のバージョンでは、認証 Operator が
Accept: application/json
ヘッダーを無視した OpenID Connect Authentication (OIDC) サーバーから HTML ペイロードを受信すると、OIDC サーバーが、認証 Operator が JSON を予想するために解析に失敗したことを示す HTML ページを出して応答する可能性がありました。今回のリリースより、Operator はエラーを無視し、ヘッダーを無視する OIDC サーバーの CLI ログインを許可しなくなりました。(BZ#1879417) -
以前のバージョンでは、イメージレジストリー Operator は Too large resource version エラーが出されると、クラスターからイベントを取得できませんでした。今回のリリースにより、
client-go
ライブラリーが更新され、Operator が Too large resource version エラーから回復できるようにリフレクターが修正されました。(BZ#1880314) -
Kubernetes ネットワークプロキシーは、ローカルトラフィックを検出するための複数のクラスター CIDR をサポートしません。複数の CIDR が OpenShift SDN で設定されている場合、Cluster Network Operator (CNO) は
KubeProxyConfiguration.clusterCIDR
フィールドを空の文字列に設定します。OpenShift Container Platform 4.4 以前では、空の値は無視されましたが、4.5 以降では空の値を渡すとエラーが生じます。その結果、4.4 から 4.5 にアップグレードした後に、sdn-config ConfigMap
がclusterCIDR
フィールドに空の文字列を持つ場合、設定は解析できず、SDN Pod はクラッシュループに入ります。今回のリリースにより、空の値は無視され、複数の CIDR が設定される場合に SDN Pod がクラッシュしなくなりました。(BZ#1881830)