Menu Close

第4章 Operator のクラスターへの追加

以下では、クラスター管理者を対象に、Operator の OpenShift Container Platform クラスターへのインストールおよび Operator を namespace にサブスクライブする方法について説明します。

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 が新規バージョンに更新されるように更新要求を手動で承認する必要があります。

4.1.1. Web コンソールを使用した OperatorHub からのインストール

この手順では、Couchbase Operator をサンプルとして使用し、OpenShift Container Platform Web コンソールを使用して、OperatorHub から Operator をインストールし、これにサブスクライブします。

前提条件

  • cluster-admin パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできること。

手順

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

    図4.1 キーワードによる 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 で利用可能にします。

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

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

      olm manualapproval

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

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

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

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

    注記

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

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

    1. さらにトラブルシューティングを行うために問題を報告している Workloads → Pods ページで、openshift-operators プロジェクト(または A specific namespace…​ インストールモードが選択されている場合は他の関連の namespace)の Pod のログを確認します。

4.1.2. CLI を使用した OperatorHub からのインストール

OpenShift Container Platform Web コンソールを使用する代わりに、CLI を使用して OperatorHub から Operator をインストールできます。oc コマンドを使用して、Subscription オブジェクトを作成または更新します。

前提条件

  • cluster-admin パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできること。
  • oc コマンドをローカルシステムにインストールする。

手順

  1. OperatorHub からクラスターで利用できる Operator の一覧を表示します。

    $ oc get packagemanifests -n openshift-marketplace
    NAME                               CATALOG               AGE
    3scale-operator                    Red Hat Operators     91m
    amq-online                         Red Hat Operators     91m
    amq-streams                        Red Hat Operators     91m
    ...
    couchbase-enterprise-certified     Certified Operators   91m
    mariadb                            Certified Operators   91m
    mongodb-enterprise                 Certified Operators   91m
    ...
    etcd                               Community Operators   91m
    jaeger                             Community Operators   91m
    kubefed                            Community Operators   91m
    ...

    必要な Operator の CatalogSource をメモします。

  2. 必要な Operator を検査して、サポートされる InstallMode および利用可能なチャネルを確認します。

    $ oc describe packagemanifests <operator_name> -n openshift-marketplace
  3. OperatorGroup は、OperatorGroup と同じ namespace 内のすべての Operator に必要な RBAC アクセスを生成するターゲット namespace を選択する OLM リソースです。

    Operator をサブスクライブする namespace には、Operator の InstallMode に一致する OperatorGroup が必要になります ( AllNamespaces または SingleNamespace モードのいずれか)。インストールする Operator が AllNamespacesを使用する場合、openshift-operators namespace には適切な OperatorGroup がすでに配置されます。

    ただし、Operator が SingleNamespace モードを使用し、適切な OperatorGroup がない場合、それらを作成する必要があります。

    注記

    この手順の Web コンソールバージョンでは、SingleNamespace モードを選択する際に、OperatorGroup および Subscription オブジェクトの作成を背後で自動的に処理します。

    1. OperatorGroup オブジェクト YAML ファイルを作成します(例: operatorgroup.yaml)。

      OperatorGroup の例

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: <operatorgroup_name>
        namespace: <namespace>
      spec:
        targetNamespaces:
        - <namespace>

    2. OperatorGroup オブジェクトを作成します。

      $ oc apply -f operatorgroup.yaml
  4. Subscription オブジェクトの YAML ファイルを作成し、namespace を Operator にサブスクライブします (例: sub.yaml)。

    Subscription の例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: <operator_name>
      namespace: openshift-operators 1
    spec:
      channel: alpha
      name: <operator_name> 2
      source: redhat-operators 3
      sourceNamespace: openshift-marketplace 4

    1
    AllNamespaces InstallMode の使用については、openshift-operators namespace を指定します。それ以外の場合は、SingleNamespace InstallMode の使用について関連する単一の namespace を指定します。
    2
    サブスクライブする Operator の名前。
    3
    Operator を提供する CatalogSource の名前。
    4
    CatalogSource の namespace。デフォルトの OperatorHub CatalogSource には openshift-marketplace を使用します。
  5. Subscription オブジェクトを作成します。

    $ oc apply -f sub.yaml

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

追加リソース