操作场景
本文以一个 consumer 应用和一个 provider 应用为例介绍通过容器部署方式将 Spring Cloud 原生应用部署到 TSF 的操作方法。
前提条件
1. 已参见 下载 Maven 安装 Java 和 Maven。
2. 下载 TSF 提供的 Demo (参见 Demo 工程概述)。
3. 解压 Demo 压缩包,按 README.md 文件说明执行命令
make docker-build
制作容器镜像。4. 在 TSF 控制台上已创建容器集群并导入云主机,详情参见 集群管理。
操作步骤
步骤1:创建并部署原生应用
1. 创建应用
1. 登录 TSF 控制台。
2. 在左侧导航栏,单击应用管理,进入应用列表页。
3. 在应用列表页,单击新建应用,并填写以下信息:
应用名:填写应用名。
部署方式:选择 容器部署。
业务类型:选择 业务应用。
开发语言:选择 JAVA。
开发框架:选择 SpringCloud。
应用类型:选择 原生应用。
4. 单击提交,完成应用创建。
2. 将镜像推送到仓库
1. 在左侧导航栏,单击镜像仓库,进入镜像列表页。首次使用时,您需要设置镜像仓库密码(该密码与腾讯云官网账号密码独立)。
3. 部署应用
1. 在应用列表中,单击在 步骤1:新建应用 中创建的应用的 “ID”。
2. 在部署组页面,单击新建部署组,设置部署组相关信息。
组名:填写部署组名。
集群:选择提前创建好的集群。
命名空间:选择集群关联的默认命名空间。
日志配置项:用于采集应用的业务日志数据,此处可选择无。
日志投递:用于日志转储,此处可选择无。
3. 单击保存&下一步,进入部署应用页面。
4. 设置部署相关信息。
选择镜像:选择 步骤2:将镜像推送到仓库 中推送到镜像仓库的镜像版本。
启动参数(选填):设置 Java 应用的启动参数。
资源配置:应用容器的 CPU 和内存限制使用默认值即可,实例数设置为1。
访问配置
网络访问方式决定了部署组内应用的网络属性,不同访问方式的应用可以提供不同网络能力。
端口映射中选择 TCP 协议,容器端口和服务端口设置为8002。
5. 单击提交,完成应用部署,部署应用后部署组状态变为运行中。
步骤2:查看服务是否注册成功
1. 在左侧导航栏,单击 服务治理 进入服务列表页,选择正确的地域和命名空间,查看服务是否注册成功。如果注册成功,服务显示在线状态。
2. 在服务列表页,单击服务 ID,进入服务详情页,查看具体信息。
步骤3:验证服务调用
使用与之前相同的流程部署一组 consumer 和 provider(如 consul-consumer 和 consul-provider)。
1. 请求 consumer 来调用 provider
有3种方式可以从公网请求 consumer:
云主机 IP + NodePort: 如果部署组在部署时,网络访问方式选择了主机端口访问,可以通过云主机 IP + NodePort来访问
consumer
服务的/ping-provider
接口。其中云主机 IP
为集群中任一云主机的 IP,NodePort
可以在部署组的基本信息页面被查看。curl <云主机 IP>:<NodePort>/ping-provider
负载均衡 IP + 服务端口:如果部署组在部署时,网络访问方式选择了提供公网访问方式,可以通过负载均衡 IP + 服务端口来访问
consumer
服务的/ping-provider
接口。API 网关:用户可以通过在 API 网关配置微服务 API 来调用 user 服务的接口。关于如何配置微服务 API 网关,可参见文档 API 网关作为请求入口。
也可以在容器内通过服务名和服务端口请求 consumer。先通过 kubectl 等方式进入 容器,然后调用:
wget -O- consul-consumer:8001/ping-providerwget -O- eureka-consumer:8003/ping-provider
2. 在控制台验证服务之间是否调用
可以验证服务是否成功被注册,同时验证服务之间是否成功地进行了调用。
在服务治理界面:选择集群和命名空间后,如果服务列表中的服务状态为在线或单点在线,表示服务被代理注册成功。如果服务提供者的请求量大于0,表示 provider 被 consumer 请求成功。
在依赖拓扑界面:调整时间范围,使其覆盖服务运行期间的时间范围,正常情况下,将出现服务之间相互依赖的界面。