以下说明将引导您使用 Kf 部署 Cloud Foundry Spring Music 参考应用,并演示此过程中的一些事项:
从来源构建 Java 应用:Spring Music 来源将在集群上构建,而不是在本地构建。
Service Broker 集成:您将创建一个 PostgreSQL 数据库并将其绑定到 Spring Music 应用。
Spring Cloud 连接器:Spring Cloud 连接器由 Spring Music 应用用于检测绑定 CF 服务等内容。它们可与 Kf 无缝合作。
配置 Java 版本:您将指定要 buildpack 使用的 Java 版本。
前提条件
选项 1:Minibroker
集群管理员应按照这些说明将 Minibroker Service Broker 安装到集群中。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:其他 Service Broker
您可以使用安装的其他 Service Broker,只要该代理支持创建 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
推送应用
部署(这假设您已
kf target
空间;如需了解详情,请参阅这些文档):kf push spring-music
使用代理功能访问部署的应用,然后在浏览器中加载
http://localhost:8080
:kf proxy spring-music
部署的应用包含一个界面元素,其中显示正在使用的 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