第1章 Hosted Control Plane のリリースノート
リリースノートには、新機能、非推奨機能、変更、既知の問題に関する情報が記載されています。
1.1. OpenShift Container Platform 4.20 用の Hosted Control Plane のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、OpenShift Container Platform 4.20 用の Hosted Control Plane が利用可能になりました。OpenShift Container Platform 4.20 用の Hosted Control Plane は、multicluster engine for Kubernetes Operator バージョン 2.10 をサポートしています。
1.1.1. 新機能および機能拡張 リンクのコピーリンクがクリップボードにコピーされました!
1.1.1.1. ホステッドクラスターでのワークロードのスケールアップ リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスター内のワークロードをスケールダウンせずに、ScaleUpOnly 動作を使用してワークロードをスケールアップできるようになりました。詳細は、ホステッドクラスターでのワークロードのスケールアップ を参照してください。
1.1.1.2. ホステッドクラスターでのワークロードのスケールアップとスケールダウン リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターで ScaleUpAndScaleDown 動作を使用して、ワークロードをスケールアップおよびスケールダウンできるようになりました。詳細は、ホステッドクラスターでのワークロードのスケールアップとスケールダウン を参照してください。
1.1.1.3. ホステッドクラスター内の無視されたラベルのバランス調整 リンクのコピーリンクがクリップボードにコピーされました!
ノードプールをスケールアップした後、balancingIgnoredLabels を設定して、ノードプール全体にマシンを均等に分散できるようになりました。詳細は、ホステッドクラスター内の無視されたラベルのバランス調整 を参照してください。
1.1.1.4. ホステッドクラスターでの優先度エクスパンダーの設定 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターで優先度エクスパンダーを設定することで、優先度の低いマシンの前に優先度の高いマシンを作成できるようになりました。詳細は、ホステッドクラスターでの優先度エクスパンダーの設定 を参照してください。
1.1.1.5. 非接続環境における IBM Z 上の Hosted Control Plane の一般提供を開始しました リンクのコピーリンクがクリップボードにコピーされました!
このリリースの時点で、非接続環境における IBM Z 上の Hosted Control Plane が一般提供機能になりました。詳細は、非接続環境における IBM Z への Hosted Control Plane のデプロイ を参照してください。
1.1.2. バグ修正 リンクのコピーリンクがクリップボードにコピーされました!
-
この更新前は、
hc.spec.configuration.apiServer.servingCerts.namedCertificatesのカスタム証明書の SAN 検証で、*.example.comなどのワイルドカード DNS パターンが適切に処理されませんでした。その結果、カスタム証明書内のワイルドカード DNS パターンが検出されずに内部 Kubernetes API サーバー証明書 SAN と競合することで、証明書の検証が失敗してデプロイメントの問題が発生する可能性がありました。このリリースでは、DNS SAN 競合検出が強化され、RFC 準拠のワイルドカードサポートが組み込まれ、*.example.comとsub.example.comを一致とみなすような、ワイルドカードパターンを適切に処理する双方向の競合検証が実装されました。その結果、ワイルドカード DNS パターンが適切に検証されるようになり、証明書の競合が防止され、ワイルドカード証明書のサポートによりホステッドクラスターのデプロイメントの信頼性が向上しました。(OCPBUGS-60381) -
この更新前は、Azure クラウドプロバイダーが、Azure ロードバランサーのデフォルトの ping ターゲットを
HTTP:10256/healthzに設定していませんでした。代わりに、Azure 上で実行されたLoadBalancerタイプのサービスには、ping ターゲットがTCP:30810に設定されていました。その結果、クラスター全体のサービスのヘルスプローブが機能しなくなり、アップグレード中にダウンタイムが発生しました。このリリースでは、クラウド設定のClusterServiceLoadBalancerHealthProbeModeプロパティーがsharedに設定されています。その結果、Azure のロードバランサーには、ノード上で実行されるkube-proxyヘルスエンドポイントを指す正しいヘルスチェック ping ターゲット (HTTP:10256/healthz) が設定されます。(OCPBUGS-58031) -
この更新前は、HyperShift Operator は、
HostedClusterリソースからadditionalTrustBundleパラメーターを削除した後、user-ca-bundleconfig map をクリアできませんでした。その結果、user-ca-bundleconfig map が更新されず、イグニッションペイロードの生成に失敗しました。このリリースでは、HostedClusterリソースからuser-ca-bundleconfig map が削除されると、HyperShift Operator はコントロールプレーンの namespace からそれを能動的に削除します。その結果、user-ca-bundleconfig map が正しくクリアされ、イグニッションペイロードが生成されます。(OCPBUGS-57336) -
この更新前は、Kubernetes API サーバーサービスの公開ストラテジーが
PublicAndPrivateエンドポイントアクセスを伴うLoadBalancerである場合、AWS 上にホステッドクラスターを作成しようとすると、External DNS Operator が DNS レコードを登録していなくても、プライベートルーターは OAuth ルートを許可していました。その結果、プライベートルーターはルート URL を適切に解決できず、OAuth サーバーにアクセスできませんでした。Console Cluster Operator も起動に失敗し、ホステッドクラスターのインストールも失敗しました。このリリースでは、外部 DNS が定義されている場合にのみプライベートルーターは OAuth ルートを許可します。それ以外の場合、ルーターは管理クラスター内のルートを許可します。その結果、OAuth ルートにアクセスできるようになり、Console Cluster Operator が適切に起動し、ホステッドクラスターのインストールが成功します。(OCPBUGS-56914) -
このリリースの前は、管理 OpenShift クラスター内の IDMS または ICSP で registry.redhat.io または registry.redhat.io/redhat を参照するソースが定義されており、ミラーレジストリーに必要な OLM カタログイメージが含まれていない場合、不正なイメージプルが原因で
HostedClusterリソースのプロビジョニングが停止していました。その結果、HostedClusterリソースはデプロイされず、ブロックされたままになり、ミラーレジストリーから重要なカタログイメージを取得できませんでした。このリリースでは、認可エラーのために必要なイメージをプルできない場合、プロビジョニングが明示的に失敗するようになりました。レジストリーのオーバーライドのロジックが改善され、OLM CatalogSource イメージの解決時に registry.redhat.io などのレジストリーのルートでのマッチングが可能になりました。レジストリーのオーバーライドによって正常なイメージが得られなかった場合に、元のImageReferenceを使用するためのフォールバックメカニズムも導入されています。その結果、ミラーレジストリーに必要な OLM カタログイメージが不足しているシナリオでも、システムが適切な場合に元のソースからプルするように正しくフォールバックするため、HostedClusterリソースを正常にデプロイできます。(OCPBUGS-56492) -
この更新前は、AWS Cloud Provider が、AWS ロードバランサーのデフォルトの ping ターゲットを
HTTP:10256/healthzに設定していませんでした。AWS 上で実行されるLoadBalancerタイプのサービスの場合、AWS で作成されたロードバランサーオブジェクトの ping ターゲットはTCP:32518でした。その結果、クラスター全体のサービスのヘルスプローブが機能しなくなり、アップグレード中にそれらのサービスが停止しました。このリリースでは、クラウド設定のClusterServiceLoadBalancerHealthProbeModeプロパティーがSharedに設定されています。このクラウド設定は AWS Cloud Provider に渡されます。その結果、AWS のロードバランサーには、ノード上で実行されているkube-proxyヘルスエンドポイントを指す正しいヘルスチェック ping ターゲット (HTTP:10256/healthz) が設定されます。(OCPBUGS-56011) -
この更新前は、
--disable-cluster-capabilitiesオプションを使用してイメージレジストリー機能を無効にしても、Hosted Control Plane ではイメージレジストリーのマネージドアイデンティティーを設定する必要がありました。このリリースでは、イメージレジストリーが無効になっている場合、イメージレジストリーのマネージドアイデンティティー設定はオプションになります。(OCPBUGS-55892) -
この更新前は、管理クラスターからの
ImageDigestMirrorSet(IDMS) およびImageContentSourcePolicy(ICSP) リソースは、イメージ置き換えのミラーまたはソースとしてルートレジストリー名のみを指定する可能性があることを考慮せずに処理されていました。その結果、ルートレジストリー名のみを使用する IDMS および ICSP エントリーは期待どおりに機能しませんでした。このリリースでは、ミラーの置き換えロジックが、ルートレジストリー名のみが指定されているケースを正しく処理するようになりました。その結果、問題が発生しなくなり、ルートレジストリーミラーの置き換えがサポートされるようになりました。(OCPBUGS-54483) -
この更新前は、Hosted Control Plane はレジストリーメタデータを正しく保存せず、
HostedClusterリソースにイメージプロバイダーキャッシュを解放していませんでした。その結果、リリースおよびイメージメタデータのキャッシュは、HostedClusterコントローラーのリコンシリエーション時にリセットされました。このリリースでは、キャッシュ損失を修正するために、HostedClusterリソースによって使用される共通レジストリープロバイダーが導入されました。これにより、イメージプルの数とネットワークトラフィックが削減され、全体的なパフォーマンスが向上します。(OCPBUGS-53259) -
この更新前は、クライアントシークレットを指定していない OIDC クライアントを使用して
HostedClusterリソースの OIDC プロバイダーを設定すると、システムがデフォルトのシークレット名を自動的に生成していました。その結果、シークレットを使用しないはずの OIDC パブリッククライアントを設定できませんでした。このリリースでは、この問題が修正されました。クライアントシークレットが指定されていない場合、デフォルトのシークレット名は生成されず、パブリッククライアントが適切にサポートされます。(OCPBUGS-58149) - この更新前は、ミラーイメージが複数あるためイメージ検索に失敗し、Hosted Control Plane ペイロードエラーが発生しました。その結果、ユーザーはホステッドクラスターを作成できませんでした。このリリースでは、Hosted Control Plane ペイロードが複数のミラーをサポートするようになり、プライマリーミラーが使用できない場合のエラーが回避されます。その結果、ユーザーはホステッドクラスターを作成できます。(OCPBUGS-54720)
この更新前は、ホステッドクラスターが時間の経過とともに複数のバージョンにアップグレードされ、
HostedClusterリソースのバージョン履歴が 10 エントリーを超える場合がありました。しかし、API ではバージョン履歴フィールドに対して最大 10 項目という厳格な検証制限がありました。その結果、バージョン履歴が 10 エントリーを超えると、ユーザーはHostedClusterリソースを編集または更新できませんでした。アノテーションの追加 (例: クラスターサイズのオーバーライド) や、メンテナンスタスクの実行 (例: リクエストサービングノードのサイズ変更) など操作が、検証エラー "status.version.history: Too many: 11: must have at most 10 items" で失敗しました。このエラーにより、ROSA SRE はお客様の API アクセスに影響を与える可能性のある重要なメンテナンス操作を実行できませんでした。このリリースでは、
HostedClusterAPI のバージョン履歴フィールドから最大項目検証制約が削除され、履歴が 10 エントリーを超えても検証エラーがトリガーされなくなりました。その結果、バージョン履歴に存在するエントリーの数にかかわらず、HostedClusterリソースを編集および更新できるようになり、管理者は複数のバージョンアップグレードを経たクラスターに対しても必要なメンテナンス操作を実行できるようになりました。(OCPBUGS-58200)この更新前は、CLI のリファクタリングを行うと
MarkPersistentFlagRequired関数が正しく動作しなくなりました。クラスターの作成に不可欠な--nameおよび--pull-secretフラグは必須としてマークされていましたが、検証は強制されていませんでした。その結果、ユーザーは必要な--nameまたは--pull-secretフラグを指定せずにhypershift create clusterコマンドを実行でき、CLI は必須フラグが欠落していることをすぐに警告しませんでした。これにより、デプロイメントの誤設定や、プロセスの後半でエラーメッセージによる混乱が生じていました。このリリースでは、
RawCreateOptions.Validate()関数に--nameフラグと--pull-secretフラグの存在を確認するための明示的な検証が追加され、いずれかのフラグが欠落している場合は明確なエラーメッセージが返されます。さらに、適切な検証を確実に行うために、名前フィールドからデフォルトの "example" 値が削除されました。その結果、ユーザーが必須の--nameフラグまたは--pull-secretフラグを指定せずにクラスターを作成しようとすると、どの必須フラグが欠落しているかを示す明確なエラーメッセージ ("Error: --name is required" や "Error: --pull-secret is required" など) がすぐに表示されるようになりました。これにより、誤った設定のデプロイメントが防止され、ユーザーエクスペリエンスが向上します。(OCPBUGS-37323)この更新前は、
GetSupportedOCPVersions()関数の変数シャドウイングバグにより、supportedVersions変数が=ではなく:=使用して不正に割り当てられ、意図した外部スコープ変数は更新されず、代わりにすぐに破棄されるローカル変数が作成されていました。その結果、HyperShift Operator がデプロイされた状態でユーザーがhypershift versionコマンドを実行すると、CLI はサーバーバージョンとして<unknown>を表示するか、"nil pointer dereference" エラーでパニックを起こし、ユーザーはデプロイされた HyperShift Operator のバージョンを確認できませんでした。このリリースでは、
GetSupportedOCPVersions()関数内の変数の割り当てがsupportedVersions :=からsupportedVersions =に修正され、config map が外部スコープ変数に適切に割り当てられ、サポート対象バージョンのデータが正しく入力されるようになりました。その結果、HyperShift Operator がデプロイされている場合にhypershift versionコマンドでサーバーバージョン (例: "Server Version: f001510b35842df352d1ab55d961be3fdc2dae32") が正しく表示されるようになり、ユーザーは実行中の Operator バージョンとサポートされている OpenShift Container Platform バージョンを確認できるようになりました。(OCPBUGS-57316)- この更新前は、HyperShift Operator はすべてのケースで Kubernetes API サーバーのサブジェクト代替名 (SAN) を検証していました。その結果、公開鍵基盤 (PKI) のリコンシリエーション中に、無効な API Server SAN が発生する場合がありました。このリリースでは、PKI リコンシリエーションが無効になっていない場合にのみ、Kubernetes API Server SAN が検証されます。(OCPBUGS-56457)
この更新前は、共有 Ingress コントローラーは
HostedCluster.Spec.KubeAPIServerDNSNameフィールドを処理しなかったため、カスタム kube-apiserver DNS 名がルーター設定に追加されませんでした。その結果、カスタム DNS 名を使用する Hosted Control Plane 上の kube-apiserver 宛てのトラフィック (HostedCluster.Spec.KubeAPIServerDNSName経由) が正しくルーティングされず、共有 Ingress を使用するプラットフォームでKubeAPIExternalName機能が動作しませんでした。このリリースでは、共有 Ingress コントローラーに
HostedCluster.Spec.KubeAPIServerDNSNameの処理が追加されました。ホステッドクラスターがカスタム kube-apiserver DNS 名を指定すると、コントローラーはトラフィックを kube-apiserver サービスに送信するルートを自動的に作成するようになりました。その結果、カスタム kube-apiserver DNS 名宛のトラフィックが共有 Ingress コントローラーによって正しくルーティングされるようになり、共有 Ingress を使用するプラットフォームでKubeAPIExternalName機能が動作します。(OCPBUGS-57790)
1.1.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
-
アノテーションと
ManagedClusterリソース名が一致しない場合、multicluster engine for Kubernetes Operator コンソールにはクラスターの状態がPending importとして表示されます。このようなクラスターは、multicluster engine Operator で使用できません。アノテーションがなく、ManagedCluster名がHostedClusterリソースのInfra-ID値と一致しない場合も、同じ問題が発生します。 - multicluster engine for Kubernetes Operator コンソールを使用して、既存のホステッドクラスターに新しいノードプールを追加すると、オプションのリストに同じバージョンの OpenShift Container Platform が複数回表示される場合があります。必要なバージョンの一覧で任意のインスタンスを選択できます。
ノードプールが 0 ワーカーにスケールダウンされても、コンソールのホストのリストには、
Ready状態のノードが表示されます。ノードの数は、次の 2 つの方法で確認できます。- コンソールでノードプールに移動し、ノードが 0 であることを確認します。
コマンドラインインターフェイスで、以下のコマンドを実行します。
次のコマンドを実行して、ノードプールにあるノード数が 0 個であることを確認します。
oc get nodepool -A
$ oc get nodepool -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスター内にあるノード数が 0 個であることを確認します。
oc get nodes --kubeconfig
$ oc get nodes --kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターにバインドされているエージェント数が 0 と報告されていることを確認します。
oc get agents -A
$ oc get agents -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
デュアルスタックネットワークを使用する環境でホステッドクラスターを作成すると、
ContainerCreating状態のままになっている Pod が発生する可能性があります。この問題は、DNS Pod が DNS 解決に必要なmetrics-tlsシークレットをopenshift-service-ca-operatorリソースが生成できないために発生します。その結果、Pod は Kubernetes API サーバーを解決できません。この問題を解決するには、デュアルスタックネットワークの DNS サーバー設定を行います。 ホステッドクラスターをそのマネージドクラスターと同じ namespace に作成した場合、マネージドホステッドクラスターをデタッチすると、ホステッドクラスターが含まれるマネージドクラスター namespace 内のすべてが削除されます。次の状況では、マネージドクラスターと同じ namespace にホステッドクラスターが作成される可能性があります。
- デフォルトのホステッドクラスターのクラスター namespace を使用し、multicluster engine for Kubernetes Operator のコンソールを介して Agent プラットフォーム上にホステッドクラスターを作成した場合。
- ホステッドクラスターの namespace をホステッドクラスターの名前と同じになるよう指定して、コマンドラインインターフェイスまたは API を介してホステッドクラスターを作成した場合。
-
コンソールまたは API を使用して、ホステッドクラスターの
spec.services.servicePublishingStrategy.nodePort.addressフィールドに IPv6 アドレスを指定する場合、8 ヘクステットの完全な IPv6 アドレスが必要です。たとえば、2620:52:0:1306::30ではなく、2620:52:0:1306:0:0:0:30を指定する必要があります。
1.1.4. 一般提供とテクノロジープレビュー機能 リンクのコピーリンクがクリップボードにコピーされました!
現在、このリリースに含まれる機能にはテクノロジープレビューのものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。これらの機能のサポート範囲の詳細は、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
IBM Power および IBM Z の場合、次の例外が適用されます。
- バージョン 4.20 以降では、64 ビット x86 アーキテクチャーまたは s390x アーキテクチャーをベースとするマシンタイプでコントロールプレーンを実行し、IBM Power または IBM Z でノードプールを実行する必要があります。
- バージョン 4.19 以前では、64 ビット x86 アーキテクチャーをベースとするマシンタイプでコントロールプレーンを実行し、IBM Power または IBM Z でノードプールを実行する必要があります。
| 機能 | 4.18 | 4.19 | 4.20 |
|---|---|---|---|
| 非ベアメタルエージェントマシンを使用した OpenShift Container Platform の Hosted Control Plane | テクノロジープレビュー | テクノロジープレビュー | テクノロジープレビュー |
| RHOSP 上の OpenShift Container Platform の Hosted Control Plane | 開発者プレビュー | テクノロジープレビュー | テクノロジープレビュー |
| カスタムの taint と toleration | テクノロジープレビュー | テクノロジープレビュー | テクノロジープレビュー |
| OpenShift Virtualization の Hosted Control Plane 上の NVIDIA GPU デバイス | テクノロジープレビュー | テクノロジープレビュー | テクノロジープレビュー |
| 非接続環境の IBM Z の Hosted Control Plane | テクノロジープレビュー | テクノロジープレビュー | 一般提供 |