第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 機能はテクノロジープレビューとして利用できます (サポート対象外)。クラスターリングはデフォルトでは Off です。現在の Operator バージョンは、DNS の制限により制限されている DNS Membership Provider を使用します。InetAddress.getAllByName() の結果はキャッシュされるため、スケールアップ中にセッションレプリケーションが機能しないことがあります。
本ガイドでは、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
$ oc get packagemanifests -n openshift-marketplace | grep jws jws-operator Red Hat Operators 16hCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source"
$ oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source" Catalog Source: redhat-operatorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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>
$ oc get operatorgroups -n <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroup リストの出力例:
NAME AGE mygroup 17h
NAME AGE mygroup 17hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この手順の Web コンソールバージョンは、SingleNamespace モードを選択する際に、OperatorGroup および Subscription オブジェクトの作成を背後で自動的に処理します。
以下のように OperatorGroup オブジェクト YAML ファイルを作成します。
OperatorGroupExample.yaml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow <project_name> はオペレーターをインストールするプロジェクトの名前空間 (oc project -q) です。<operatorgroup_name> は OperatorGroup の名前です。
以下のコマンドを使用して OperatorGroup オブジェクトを作成します。
oc apply -f OperatorGroupExample.yaml
$ oc apply -f OperatorGroupExample.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
サブスクリプションオブジェクト YAML ファイルを作成します (例:
jws-operator-sub.yaml)。Subscriptionオブジェクト YAML ファイルを以下のように設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <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 apply -f jws-operator-sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow インストールが正常に行われたことを確認するには、以下のコマンドを実行します。
oc get csv -n <project_name>
$ oc get csv -n <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 名前 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
$ oc get deployment.apps/jws-operator NAME READY UP-TO-DATE AVAILABLE AGE jws-operator 1/1 1 1 15hCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、より詳細な出力が必要な場合は、以下を行います。
oc describe deployment.apps/jws-operator
$ oc describe deployment.apps/jws-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
イメージを準備し、これを任意の場所にプッシュします。この例では
quay.io/<USERNAME>/tomcat-demo:latestにプッシュされます。 Custom ResourceWebServer .yaml ファイルを作成します。この例では、webservers_cr.yamlというファイルが使用されます。ファイルは、以下の形式に従う必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、作成したディレクトリーから webapp をデプロイします。
oc apply -f webservers_cr.yaml
$ oc apply -f webservers_cr.yaml webserver/example-image-webserver createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記オペレーターによってルートが自動的に作成されます。以下のコマンドを使用して、ルートを確認できます。
oc get routes
$ oc get routesCopy to Clipboard Copied! Toggle word wrap Toggle overflow ルートの詳細は、OpenShift ドキュメント を参照してください。
ステップ 4 で作成した
webserverを削除する場合は、以下を行います。oc delete webserver example-image-webserver
$ oc delete webserver example-image-webserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow または
oc delete -f webservers_cr.yaml
$ oc delete -f webservers_cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ oc get subscription jws-operator -n <project_name> -o yaml | grep currentCSV f:currentCSV: {} currentCSV: jws-operator.v1.0.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記のコマンドでは、
<project_name>はオペレーターをインストールしたプロジェクトの名前空間を参照します。オペレーターがすべての名前空間にインストールされていた場合は、<project_name>の代わりにopenshift-operatorsを使用します。以下のコマンドを使用してオペレーターのサブスクリプションを削除します。
oc delete subscription jws-operator -n <project_name>
$ oc delete subscription jws-operator -n <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記のコマンドでは、
<project_name>はオペレーターをインストールしたプロジェクトの名前空間を参照します。オペレーターがすべての名前空間にインストールされていた場合は、<project_name>の代わりにopenshift-operatorsを使用します。以下のコマンドを使用して、直前の手順の currentCSV 値を使用して、ターゲット名前空間のオペレーターの CSV を削除します。
oc delete clusterserviceversion <currentCSV> -n <project_name>
$ oc delete clusterserviceversion <currentCSV> -n <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<currentCSV>は、手順 1 で取得した値になります。oc delete clusterserviceversion jws-operator.v1.0.0
$ oc delete clusterserviceversion jws-operator.v1.0.0 clusterserviceversion.operators.coreos.com "jws-operator.v1.0.0" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記のコマンドでは、
<project_name>はオペレーターをインストールしたプロジェクトの名前空間を参照します。オペレーターがすべての名前空間にインストールされていた場合は、<project_name>の代わりにopenshift-operatorsを使用します。
4.1.5. 参考情報 リンクのコピーリンクがクリップボードにコピーされました!
Operator についての詳細は、公式の OpenShift ドキュメントを参照してください。
および