第4章 JWS Operator
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 コンソールのインストール
- 左側のメニューにある Operators タブに移動します。
- これにより、OpenShift OperatorHub を開きます。ここから JWS を検索し、JWS Operator を選択します。
- 新規メニューが表示されます。必要な容量レベルを選択してから Install をクリックして Operator をインストールします。
これで、Operator のインストールを設定できるようになりました。以下の 3 つのオプションを指定します。
- Installation Mode: インストールするクラスターに特定の名前空間を指定します。これを指定しない場合は、デフォルトでオペレーターをクラスターのすべての名前空間にインストールします。
- Update Channel: JWS オペレーターは現在、1 つのチャネルからしか利用できません。
- 承認ストラテジー: 自動の更新または手動の更新を選択できます。インストールされた Operator について自動更新を選択する場合は、Operator の新規バージョンが利用可能になると、Operator Lifecycle Manager (OLM) は人の介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。手動更新を選択する場合、Operator の新規バージョンが利用可能になると、OLM は更新要求を作成します。クラスター管理者は、Operator を新規バージョンに更新できるように更新要求を手動で承認する必要があります。
-
下部の Install をクリックします。
Manual Approval Strategy
を選択した場合は、インストールが完了する前にインストールプランを承認する必要があります。JWS Operator は、Operator タブの Installed Operators セクションに表示されるようになります。
4.1.2.3. JWS Operator のインストール - コマンドラインインターフェイス
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
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
サブスクリプションオブジェクト 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
である必要があります。以下のコマンドを使用して、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 イメージのデプロイ
以下のコマンドを使用してオペレーターがインストールされていることを確認します。
$ 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
-
イメージを準備し、これを任意の場所にプッシュします。この例では
quay.io/<USERNAME>/tomcat-demo:latest
にプッシュされます。 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
以下のコマンドを使用して、作成したディレクトリーから webapp をデプロイします。
$ oc apply -f webservers_cr.yaml webserver/example-image-webserver created
注記オペレーターによってルートが自動的に作成されます。以下のコマンドを使用して、ルートを確認できます。
$ oc get routes
ルートの詳細は、OpenShift ドキュメント を参照してください。
ステップ 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 コンソール
-
左側のメニューで、'Operators'
'Installed Operators' をクリックします。 - Operator Details メニューから 'Actions' メニューを選択してから 'Uninstall Operator' をクリックします。
- このオプションを選択すると、Operator、Operator デプロイメント、および Pod が削除されます。ただし、Operator を削除しても、CRD または CR を含め、カスタムリソース定義またはカスタムリソースはいずれも削除されません。Operator がクラスターにアプリケーションをデプロイしているか、またはクラスター外のリソースを設定している場合、それらは引き続き実行され、手動でクリーンアップする必要があります。
4.1.4.3. クラスターからの Operator の削除 - コマンドラインインターフェイス
以下のコマンドを使用して、
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
を使用します。以下のコマンドを使用してオペレーターのサブスクリプションを削除します。
$ oc delete subscription jws-operator -n <project_name>
注記上記のコマンドでは、
<project_name>
はオペレーターをインストールしたプロジェクトの名前空間を参照します。オペレーターがすべての名前空間にインストールされていた場合は、<project_name>
の代わりにopenshift-operators
を使用します。以下のコマンドを使用して、直前の手順の 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 ドキュメントを参照してください。
および