Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

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 クラスターにアクセスできること。

手順

  1. Web コンソールで、Catalog → OperatorHub ページに移動します。
  2. スクロールするか、またはキーワードを Filter by keyword ボックスに入力し (この場合は Couchbase)、必要な Operator を見つけます。

    図2.3 キーワードによる Operator のフィルター

    olm operatorhub
  3. Operator を選択します。コミュニティー Operator の場合、Red Hat がそれらの Operator を認定していないことについての警告が出されます。作業を継続する前に、この警告を確認してください。Operator についての情報が表示されます。
  4. Operator についての情報を確認してから、Install をクリックします。
  5. Create Operator Subscription ページで以下を実行します。

    1. 以下のいずれかを選択します。

      • All namespaces on the cluster (default) は、デフォルトの openshift-operators namespace で Operator をインストールし、クラスターのすべての namespace を監視し、Operator をこれらの namespace に対して利用可能にします。このオプションは常に選択可能です。
      • A specific namespace on the cluster では、Operator をインストールする特定の単一 namespace を選択できます。Operator は監視のみを実行し、この単一 namespace で使用されるように利用可能になります。
    2. Update Channel を選択します (複数を選択できる場合)。
    3. 前述のように、自動 (Automatic) または 手動 (Manual) の承認ストラテジーを選択します。
  6. Subscribe をクリックし、Operator をこの OpenShift Container Platform クラスターの選択した namespace で利用可能にします。
  7. Catalog → Operator Management ページから、Operator サブスクリプションのインストールおよびアップグレードの進捗をモニターできます。

    1. 手動の承認ストラテジーを選択している場合、Subscription のアップグレードステータスは、その Install Plan を確認し、承認するまで Upgrading のままになります。

      図2.4 Install Plan ページからの手動による承認

      olm manualapproval

      Install Plan ページでの承認後に、Subscription のアップグレードステータスは Up to date に移行します。

    2. 自動承認ストラテジーを選択している場合、アップグレードステータスは、介入なしに Up to date に解決するはずです。

      図2.5 Subscription のアップグレードステータス「 Up to date

      olm uptodate
  8. サブスクリプションのアップグレードステータスが Up to date になった後に、Catalog → Installed Operators を選択して Couchbase ClusterServiceVersion (CSV) が表示され、その ステータス が最終的に関連する namespace で InstallSucceeded に解決することを確認します。

    注記

    All namespaces…​ インストールモードの場合、ステータスは openshift-operators namespace で InstallSucceeded になりますが、他の namespace でチェックする場合、ステータスは Copied になります。

    上記通りにならない場合:

    1. Catalog → Operator Management ページに切り替え、Operator Subscriptions および Install Plans タブで、 Status の下に失敗またはエラーがあるかどうかを確認します。
    2. Pod のログを openshift-operators プロジェクトで確認します (または、A specific namespace…​ インストールモードが選択されている場合は別の関連する namespace) で確認します。これは、さらにトラブルシューティングする問題を報告する Workloads → Pods ページから実行します。

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 コマンドをローカルシステムにインストールする。

手順

  1. 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
    ...
  2. クラスターを有効にする 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

    1
    Operator を利用可能にする必要のある namespace を特定するために targetNamespace を設定します。openshift-operators namespace は Operator Lifecycle Manager (OLM) によって監視されます。
    2
    packages を、サブスクライブする必要のある Operator のカンマ区切りの一覧に設定します。

    Operator は、targetNamespace に指定される namespace で CatalogSourceConfig から CatalogSource を生成します。

  3. CatalogSourceConfig を作成し、選択された namespace で指定した Operator を有効にします。

    $ oc apply -f csc.cr.yaml
  4. 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

    1
    サブスクライブする Operator の名前。
    2
    作成された CatalogSource の名前。
  5. Subscription オブジェクトを作成します。

    $ oc apply -f myoperator-sub.yaml

    この時点で、OLM は選択した Operator を認識します。Operator の ClusterServiceVersion (CSV) はターゲット namespace に表示され、Operator で指定される API は作成用に利用可能になります。

  6. 後に追加の Operator をインストールする必要がある場合、以下を実行します。

    1. 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
      既存のパッケージリストに新規パッケージを追加します。
    2. CatalogSourceConfig オブジェクトを更新します。

      $ oc apply -f csc.cr.yaml
    3. 新規 Operator 用に追加の Subscription オブジェクトを作成します。

追加リソース

  • OperatorHub を使用してカスタム Operator をクラスターにインストールするには、まず Operator アーティファクトを Quay.io にアップロードし、次に独自の OperatorSource をクラスターに追加します。オプションで、シークレットを Operator に追加して認証を指定できます。その後、他の Operator と同様に Operator をクラスターで管理できます。これらの手順については、「 Testing Operators」を参照してください。