1.3. 主な技術上の変更点
OpenShift Container Platform 4.6 では、主に以下のような技術的な変更点が加えられています。
デフォルト Operator カタログがクラスターのバージョンごとに同梱される
OpenShift Container Platform 4.6 以降、Operator Lifecycle Manager (OLM) および OperatorHub によって使用される Red Hat が提供するデフォルトカタログが OpenShift Container Platform のマイナーバージョンに固有のインデックスイメージとして同梱されるようになりました。これにより、Operator プロバイダーはクラスターのバージョンごとに意図的に指定した範囲の Operator バージョンを提供できます。
Bundle Format に基づくこれらのインデックスイメージは、以前のバージョンの OpenShift Container Platform 4 向けに提供される、非推奨の Package Manifest Format をベースとする App Registry カタログイメージを置き換えます。OpenShift Container Platform 4.1 から 4.5 は、単一の App Registry カタログを引き続き共有します。
OpenShift Container Platform 4.6 以降については、App Registry カタログイメージは Red Hat によって提供されませんが、Package Manifest Format に基づくカスタムカタログイメージは引き続きサポートされます。
Bundle Format およびインデックスイメージについての詳細は、Operator Framework パッケージ形式 について参照してください。
Operator のアップグレードに関する重要な要件
クラスター管理者は、OpenShift Container Platform 4.6 にアップグレードする前に、Operator Lifecycle Manager (OLM) で以前にインストールされたすべての Operator が最新チャネルの最新バージョンに更新されることを確認する必要があります。Operator の更新により、Operator は、クラスターのアップグレード時にデフォルトの OperatorHub カタログが OpenShift Container Platform 4.5 の APP Registry の使用から OpenShift Container Platform 4.6 の新規のイメージベースのカタログの使用に切り替わる際の有効なアップクレードパスを確保できます。
インストールされた Operator が最新チャネルにあり、自動または手動のいずれかの承認ストラテジーを使用してアップグレードされていることを確認する方法については、インストールされた Operator のアップグレード について参照してください。
追加リソース
OpenShift Container Platform 4.6 に必要な、デプロイされた Red Hat Integration コンポーネントの最小バージョン (Red Hat Fuse、Red Hat AMQ、および Red Hat 3scale を含む) の一覧については、以下の Red Hat ナレッジベースアーティクルを参照してください。
CNI ネットワークプロバイダーがクラスターノードにインストールされている OVS を使用する
OpenShift SDN および OVN-Kubernetes Container Network Interface (CNI) クラスターネットワークプロバイダーは、クラスターノードにインストールされている Open vSwitch (OVS) バージョンを使用するようになりました。以前のバージョンでは、OVS は各ノードのコンテナーで実行され、デーモンセットで管理されていました。ホスト OVS を使用すると、OVS のコンテナー化されたバージョンをアップグレードする際にダウンタイムが発生する可能性がなくなります。
非推奨の API 使用時の警告
非推奨の API に対するすべての呼び出しで、警告が client-go
および oc
に表示されるようになりました。非推奨の API を呼び出すと、ターゲットの Kubernetes 削除リリースおよび代替 API(該当する場合) を含む警告メッセージが返されます。
以下は例になります。
warnings.go:67] batch/v1beta1 CronJob is deprecated in v1.22+, unavailable in v1.25+
これは、Kubernetes 1.19 に含まれる新機能です。
COPY
および ADD
ビルド命令の強化
OpenShift Container Platform ビルドの COPY
および ADD
命令のパフォーマンスが向上しました。buildah
における COPY
および ADD
命令の初回の実装では、docker
と比較してパフォーマンスの低下が確認されました。今回の機能拡張により、とくに大規模なソースリポジトリーについて、ビルドをより迅速に実行できるようになりました。(BZ#1833328)
Operator SDK v0.19.4
OpenShift Container Platform 4.6 では Operator SDK v0.19.4 をサポートし、主に以下のような技術的な変更点が加えられています。
- Operator SDK は OpenShift Container Platform 全体と連携し、UBI-8 および Python 3 の使用に切り替わります。ダウンストリームのベースイメージは UBI-8 を使用し、Python 3 が含まれるようになりました。
-
run local
が優先されるため、コマンドrun --local
が非推奨になりました。 -
run packagemanifests
が優先されるため、コマンドのrun --olm
および--kubeconfig
が非推奨になりました。 -
CRD を作成するか、または生成するコマンドについて、デフォルトの CRD バージョンが
apiextensions.k8s.io/v1beta1
からapiextensions.k8s.io/v1
に変更されました。 -
--kubeconfig
フラグが<run|cleanup> packagemanifests
コマンドに追加されます。
Ansible ベースの Operator の拡張機能には、以下が含まれます。
- Ansible Operator がサポートされるリリースとして利用可能になりました。
-
Ansible Operator に
healthz
エンドポイントおよびliveness
プローブが含まれるようになりました。
Helm ベースの Operator の拡張機能には、以下が含まれます。
- Helm Operator は、クラスタースコープのリリースリソースが変更される際に監視し、調整できます。
- Helm Operator は、ネイティブ Kubernetes オブジェクトの 3 方向のストラテジーのマージのパッチを使用してロジックを調整できるようになりました。これにより、配列のパッチストラテジーが適切に反映され、適用されるようになりました。
-
Helm Operator のデフォルトの API バージョンが
helm.operator-sdk/v1alpha1
に変更されました。
UBI 8 が OpenShift Container Platform のすべてのイメージに使用される
OpenShift Container Platform のすべてのイメージが、デフォルトで Universal Base Image (UBI) バージョン 8 を使用するようになりました。
Jenkins Node.js エージェントのアップグレード
デフォルトの Jenkins Node.js エージェントが Node.js バージョン 12 にアップグレードされました。
oc adm must-gather
コマンドのデフォルトによって収集されない監査ログ
oc adm must-gather
コマンドは、デフォルトで監査ログを収集しなくなりました。oc
コマンドを使用して監査ログを収集するために追加のパラメーターを加える必要があります。以下は例になります。
$ oc adm must-gather -- /usr/bin/gather_audit_logs
OpenShift Container Platform リリースのバイナリー sha256sum.txt.sig
ファイルの名前が変更される
OpenShift Container Platform リリースに含まれる sha256sum.txt.sig
ファイルの名前が sha256sum.txt.gpg
に変更されました。このバイナリーファイルには、各インストーラーおよびクライアントバイナリーのハッシュが含まれており、これらはバイナリーの整合性を確認するために使用されます。
バイナリーファイルの名前を変更すると、GPG が sha256sum.txt
を正しく検証できるようになりますが、これは、命名の競合により実行できませんでした。