应用部署(容器场景)

最近更新时间: 2024-10-17 17:10:00

操作场景

本文以容器应用为例,指导您通过 TSF 控制台,创建并部署 Mesh 应用、查看服务是否注册成功、验证服务调用。

准备工作

  1. 下载 TSF 提供的 Python Mesh Demo(docker)(该步骤预计耗时1min)。

  2. 解压 Demo 压缩包,分别进入二级目录(如 demo-mesh-promotion 目录),执行 docker build 命令制作容器镜像。

  3. 在 TSF 控制台上已创建容器集群并添加节点,详情参考 [集群] (对于未创建容器集群和添加节点的用户,该步骤预计耗时10min)。

  4. 用户的开发机上已安装docker环境(用于推送镜像到镜像仓库。对于本地无docker环境的用户,该步骤预计耗时20min)。

操作步骤

步骤1:创建并部署 Mesh 应用

1. 创建应用

  1. 登录 【TSF 控制台】 。

  2. 在左侧导航栏,单击【应用管理】,进入应用列表页。

  3. 在应用列表页,单击【新建应用】,并填写以下信息:

    • 应用名:填写应用名称

    • 部署方式:选择容器部署

    • 应用类型:选择 Mesh 应用

    • 服务配置:可以选择【使用本地Spec.yaml】(默认方式)或者【控制台配置】。 若选择【控制台配置】,需要填写以下信息:

- 

-   服务名:最长60个字符,只能包含字母、数字和分隔符(“-”),且不能以分隔符开头或结尾。

-   监听端口:只有1个(接口使用数组类型)。协议:HTTP/HTTP2/gRPC/Dubbo;端口范围 1~65535。

-   心跳检查接口:校验逻辑,以 / 开头。不超过200个字符。

-   标签:选择已有标签或者前往标签管理创建。
  1. 单击【提交】,完成应用创建。

2. 将镜像推送到仓库

  1. 在左侧导航栏,单击【镜像仓库】,进入镜像列表页。首次使用时,您需要设置镜像仓库密码。

  2. 在镜像列表页,单击【应用管理】>【ID/应用名】>【镜像】,单击【使用指引】,根据指引中的命令将 Python demo 应用的镜像(参考 准备工作 中的第2步)推送到镜像仓库中 。

3. 创建部署组

  1. 在应用详情页内,单击【[部署组] 】,进入部署组列表页。

  2. 在部署组列表页,单击【新建部署组】,并填写以下信息:

    • 部署组名:填写部署组名称

    • 集群:选择应用将部署的集群

    • 命名空间:选择命名空间属性

    • 实例资源限制:0.5核,512MiB

    • 实例数:1

  3. 设置访问设置、更新方式、日志配置项。

    • 网络访问方式:NodePort

    • 端口协议:协议选择 TCP,容器端口和服务端口填写相同的数值(user:8089,shop:8090,promotion:8091)

    • 更新方式:快速更新

    • 日志配置项:选择无

  4. 单击【提交】,完成部署组创建。

4. 部署应用

  1. 在部署组列表页,单击部署组右侧的【部署应用】。

  2. 部署相关信息,使用 【步骤2】 中仓库中的镜像 。

  3. 单击【提交】,部署组状态变为运行中,则表示应用部署成功。

步骤2:查看服务是否注册成功

  1. 在左侧导航栏,单击【服务治理】,进入服务列表页,查看服务是否注册成功。如果注册成功,服务显示在线状态。

  2. 在服务列表页,单击服务 ID,进入服务详情页。单击【API 列表】标签页,可以查看上报的 API 定义。

步骤3:验证服务调用

使用同样的步骤部署 user、shop 和 promotion 三个应用。user、shop、promotion 三个服务的接口间调用关系如下:

1. 触发 user 服务调用 shop 和 promotion 服务

为了验证 user 服务能通过服务名来调用 shop 服务,需要用户通过以下三种方式来触发 user 服务的接口调用:

  • 负载均衡 IP + 服务端口:如果部署组在部署时,选择了公网访问方式,可以通过负载均衡 IP + 服务端口来访问user服务的/api/v6/user/account/query接口。

  • 云主机 IP + NodePort: 如果部署组在部署时,选择了 NodePort 访问方式,可以通过云主机 IP + NodePort来访问user服务的/api/v6/user/account/query接口。其中云主机 IP为集群中任一云主机的内网 IP,NodePort可以在部署组的基本信息页面被查看。用户首先登录到集群所在 VPC 的机器,然后执行如下命令:

curl -XGET <云主机 IP>:<NodePort>/api/v6/user/account/query
  • API 网关:用户可以通过在 API 网关配置微服务 API 来调用 user 服务的接口。关于如何配置微服务 API 网关

2. 在控制台验证服务之间是否调用

可以通过以下两种方式验证服务是否成功被 Sidecar 代理注册到注册中心,同时验证服务之间是否成功地进行了调用。

  • 服务治理界面:选择集群和命名空间后,如果服务列表中的服务状态为在线单点在线,表示服务被代理注册成功。如果服务提供者的请求量大于0,表示服务提供者被服务消费者请求成功。

  • 依赖拓扑界面:选择集群和命名空间后,调整时间范围,使其覆盖服务运行期间的时间范围,正常情况下,将出现服务之间相互依赖的界面。