「9.3 コンテナイメージの作成」を参照して作成したコンテナイメージをコンテナ動作環境にデプロイして運用してください。
コンテナ動作環境へのデプロイ方法については、利用するコンテナ動作環境のマニュアルを参照してください。
注意
Red Hat OpenShift Container Platformで運用する場合、コンテナが運用ユーザーで起動されるようにするため、マニフェストファイルにsecurityContextとserviceAccountの設定をしてください。このとき、指定するサービスアカウントは、nonroot権限(rootで運用する場合はanyuid権限)が付与されている必要があります。サービスアカウントは、cluster-admin権限をもつ管理者に設定を依頼してください。
例
securityContext: runAsUser: 1000 serviceAccount: with-nonroot serviceAccountName: with-nonroot
GlassFishのプロセスの起動は、asadminコマンドではなくコンテナ動作環境のコマンドcontainer_glassfish_startで実行します。container_glassfish_startコマンドについては「11.2 container_glassfish_start」を参照してください。
container_glassfish_startコマンドでcontainer-instanceを起動した場合、以下のメッセージが出力されますが、正常な動作ですので対処の必要はありません。
Warning: Synchronization with DAS failed, continuing startup...
このメッセージは、リポジトリーの同期化が行われないことを表すメッセージであり、DASが起動していない状態でGlassFish Serverインスタンスを起動した場合に出力されます。コンテナイメージの作成時にリポジトリーの同期化を実施済みであれば、このメッセージが出力されても問題ありません。
コンテナ内でasadmin コマンドによりプロセスを停止しても、コンテナ動作環境により再起動されます。運用を停止する場合は、asadminコマンドではなく、コンテナ動作環境の操作を使用して停止してください。
例
Red Hat OpenShift Container Platform環境でDeploymentを使用して起動した場合
oc scale deployment Deployment名 --replicas=0
運用中のコンテナに対してasadminコマンドやGlassFish管理コンソールで定義を変更しても、コンテナまたは監視対象のプロセスを再起動すると変更した定義が元に戻ってしまいます。そのため、GlassFishの設定値の変更はコンテナイメージのビルド時に行い、ビルドしたコンテナイメージをデプロイすることでコンテナ動作環境に反映する必要があります。
HTTPセッションを利用する場合、セッションアフィニティ機能(Sticky Session)を有効にしてください。
コンテナを停止するとHTTPセッションが破棄されるため、セッション情報をデータベースに格納する、スケールインは夜間に行うように設定するなど、必要に応じてコンテナの停止時の対応を検討してください。
syslogにメッセージは出力されません。プロセスの起動、停止、異常終了などの状態は、コンテナ動作環境のログやコンテナの状態を監視するコマンドや機能を利用して確認してください。
コンテナ動作環境では、コンテナを停止するとコンテナ内に出力されたファイルは残りません。そのため、ログファイルをコンテナ停止後に参照する必要がある場合は、コンテナ動作環境を利用せずにオンプレミスの環境を利用してください。
サーバーログとHTTPアクセスログは、出力先を標準出力または標準エラー出力にすることで、コンテナの外部からログを参照することができます。出力先の変更方法は「9.3 コンテナイメージの作成」を参照してください。
コンテナ動作環境でGlassFishを運用中、または保守作業中にトラブルが発生した場合、技術員に連絡する前に以下の調査資料を採取してください。
標準出力・標準エラー出力に出力された内容
コンテナイメージのビルドに使用したDockerfile
コンテナ動作環境への配備に使用したマニフェストファイル
運用ユーザーがrootの場合、トラブルが発生したコンテナに乗り込んで実行した一括資料採取コマンド(eapfcollectinfo)の実行結果
アプリケーションの定義ファイル(web.xml、glassfish-web.xmlなど)
コンテナイメージをエクスポートしたファイル(注)
注) 技術員がコンテナイメージに格納したアプリケーションなどの資産を参照可能な場合にのみ採取してください。秘密情報などの重要なデータが含まれている場合は、採取しないでください。
例
docker saveコマンドでエクスポートする場合
docker save コンテナイメージ名 > エクスポートするファイル名