腾讯云tsf平台-部署微服务项目
- 一、腾讯云tsf平台简介
- 二、部署准备0(数据库、中间件等部署)
- 三、部署准备1(创建集群和命名空间)
- 1、准备部署资源--集群
- 2、使用容器部署微服务
- 步骤 1:创建容器集群
- 步骤 2:创建命名空间
- 四、部署准备2(导入云主机,初始化集群)
- 五、创建容器应用
- 六、创建部署组
- 七、创建镜像和推送镜像到仓库
- 八、部署应用及访问测试
💖The Begin💖点点关注,收藏不迷路💖
|
一、腾讯云tsf平台简介
腾讯云tsf平台(Tencent Service Framework)是一款用于部署和管理微服务架构的云原生应用平台,可使用以下两种方式部署。本文档使用容器部署微服务。
1、使用容器部署微服务
2、使用虚拟机部署微服务
二、部署准备0(数据库、中间件等部署)
1、应用所需数据库正常。
2、中间件等,如nginx、redis等正常。
三、部署准备1(创建集群和命名空间)
1、准备部署资源–集群
集群是指云资源管理的集合,包含了运行应用的云主机等资源。集群包括虚拟机集群和容器集群两种类型。
集群操作支持新建集群、删除集群、导入云主机、移出云主机等。
2、使用容器部署微服务
步骤 1:创建容器集群
TSF 容器功能依赖于底层容器平台。
1.登录 TSF 控制台。
2.在左侧导航栏中,单击 【集群】。
3.在集群列表页的左上方,单击【新建集群】。
4.设置集群的基本信息。
• 集群名称:集群名称,不超过 60 个字符。
• 集群类型:选择集群类型 – 虚拟机集群:虚拟机集群中的主机用于部署虚拟机应用。
– 容器集群:容器集群中的主机用于部署容器应用。
– 集群描述:集群的描述,不超过 200 个字符。
注:独立版暂不支持导入容器集群功能
5、集群创建完后如下:
步骤 2:创建命名空间
1、命名空间概述
命名空间 ( Namespace ) 是对一组资源和对象的抽象集合。例如可以将开发环境、联调环境和测试环境的服务分别放到不同的命名空间中。在网络连通性的前提下,同一命名空间内的服务可以相互发现和相互调用。
2、命名空间使用场景
使用命名空间划分开发环境和测试环境
场景:用户希望部署一套开发环境和一套测试环境,两套环境支持部署同一个应用不同版本的程序包。两套环境可以共享一个集群作为底层部署资源。
解决方案:
1.创建两个命名空间分别为 dev-env 和 test-env 作为开发环境和测试环境。
2.创建一个虚拟机集群,并绑定 dev-env 和 test-env 命名空间。
3.创建应用(如 promotion),并创建 2 个部署组(dev-promotion 和testpromotion),分别选择 dev-env 和 test-env 命名空间。
4.部署组 dev-promotion 部署程序包版本 v1.1,部署组test-promotion部署程序包版本 v1.0。
如果用户希望开发和测试环境的部署资源是隔离的,可以使用两个集群来划分开发和测试环境。
3、实现服务跨集群访问
在网络连通性的前提下,同一命名空间内的服务可以相互发现和相互调用。如果要实现跨集群的服务访问,有两个前提:
1.集群内实例网络互通
2.集群关联相同的命名空间。多个集群通过命名空间名称(而不是命名空间ID)作为关联的 key。用户可以在命名空间一级页面中看到关联的集群信息。
例如:有 2 个集群分别是 cluster-1 和 cluster-2,两个集群内实例网络互通,并且都关联了命名空间 test-namespace。要实现跨集群访问,需要确保在创建部署组 provider-group 和 consumer-group 时,使用相同的命名空间testnamespace。
4、创建命名空间并关联集群
创建命名空间
1.登录 TSF 控制台,在左侧导航栏中,单击【命名空间】。
2.在命名空间列表页的左上方,单击【新建命名空间】。
3.在命名空间对话框内填写名称。
4.单击【提交】,完成创建。
集群关联命名空间
1.选择目标集群,进入集群详情页,单击【命名空间】标签页。
2.在命名空间列表左上方,单击【关联命名空间】。
3.选择要关联的命名空间,并单击【提交】。
集群仅支持关联自定义命名空间。
删除命名空间
前提条件:删除命名空间前,需要先解除命名空间与集群的绑定关系(解除命名空间绑定时,需要先删除具有该命名空间属性的全部部署组)。
解除关联集群
1.登录[TSF 控制台,在左侧导航栏中,单击【集群】。
2.选择目标集群,进入集群详情页,单击【命名空间】标签页。
3.在命名空间列表的操作列,单击【解除绑定】。
删除集群
1.在控制台左侧导航栏中,单击【命名空间】。
2.在命名空间列表的操作列,单击【删除】。
3.单击【确认】,即可删除命名空间。
四、部署准备2(导入云主机,初始化集群)
云主机导入
云主机用于部署应用,您需要先将云主机导入到集群中。
1.在集群列表页中,单击目标集群的 ID/集群名 。
2.在云主机列表标签页中,在云主机列表中,单击左上方的【导入云主机】按钮。
移出云主机
注意:只有当节点上没有运行应用时,才可以将节点从集群中移出。停止应用需要到部署组的实例列表页面中操作。
1.在集群列表页中,单击目标集群的 ID/名称,进入集群的节点列表页面。
2. 在集群节点列表页面,选择需要移出的云主机,单击操作列的【删除】。
3. 在弹出的提示框中,单击【确定】将云主机移出节点。
五、创建容器应用
TSF 应用分为两种类型:
• 虚拟机应用:通过程序包部署在云服务器上的应用。
• 容器应用:通过镜像部署在 Docker 容器中的应用。
虚拟机应用和容器应用的对比如下:
创建容器应用步骤:
1.登录 TSF 控制台。
2.在左侧导航栏中,单击【应用管理】。
3.在应用列表上方,单击【新建应用】。
4.设置应用信息后,单击【提交】按钮。
– 部署方式:选择容器部署
– 应用类型:选择普通应用
六、创建部署组
1.登录 TSF 控制台。
2.在左侧导航栏中,单击【部署组】进入部署组详情页。
3.选择部署组所属集群和所属命名空间。
4.在部署组列表上方,单击【新建部署组】按钮。
5.设置部署组相关信息。
– 部署组名称:部署组的名称,不超过 60 个字符。
– 关联应用:选择部署组关联的应用。
– 实例资源保留:分配给单个实例使用的 CPU 核数和内存资源Request 值。
– 实例数量:一个实例由相关的一个容器构成,可单击+ 和- 控制实例数量。实例数和实例资源限制的乘积不能超过集群剩余的可用资源。
– 网络访问方式: 网络的访问方式决定了部署组内应用的网络属性,不同访问方式的应用可以提供不同网络能力。
• NodePort:访问方式不绑定外网负载均衡,在集群内所有主机自动分配 NodePort 端口,可通过集群内任意主机IP+NodePort 访问该服务。
• 集群内访问:访问方式不绑定外网负载均衡,该服务只能在集群内部访问。 – 端口映射:容器端口与服务端口的映射关系。
• 协议:TCP、UDP。
• 容器端口:容器内应用程序监听的端口。
• 服务端口:集群外通过负载均衡域名或IP+服务端口访问服务;集群内通过服务名+服务端口访问服务。建议和容器端口保持一致。
– 更新方式:选择部署的更新方式。
• 快速更新:直接关闭所有实例,启动相同数量的新实例。
• 滚动更新:对实例进行逐个更新,这种方式可以让您不中断业务实现对服务的更新。
– 日志配置项:选择日志配置项,用于采集应用的业务日志数据。
七、创建镜像和推送镜像到仓库
注意:制作镜像操作前,请确保执行命令的机器上已安装docker 。
1、在应用列表中,单击创建的应用 ID/应用名。
2、单击镜像标签页,TSF 会针对每个容器应用创建一个名为tsf_<账号ID>/<应用名> 的镜像仓库。
3、使用 Dockerfile 创建镜像。
Dockerfile 内容:
FROM java:8
COPY *.jar /test-service-1.0.0.jar
LABEL authors ="zyl"
CMD ["--server.port=8020"]
EXPOSE 8020
ENTRYPOINT ["java", "-jar","/test-service-1.0.0.jar"]
----其中,8020为容器端口,Dockerfile文件和test-service-1.0.0.jar放在同级目录。
docker build -t test-service:1.0 .
—制作镜像,之后推送到镜像仓库即可。
4、将镜像推送到registry
sudo docker tag [ImageId] registry-tcnp.zyliv2.gz.csg/tsf_100010005/test-service:[tag]
sudo docker push registry-tcnp.zyliv2.gz.csg/tsf_100010005/test-service:[tag]
—其中,[ImageId]请根据您的实际镜像ID信息进行填写,[tag]请根据您的镜像版本信息进行填写
5、推送完成后,在镜像版本列表可查看镜像仓库中的镜像。
八、部署应用及访问测试
1、在部署组页面中,单击目标部署组右侧操作栏的【部署应用】按钮。
2、设置部署相关信息。
– 选择镜像:选择要部署的镜像。
– 单实例资源保留:分配给单个实例使用的 CPU 核数和内存资源Request 值。
– 实例数量:一个实例由相关的一个容器构成,可单击+ 和- 控制实例数量。实例数和实例资源限制的乘积不能超过集群剩余的可用资源。
– 启动参数(选填):设置 Java 应用的启动参数。
3、单击【提交】按钮。
4、部署完成后,如下:
5、访问测试:
IP+服务端口+服务名
💖The End💖点点关注,收藏不迷路💖
|