以下の手順では、Kf を使用して Cloud Foundry Spring Music 参照アプリをデプロイする方法を説明します。ここでは、その過程でいくつかのことを説明します。
ソースから Java アプリをビルド: Spring Music のソースはローカルではなくクラスタ上でビルドされます。
サービス ブローカーの統合: PostgreSQL データベースを作成して Spring Music アプリにバインドします。
Spring Cloud Connectors: Spring Cloud Connectors は、Spring Music App がバインドされた CF サービスなどを検出するために使用され、Kf とシームレスに連携します。
Java バージョンの構成: ビルドパックで使用する Java のバージョンを指定します。
前提条件
オプション 1: Minibroker
クラスタ管理者は、こちらの手順に沿ってクラスタに Minibroker サービス ブローカーをインストールする必要があります。Minibroker を使用すると、PostgreSQL データベースをプロビジョニングして、それを使用するようにアプリを構成できます。
Minibroker がインストールされ、クラスタで使用できる状態かを確認するには、kf
marketplace
を実行します。次のような出力が表示されます。
$ kf marketplace
5 services can be used in Space "demo", use the --service flag to list the plans for a service
Broker Name Space Status Description
minibroker mariadb Active Helm Chart for mariadb
minibroker mongodb Active Helm Chart for mongodb
minibroker mysql Active Helm Chart for mysql
minibroker postgresql Active Helm Chart for postgresql
minibroker redis Active Helm Chart for redis
オプション 2: その他のサービス ブローカー
PostgreSQL サービスの作成をサポートしていれば、インストールされている別のサービス ブローカーを使用できます。たとえば、gcp-service-broker が使用できます。
デプロイ
ソースのクローンを作成する
Spring Music リポのクローンを作成します。
git clone https://github.com/cloudfoundry-samples/spring-music.git spring-music cd spring-music
manifest.yml
を編集して、内容を次のように置き換えます。--- applications: - name: spring-music memory: 1G random-route: true stack: org.cloudfoundry.stacks.cflinuxfs3 env: BP_AUTO_RECONFIGURATION_ENABLED: false
アプリを push する
デプロイ(Space がすでに
kf target
されていることを前提。詳しくはこちらのドキュメントを参照):kf push spring-music
プロキシ機能を使用して、デプロイされたアプリにアクセスし、ブラウザで
http://localhost:8080
を読み込みます。kf proxy spring-music
デプロイされたアプリには、どの Spring プロファイルが使用されているかを表示する UI 要素が含まれます(Spring プロファイルがある場合)。ここで、使用されているプロファイルがなければ、メモリ内データベースが使用されていることがわかります。
データベースを作成してバインドする
マーケットプレイスにインストールされているブローカーを介して PostgreSQL サービスを作成します。
kf create-service postgresql 11-7-0 spring-music-db -c '{"postgresqlDatabase":"smdb", "postgresDatabase":"smdb"}'
サービス インスタンスを Spring Music アプリにバインドします。
kf bind-service spring-music spring-music-db -c '{"postgresqlDatabase":"smdb", "postgresDatabase":"smdb"}'
アプリを再起動し、
VCAP_SERVICES
環境変数を介してサービス バインディングを使用できるようにします。kf restart spring-music
(省略可)バインディングの詳細を次のように表示します。
kf bindings
kf proxy
からアプリに再度アクセスし、ウェブブラウザで表示します。Spring プロファイルが表示され、作成してバインドした PostgreSQL サービスが使用されていることがわかります。
破棄
PostgreSQL サービスをバインド解除して削除します。
kf unbind-service spring-music spring-music-db kf delete-service spring-music-db
このアプリを削除します。
kf delete spring-music