検索

第4章 JWS Operator

download PDF

4.1. JBoss Web Server Operator

4.1.1. OpenShift Operators

Operator Framework は Operator という Kubernetes ネイティブアプリケーションを効果的かつ自動化された拡張性のある方法で管理するためのツールキットです。Operator により、Kubernetes の上部に複雑なステートフルアプリケーションを管理することが容易になります。すべての Operator は、Operator SDK、Operator Lifecycle Manager、および OperatorHub.io の 3 つの主要なコンポーネントをベースとしています。これらのツールを使用すると、独自のオペレーターを開発し、Kubernetes クラスターで使用する Operator を管理し、コミュニティーが作成する Operator を検出したり、共有したりできます。

Red Hat JBoss Web Server プロジェクトは、OpenShift イメージを管理するための Operator を提供します。このセクションでは、JWS 用に OpenShift Operator をビルドし、テストし、パッケージ化する方法を説明します。

クラスターの設定に関する詳しい手順は、Openshift ドキュメント のサブセクション Install を参照してください。

さらに、JWS Operator は JWS-on-OpenShift 設定とは異なる環境変数を使用します。これらの パラメーターの完全なリストは、こちらを参照してください

重要

現時点では、Use Session Clustering 機能は完全にサポートされていません。

本ガイドでは、JWS Operator のインストール、デプロイメント、および削除について詳しく説明します。より高速で詳細な情報は、クイックスタートガイドを参照してください

重要

現在、JWS 5.4 イメージのみをサポートします。5.4 よりも古いイメージには対応していません

4.1.2. JWS Operator のインストール

このセクションでは、OpenShift Container Platform での JWS Operator のインストールについて説明します。

4.1.2.1. 前提条件

  • cluster admin のパーミッションを持つアカウントを使用した OpenShift Container Platform クラスター (Web コンソールのみ)
  • Operator のインストールパーミッションを持つアカウントを使用した OpenShift Container Platform クラスター
  • ローカルシステムにインストールされている OC ツール (CLI のみ)

4.1.2.2. JWS Operator - Web コンソールのインストール

  1. 左側のメニューにある Operators タブに移動します。
  2. これにより、OpenShift OperatorHub を開きます。ここから JWS を検索し、JWS Operator を選択します。
  3. 新規メニューが表示されます。必要な容量レベルを選択してから Install をクリックして Operator をインストールします。
  4. これで、Operator のインストールを設定できるようになりました。以下の 3 つのオプションを指定します。

    • Installation Mode: インストールするクラスターに特定の名前空間を指定します。これを指定しない場合は、デフォルトでオペレーターをクラスターのすべての名前空間にインストールします。
    • Update Channel: JWS オペレーターは現在、1 つのチャネルからしか利用できません。
    • 承認ストラテジー: 自動の更新または手動の更新を選択できます。インストールされた Operator について自動更新を選択する場合は、Operator の新規バージョンが利用可能になると、Operator Lifecycle Manager (OLM) は人の介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。手動更新を選択する場合、Operator の新規バージョンが利用可能になると、OLM は更新要求を作成します。クラスター管理者は、Operator を新規バージョンに更新できるように更新要求を手動で承認する必要があります。
  5. 下部の Install をクリックします。Manual Approval Strategy を選択した場合は、インストールが完了する前にインストールプランを承認する必要があります。JWS Operator は、Operator タブの Installed Operators セクションに表示されるようになります。

4.1.2.3. JWS Operator のインストール - コマンドラインインターフェイス

  1. JWS Operator を検査し、以下のコマンドを使用して、サポートされる installMode および利用可能なチャネルを確認します。

    $   oc get packagemanifests -n openshift-marketplace | grep jws
        jws-operator    Red Hat Operators   16h
    $   oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source"
        Catalog Source:     redhat-operators
  2. OperatorGroup は、OperatorGroup と同じ名前空間内のすべての Operator に必要な RBAC アクセスを生成するターゲット名前空間を選択する OLM リソースです。

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

    ただし、Operator が SingleNamespace モードを使用する場合、1 つの OperatorGroup をその名前空間で作成する必要があります。OperatorGroup の実際の一覧を確認するには、以下のコマンドを使用します。

    $ oc get operatorgroups -n <project_name>

    OperatorGroup リストの出力例:

    NAME       AGE
    mygroup    17h
    注記

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

    • 以下のように OperatorGroup オブジェクト YAML ファイルを作成します。

      OperatorGroupExample.yaml:

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

      <project_name> はオペレーターをインストールするプロジェクトの名前空間 (oc project -q) です。<operatorgroup_name> は OperatorGroup の名前です。

    • 以下のコマンドを使用して OperatorGroup オブジェクトを作成します。

      $   oc apply -f OperatorGroupExample.yaml
  3. サブスクリプションオブジェクト YAML ファイルを作成します (例: jws-operator-sub.yaml)。Subscription オブジェクト YAML ファイルを以下のように設定します。

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
        name: jws-operator
        namespace: <project_name>
    spec:
        channel: alpha
        name: jws-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace

    <project_name> は、オペレーター (oc project -q) をインストールするプロジェクトの名前空間であり、すべての名前空間で openshift-operators を使用するようになります。

    source は Catalog Source です。これは、このセクションの手順 1 で実行した $ oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source:" コマンドの値です。この値は redhat-operators である必要があります。

  4. 以下のコマンドを使用して、YAML ファイルから Subscription オブジェクトを作成します。

    $   oc apply -f jws-operator-sub.yaml

    インストールが正常に行われたことを確認するには、以下のコマンドを実行します。

    $   oc get csv -n <project_name>
    名前DISPLAYバージョンREPLACE PHASE

    jws-operator.V1.0.0

    JBoss Web Server Operator

    1.0.0

    成功

4.1.3. 既存の JWS イメージのデプロイ

  1. 以下のコマンドを使用してオペレーターがインストールされていることを確認します。

    $   oc get deployment.apps/jws-operator
        NAME       	READY 	UP-TO-DATE   AVAILABLE   AGE
        jws-operator   1/1   	1        	1        15h

    または、より詳細な出力が必要な場合は、以下を行います。

    $   oc describe deployment.apps/jws-operator
  2. イメージを準備し、これを任意の場所にプッシュします。この例では quay.io/<USERNAME>/tomcat-demo:latest にプッシュされます。
  3. Custom Resource WebServer .yaml ファイルを作成します。この例では、webservers_cr.yaml というファイルが使用されます。ファイルは、以下の形式に従う必要があります。

    apiVersion: web.servers.org/v1alpha1
    kind: WebServer
    metadata:
        name: example-image-webserver
    spec:
        # Add fields here
        applicationName: jws-app
        replicas: 2
    webImage:
       applicationImage: quay.io/<USERNAME>/tomcat-demo:latest
  4. 以下のコマンドを使用して、作成したディレクトリーから webapp をデプロイします。

    $   oc apply -f webservers_cr.yaml
        webserver/example-image-webserver created
    注記

    オペレーターによってルートが自動的に作成されます。以下のコマンドを使用して、ルートを確認できます。

    $   oc get routes

    ルートの詳細は、OpenShift ドキュメント を参照してください。

  5. ステップ 4 で作成した webserver を削除する場合は、以下を行います。

    $   oc delete webserver example-image-webserver

    または

    $   oc delete -f webservers_cr.yaml

4.1.4. クラスターからの Operator の削除

4.1.4.1. 前提条件

  • 管理者権限を持つ OpenShift Container Platform クラスター (または これらの手順に従って この要件を回避できます)
  • ローカルシステムにインストールされている OC ツール (CLI のみ)

4.1.4.2. クラスターからのオペレーターの削除 - Web コンソール

  1. 左側のメニューで、'Operators' 'Installed Operators' をクリックします。
  2. Operator Details メニューから 'Actions' メニューを選択してから 'Uninstall Operator' をクリックします。
  3. このオプションを選択すると、Operator、Operator デプロイメント、および Pod が削除されます。ただし、Operator を削除しても、CRD または CR を含め、カスタムリソース定義またはカスタムリソースはいずれも削除されません。Operator がクラスターにアプリケーションをデプロイしているか、またはクラスター外のリソースを設定している場合、それらは引き続き実行され、手動でクリーンアップする必要があります。

4.1.4.3. クラスターからの Operator の削除 - コマンドラインインターフェイス

  1. 以下のコマンドを使用して、currentCSV フィールドでサブスクライブされた Operator の現行バージョンを確認します。

    $   oc get subscription jws-operator -n <project_name> -o yaml | grep currentCSV
        f:currentCSV: {}
        currentCSV: jws-operator.v1.0.0
    注記

    上記のコマンドでは、<project_name> はオペレーターをインストールしたプロジェクトの名前空間を参照します。オペレーターがすべての名前空間にインストールされていた場合は、<project_name> の代わりに openshift-operators を使用します。

  2. 以下のコマンドを使用してオペレーターのサブスクリプションを削除します。

    $   oc delete subscription jws-operator -n <project_name>
    注記

    上記のコマンドでは、<project_name> はオペレーターをインストールしたプロジェクトの名前空間を参照します。オペレーターがすべての名前空間にインストールされていた場合は、<project_name> の代わりに openshift-operators を使用します。

  3. 以下のコマンドを使用して、直前の手順の currentCSV 値を使用して、ターゲット名前空間のオペレーターの CSV を削除します。

    $   oc delete clusterserviceversion <currentCSV> -n <project_name>

    ここで、<currentCSV> は、手順 1 で取得した値になります。

    $   oc delete clusterserviceversion jws-operator.v1.0.0
        clusterserviceversion.operators.coreos.com "jws-operator.v1.0.0" deleted
    注記

    上記のコマンドでは、<project_name> はオペレーターをインストールしたプロジェクトの名前空間を参照します。オペレーターがすべての名前空間にインストールされていた場合は、<project_name> の代わりに openshift-operators を使用します。

4.1.5. 参考情報

Operator についての詳細は、公式の OpenShift ドキュメントを参照してください。

Operator とは

および

OpenShift Container Platform

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.