2.4. Operator のクラスターへの追加
以下では、クラスター管理者を対象に、Operator の OpenShift Container Platform クラスターへのインストールについて説明します。
2.4.1. OperatorHub からの Operator のインストール
クラスター管理者は、OpenShift Container Platform Web コンソールまたは CLI を使用して OperatorHub から Operator をインストールできます。その後、Operator を 1 つまたは複数の namespace にサブスクライブし、クラスター上で開発者が使用できるようにできます。
インストール時に、Operator の以下の初期設定を判別する必要があります。
- インストールモード
- All namespaces on the cluster (default) を選択して Operator をすべての namespace にインストールするか、または (利用可能な場合は) 個別の namespace を選択し、選択された namespace のみに Operator をインストールします。この例では、All namespaces… を選択し、Operator がすべてのユーザーおよびプロジェクトで利用可能な状態にします。
- 更新チャネル
- Operator が複数のチャネルで利用可能な場合、サブスクライブするチャネルを選択できます。たとえば、(利用可能な場合に) stable チャネルからデプロイするには、これを一覧から選択します。
- 承認ストラテジー
- 自動 (Automatic) または手動 (Manual) のいずれかの更新を選択します。インストールされた Operator について自動更新を選択する場合、Operator の新規バージョンが利用可能になると、Operator Lifecycle Manager (OLM) は人の介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。手動更新を選択する場合、Operator の新規バージョンが利用可能になると、OLM は更新要求を作成します。クラスター管理者は、Operator が新規バージョンに更新されるように更新要求を手動で承認する必要があります。
2.4.1.1. Web コンソールを使用した OperatorHub からのインストール
この手順では、Couchbase Operator をサンプルとして使用し、OpenShift Container Platform Web コンソールを使用して、OperatorHub から Operator をインストールし、これにサブスクライブします。
前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできること。
手順
-
Web コンソールで、Catalog
OperatorHub ページに移動します。 スクロールするか、またはキーワードを Filter by keyword ボックスに入力し (この場合は
Couchbase
)、必要な Operator を見つけます。図2.3 キーワードによる Operator のフィルター
- Operator を選択します。コミュニティー Operator の場合、Red Hat がそれらの Operator を認定していないことについての警告が出されます。作業を継続する前に、この警告を確認してください。Operator についての情報が表示されます。
- Operator についての情報を確認してから、Install をクリックします。
Create Operator Subscription ページで以下を実行します。
以下のいずれかを選択します。
-
All namespaces on the cluster (default) は、デフォルトの
openshift-operators
namespace で Operator をインストールし、クラスターのすべての namespace を監視し、Operator をこれらの namespace に対して利用可能にします。このオプションは常に選択可能です。 - A specific namespace on the cluster では、Operator をインストールする特定の単一 namespace を選択できます。Operator は監視のみを実行し、この単一 namespace で使用されるように利用可能になります。
-
All namespaces on the cluster (default) は、デフォルトの
- Update Channel を選択します (複数を選択できる場合)。
- 前述のように、自動 (Automatic) または 手動 (Manual) の承認ストラテジーを選択します。
- Subscribe をクリックし、Operator をこの OpenShift Container Platform クラスターの選択した namespace で利用可能にします。
Catalog
Operator Management ページから、Operator サブスクリプションのインストールおよびアップグレードの進捗をモニターできます。 手動の承認ストラテジーを選択している場合、Subscription のアップグレードステータスは、その Install Plan を確認し、承認するまで Upgrading のままになります。
図2.4 Install Plan ページからの手動による承認
Install Plan ページでの承認後に、Subscription のアップグレードステータスは Up to date に移行します。
自動承認ストラテジーを選択している場合、アップグレードステータスは、介入なしに Up to date に解決するはずです。
図2.5 Subscription のアップグレードステータス「 Up to date」
サブスクリプションのアップグレードステータスが Up to date になった後に、Catalog
Installed Operators を選択して Couchbase ClusterServiceVersion (CSV) が表示され、その ステータス が最終的に関連する namespace で InstallSucceeded に解決することを確認します。 注記All namespaces… インストールモードの場合、ステータスは
openshift-operators
namespace で InstallSucceeded になりますが、他の namespace でチェックする場合、ステータスは Copied になります。上記通りにならない場合:
-
Catalog
Operator Management ページに切り替え、Operator Subscriptions および Install Plans タブで、 Status の下に失敗またはエラーがあるかどうかを確認します。 -
Pod のログを
openshift-operators
プロジェクトで確認します (または、A specific namespace… インストールモードが選択されている場合は別の関連する namespace) で確認します。これは、さらにトラブルシューティングする問題を報告する WorkloadsPods ページから実行します。
-
Catalog
2.4.1.2. CLI を使用した OperatorHub からのインストール
OpenShift Container Platform Web コンソールを使用する代わりに、CLI を使用して OperatorHub から Operator をインストールできます。oc
コマンドを使用して CatalogSourceConfig オブジェクトを作成または更新してから、Subscription オブジェクトを追加します。
この手順の Web コンソールバージョンは、 CatalogSourceConfig および Subscription オブジェクトの作成を、1 つのステップで実行されるかのように背後で処理します。
前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできること。 - oc コマンドをローカルシステムにインストールする。
手順
OperatorHub からクラスターで利用できる Operator の一覧を表示します。
$ oc get packagemanifests -n openshift-marketplace NAME AGE amq-streams 14h packageserver 15h couchbase-enterprise 14h mongodb-enterprise 14h etcd 14h myoperator 14h ...
クラスターを有効にする Operator を特定するには、 CatalogSourceConfig オブジェクト YAML ファイル (
csc.cr.yaml
など) を作成します。直前の手順 (couchbase-enterprise または etcd など) に記載されている 1 つ以上のパッケージを含めます。以下は例になります。CatalogSourceConfig のサンプル
apiVersion: operators.coreos.com/v1 kind: CatalogSourceConfig metadata: name: example namespace: openshift-marketplace spec: targetNamespace: openshift-operators 1 packages: myoperator 2
Operator は、
targetNamespace
に指定される namespace で CatalogSourceConfig から CatalogSource を生成します。CatalogSourceConfig を作成し、選択された namespace で指定した Operator を有効にします。
$ oc apply -f csc.cr.yaml
namesapace を Operator にサブスクライブするためにサブスクリプションオブジェクト YAML ファイル (
myoperator-sub.yaml
など) を作成します。選択する namesapce には installMode (AllNamespaces または SingleNamespace モード) に一致する OperatorGroup がなければなないことに注意してください。Subscription の例
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: myoperator namespace: openshift-operators spec: channel: alpha name: myoperator 1 source: example 2 sourceNamespace: openshift-operators
Subscription オブジェクトを作成します。
$ oc apply -f myoperator-sub.yaml
この時点で、OLM は選択した Operator を認識します。Operator の ClusterServiceVersion (CSV) はターゲット namespace に表示され、Operator で指定される API は作成用に利用可能になります。
後に追加の Operator をインストールする必要がある場合、以下を実行します。
CatalogSourceConfig ファイル (この例では
csc.cr.yaml
) を追加のパッケージで更新します。以下は例になります。更新された CatalogSourceConfig のサンプル
apiVersion: operators.coreos.com/v1 kind: CatalogSourceConfig metadata: name: example namespace: openshift-marketplace spec: targetNamespace: global packages: myoperator,another-operator 1
- 1
- 既存のパッケージリストに新規パッケージを追加します。
CatalogSourceConfig オブジェクトを更新します。
$ oc apply -f csc.cr.yaml
- 新規 Operator 用に追加の Subscription オブジェクトを作成します。
追加リソース
-
OperatorHub を使用してカスタム Operator をクラスターにインストールするには、まず Operator アーティファクトを Quay.io にアップロードし、次に独自の
OperatorSource
をクラスターに追加します。オプションで、シークレットを Operator に追加して認証を指定できます。その後、他の Operator と同様に Operator をクラスターで管理できます。これらの手順については、「 Testing Operators」を参照してください。