3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OpenShiftAdvent Calendar 2022

Day 9

緊急退避:見かけたjarファイルをOpenShift にデプロイする

Posted at

『アプリケーションをOpenShiftで動かす』事について、より理解を深めていかなくてはと課題を感じている今日この頃。
勉強して分かったことを記事にして共有したいなと思い準備していたのですが、想像していた以上に奥が深かったことに気がついきました。

深く踏み込むにも、OpenShiftへのアプリケーションのデプロイって、色々な内部処理がされていて、それがはたしてアプリケーション実行環境やフレームワークの機能なのか、OpenShiftが提供する機能なのか、そのどちらによって、実現されているのかがとらえきれず、今回は、ちゃんとした事はかけないと挫けました(汗)

もともとは、javaのソースコードの状態から、OpenShiftへコンテナをローンチするプロセスをしっかり理解したかったのですが、、、
興味のポイントとしては、java言語で書かれたコードの場合、javaのコンパイルが必要となるので、コンテナをビルドをする前に、javaのコード達はどういう状態になってなくてはならないのか。加えて、コンテナ化するために、どういったファイルや設定を用意しなくてはならないのかというのが気になっていました。

きっと、javaで書かれたコードがコンテナになるまでの流れを理解すると、構築の過程でコンパイルをはさむ他の言語に対しても、コンテナ化するためのステップとして、その全容がとらえられるだろうという期待です。この点を少しずつ深めていきたいなと。

で、結局、今回は『分からないことが分かった!』で終われないので、内容をかなり簡素化しまして、OpenShiftにアプリケーションをデプロイする操作について紹介したいと思います。

OpenShiftへのコンテナのデプロイ方法

OpenShift は、色々なデプロイ手段が提供されています。
それぞれ、稼働させたいコンテナの元の状態に応じて様々なアプローチがとれます。(それが故に、分かりにくい気がしています。)

OpenShift のWebコンソールから、アプリケーションの追加をたどると、コンテナをデプロイする場合のオプションを確認することができます。(画面は、Version 4.11)
image.png

OpenShiftが提供するアプリケーションのコンテナ化の詳細はこちらで確認できます。

今回は、jarファイルからコンテナをデプロイ

今回は、作業端末(手元のPC)上にあるjarファイルを元としてコンテナをビルドして、デプロイするという操作の流れを紹介します。

環境について

作業端末:Fedora OS 36
java環境: OpenJDK 17.0.5
サンプルアプリ:spring-petclinic-2.7.3.jar(github上にあるものをREADME.mdの内容に従いコンパイルして生成)
OpenShiftバージョン:4.11.8

コンパイルの操作は素直にできたので割愛します。

.jarファイルを指定してコンテナをビルド&デプロイ

プロジェクトの作成

まず、アプリケーションを稼働させるプロジェクトを作成します。
image.png

"JARファイルのアップロード" オプションを使用したアプリケーションの追加

OpenShiftのDeveloperビュー(パースペクティブ)にて、"+追加"を選択し、アプリケーション作成のオプション一覧を表示します。
image.png

画面中央再下段にある、"JARファイルのアップロード”を選択します。
image.png

アプリケーションの構成に必要な情報を入力します。
image.png

今回入力した値

JARセクション
項目
JARファイル  PC上のjarファイルを選択
オプションの引数 null ( defalt )
ランタイムアイコン java ( defalt )
ビルダーイメージのバージョン openjdk-17-ubi8 ( defalt )

image.png

一般セクション

image.png

項目
アプリケーション名 spring-petclinic-app
名前 spring-petclinic
リソースセクション

image.png

項目
生成するリソースのタイプ デプロイメント(defalt)
詳細オプションセクション
項目
ターゲットポート 8080(defalt)
routeを作成します。 チェックをオン(defalt)

その他、「詳細なルーティングオプションを表示する」や、「ヘルスチェック」、「ビルド設定」、「デプロイメント」、「スケーリング」、「リソース制御」の詳細なオプションについては、今回は指定を行わず、デフォルトのまま作成します。

デプロイ処理が完了するまで待ち

アプリケーションの作成処理が開始されると、画面が切り替わります。この時、裏側ではコンテナのビルドが行われています。

image.png

デプロイが完了し、実行状態(Status == RUN)となると、次の画面の用な表示に変わります。

image.png

この操作では、deployに付帯する、様々なリソースも作成されました。(下画面の右側の情報)
image.png

APLへアクセス

リソースタブのルートのリンク(または、Dukeアイコン右上の□矢印マーク)から、アプリケーションのアクセスページを開くことが出来ます。

image.png

無事に、アプリケーションの画面が表示されました。

感想

当たり前といえば、当たり前のような気持ちしかありませんが、ここで紹介した操作内容のように、.jarファイル(コンパイル済みのjavaプログラム)を無事にデプロイできました。
また、Web-consoleのウィザードを用いた操作で完結したので、Deployに伴って作成される様々なリソースについて特に意識を向けなくても容易に目的のことを達成できました。
これは、取っ掛かりとしてはありがたい限りです。

今回、作成されたリソースとマニフェストファイルを細かく追いかけて、gitopsを目指す場合のマニフェストのセットも抽出したいなと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?