2.2. Kubernetes を使用した OSToy アプリケーションのデプロイ
アプリケーションをデプロイするには、コンテナーイメージを作成し、それをイメージリポジトリーに保存して、そのイメージを使用する Deployment オブジェクトを定義する必要があります。
アプリケーションのデプロイには次の手順が必要です。
- フロントエンドとバックエンドのマイクロサービスコンテナーのイメージを作成する
- コンテナーイメージをイメージリポジトリーに保存する
- アプリケーションの Kubernetes Deployment オブジェクトを作成する
- アプリケーションのデプロイ
このワークショップでは、アプリケーションのデプロイに焦点を当てており、既存のイメージを使用するリモートファイルを実行していただきます。
2.2.1. ログインコマンドの取得 リンクのコピーリンクがクリップボードにコピーされました!
手順
次のコマンドを実行して、ROSA コマンドラインインターフェイス (CLI) (
rosa) にログインしていることを確認します。rosa whoamiコマンドラインインターフェイスにログインしている場合は、「新しいプロジェクトの作成」に進んでください。コマンドラインインターフェイスにログインしていない場合は、この手順を続行します。
- Web コンソールを使用してクラスターにアクセスします。
右上隅のログイン名の横にあるドロップダウン矢印をクリックし、Copy Login Command を選択します。
新しいタブが開きます。
- 認証方法を選択します。
- Display Token をクリックします。
- Log in with this token の下のコマンドをコピーします。
ターミナルから、コピーしたコマンドを貼り付けて実行します。ログインに成功すると、次の確認メッセージが表示されます。
$ oc login --token=<your_token> --server=https://api.osd4-demo.abc1.p1.openshiftapps.com:6443 Logged into "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443" as "rosa-user" using the token provided. You don't have any projects. You can try to create a new project, by running oc new-project <project name>
2.2.2. CLI を使用した新しいプロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して新しいプロジェクトを作成できます。
手順
以下のコマンドを実行して、クラスターに
ostoyという名前の新規プロジェクトを作成します。$ oc new-project ostoy出力例
Now using project "ostoy" on server "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443".オプション: 次のコマンドを実行して、一意のプロジェクト名を作成します。
$ oc new-project ostoy-$(uuidgen | cut -d - -f 2 | tr '[:upper:]' '[:lower:]')
2.2.3. Web コンソールを使用した新しいプロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Cluster Manager を使用して新しいプロジェクトを作成できます。
手順
-
Web コンソールから、Home
Projects をクリックします。 Projects ページで Create Project をクリックします。
- Create Project ボックスで、Name フィールドにプロジェクト名を入力します。
- Create をクリックします。
2.2.4. バックエンドマイクロサービスのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
マイクロサービスは内部 Web リクエストを処理し、現在のホスト名とランダムに生成された色の文字列を含む JSON オブジェクトを返します。
手順
次のコマンドを実行してマイクロサービスをデプロイします。
$ oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-microservice-deployment.yaml出力例
$ oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-microservice-deployment.yaml deployment.apps/ostoy-microservice created service/ostoy-microservice-svc created
2.2.5. フロントエンドマイクロサービスのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
フロントエンドデプロイメントでは、アプリケーションと追加の Kubernetes オブジェクトに Node.js フロントエンドを使用します。
フロントエンドデプロイメントでは、次の機能を定義します。
- 永続ボリューム要求
- Deployment オブジェクト
- サービス
- ルート
- ConfigMap
- シークレット
手順
次のコマンドを実行して、アプリケーションのフロントエンドをデプロイし、オブジェクトを作成します。
$ oc apply -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/ostoy-frontend-deployment.yaml出力例
persistentvolumeclaim/ostoy-pvc created deployment.apps/ostoy-frontend created service/ostoy-frontend-svc created route.route.openshift.io/ostoy-route created configmap/ostoy-configmap-env created secret/ostoy-secret-env created configmap/ostoy-configmap-files created secret/ostoy-secret createdすべてのオブジェクトが正常に作成されるはずです。
2.2.6. アプリケーションへのルートの取得 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションにアクセスするためのルートを取得します。
手順
次のコマンドを実行して、アプリケーションへのルートを取得します。
$ oc get route出力例
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD ostoy-route ostoy-route-ostoy.apps.<your-rosa-cluster>.abcd.p1.openshiftapps.com ostoy-frontend-svc <all> None
2.2.7. アプリケーションの表示 リンクのコピーリンクがクリップボードにコピーされました!
手順
-
前の手順で出力された
ostoy-route-ostoy.apps.<your-rosa-cluster>.abcd.p1.openshiftapps.comURL をコピーします。 コピーした URL を Web ブラウザーに貼り付けて Enter キーを押します。アプリケーションのホームページが表示されます。ページが読み込まれない場合は、
httpsではなくhttpを使用していることを確認してください。