This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.7. バンドルイメージの使用
Operator SDK を使用して、Operator Lifecycle Manager (OLM) の Bundle Format で Operator をパッケージ化してデプロイし、アップグレードできます。
5.7.1. Operator のバンドルおよび Operator Lifecycle Manager を使用したデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Operator Lifecycle Manager (OLM) は、Kubernetes クラスターで Operator (およびそれらの関連サービス) をインストールし、更新し、通常はライフサイクルを管理するのに役立ちます。OLM はデフォルトで OpenShift Container Platform にインストールされ、Kubernetes 拡張として実行されるため、追加のツールなしにすべての Operator のライフサイクル管理機能に Web コンソールおよび OpenShift CLI (oc) を使用できます。
Operator Bundle Format は、Operator SDK および OLM のデフォルトパッケージ方法です。Operator SDK を使用して OLM に対して Operator を準備し、OLM を使用してバンドルイメージをビルド、プッシュ、検証、および実行することができます。
前提条件
- 開発ワークステーションに Operator SDK CLI がインストールされていること。
-
OpenShift CLI (
oc) v4.7+ がインストールされていること。 -
(OpenShift Container Platform 4.7 など、
apiextensions.k8s.io/v1CRD を使用する場合は v1.16.0 以降の) Kubernetes ベースのクラスターに Operator Lifecycle Manager (OLM) がインストールされていること。 -
cluster-adminパーミッションのあるアカウントを使用してocでクラスターへログインしていること。 - Operator プロジェクトが Operator SDK を使用して初期化されていること。
- Operator が Go ベースの場合、プロジェクトは OpenShift Container Platform で実行するためのサポートされるイメージを使用するように更新されている必要がある。
手順
以下の
makeコマンドを Operator プロジェクトディレクトリーで実行し、Operator イメージをビルドし、プッシュします。以下の手順のIMG引数を変更して、アクセス可能なリポジトリーを参照します。Quay.io などのリポジトリーサイトにコンテナーを保存するためのアカウントを取得できます。イメージをビルドします。
make docker-build IMG=<registry>/<user>/<operator_image_name>:<tag>
$ make docker-build IMG=<registry>/<user>/<operator_image_name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Operator の SDK によって生成される Dockerfile は、
go buildについてGOARCH=amd64を明示的に参照します。これは、AMD64 アーキテクチャー以外の場合はGOARCH=$TARGETARCHに修正できます。Docker は、-platformで指定された値に環境変数を自動的に設定します。Buildah では、そのために-build-argを使用する必要があります。詳細は、Multiple Architectures を参照してください。イメージをリポジトリーにプッシュします。
make docker-push IMG=<registry>/<user>/<operator_image_name>:<tag>
$ make docker-push IMG=<registry>/<user>/<operator_image_name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Operator SDK
generate bundleおよびbundle validateのサブコマンドを含む複数のコマンドを呼び出すmake bundleコマンドを実行し、Operator バンドルマニフェストを作成します。make bundle IMG=<registry>/<user>/<operator_image_name>:<tag>
$ make bundle IMG=<registry>/<user>/<operator_image_name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator のバンドルマニフェストは、アプリケーションを表示し、作成し、管理する方法を説明します。
make bundleコマンドは、以下のファイルおよびディレクトリーを Operator プロジェクトに作成します。-
ClusterServiceVersionオブジェクトを含むbundle/manifestsという名前のバンドルマニフェストディレクトリー -
bundle/metadataという名前のバンドルメタデータディレクトリー -
config/crdディレクトリー内のすべてのカスタムリソース定義 (CRD) -
Dockerfile
bundle.Dockerfile
続いて、これらのファイルは
operator-sdk bundle validateを使用して自動的に検証され、ディスク上のバンドル表現が正しいことを確認します。-
以下のコマンドを実行し、バンドルイメージをビルドしてプッシュします。OLM は、1 つ以上のバンドルイメージを参照するインデックスイメージを使用して Operator バンドルを使用します。
バンドルイメージをビルドします。イメージをプッシュしようとするレジストリー、ユーザー namespace、およびイメージタグの詳細で
BUNDLE_IMAGEを設定します。make bundle-build BUNDLE_IMG=<registry>/<user>/<bundle_image_name>:<tag>
$ make bundle-build BUNDLE_IMG=<registry>/<user>/<bundle_image_name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow バンドルイメージをプッシュします。
docker push <registry>/<user>/<bundle_image_name>:<tag>
$ docker push <registry>/<user>/<bundle_image_name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下の Operator SDK コマンドを使用して、クラスターで OLM のステータスを確認します。
operator-sdk olm status \ --olm-namespace=openshift-operator-lifecycle-manager$ operator-sdk olm status \ --olm-namespace=openshift-operator-lifecycle-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator SDK で OLM 統合を使用して、クラスターで Operator を実行します。
operator-sdk run bundle \ [-n <namespace>] \ <registry>/<user>/<bundle_image_name>:<tag>$ operator-sdk run bundle \ [-n <namespace>] \1 <registry>/<user>/<bundle_image_name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- デフォルトで、このコマンドは
~/.kube/configファイルの現在アクティブなプロジェクトに Operator をインストールします。-nフラグを追加して、インストールに異なる namespace スコープを設定できます。
このコマンドは、以下の操作を実行します。
- バンドルイメージをインジェクトしてインデックスイメージを作成します。
- 新規インデックスイメージを参照するカタログソースを作成します。これにより、OperatorHub が Operator を検出できるようになります。
- Operator グループ、サブスクリプション、インストール計画、および RBAC を含むその他の必要なオブジェクトすべてを作成して、Operator をクラスターにデプロイします。
5.7.2. Operator Lifecycle Manager での Operator アップグレードのテスト リンクのコピーリンクがクリップボードにコピーされました!
インデックスイメージおよびカタログソースを手動で管理しなくても、Operator SDK で Operator Lifecycle Manager (OLM) 統合を使用して Operator のアップグレードを迅速にテストできます。
run bundle-upgrade サブコマンドは、より新しいバージョンのバンドルイメージを指定することにより、インストールされた Operator をトリガーしてそのバージョンにアップグレードするプロセスを自動化します。
前提条件
-
run bundleサブコマンドの使用による OLM でインストールされる Operator - インストールされた Operator のより新しいバージョンを表すバンドルイメージ
手順
run bundleサブコマンドを使用して Operator を OLM にまだインストールしていない場合は、バンドルイメージを指定して以前のバージョンの Operator をインストールします。たとえば、Memcached Operator の場合は以下のようになります。operator-sdk run bundle <registry>/<user>/memcached-operator:v0.0.1
$ operator-sdk run bundle <registry>/<user>/memcached-operator:v0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator のより新しいバージョンのバンドルイメージを指定して、インストールされた Operator をアップグレードします。
operator-sdk run bundle-upgrade <registry>/<user>/memcached-operator:v0.0.2
$ operator-sdk run bundle-upgrade <registry>/<user>/memcached-operator:v0.0.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インストールされた Operator のクリーンアップ
operator-sdk cleanup memcached-operator
$ operator-sdk cleanup memcached-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow