系列文章目录



前言

以前,我们部署一个应用或者接口服务,往往是先编译构建打成jar或者war包,然后通过shell脚本或命令上传到虚拟机或者物理机上,覆盖Tomcat或其它容器指定目录,然后再重启Tomcat进程来升级应用或者接口服务。这种模式实施起来较为简单,但在如今看来,存在诸多缺陷。例如:应用服务无法动态扩缩容,应用服务很难做到资源隔离等等,服务混合部署难管理,资源能充分利用等。现在有了容器服务,这些问题会得到很大程度上的缓解。


一、本文要点

接前文,我们已经创建一个容器集群,下一步将介绍怎样把我们的应用服务或者接口服务部署到容器集群上。
系列文章完整目录

  • 腾讯云容器集群
  • 接口服务部署到容器集群
  • 应用服务部署到容器集群
  • 容器部署nginx前端服务
  • 挂载点和configMap的使用

二、开发环境

  • jdk 1.8
  • maven 3.6.2
  • springboot 2.4.3
  • idea 2020
  • 腾讯云tke

三、部署容器服务

部署容器服务一般分为三大步骤,制作镜像、创建工作负载、配置访问service。
腾讯云官方文档上对各个组件有详细介绍,这里通过启动一个nginx服务为例罗列一下从0到1创建一个服务的完整流程。
在这里插入图片描述

1、制作Nginx镜像,用来打包前端web服务。

(1)首先创建镜像命名空间和镜像仓库。
xx

(2)使用官网Nginx镜像,编写Dockerfile。其中本地dist目录可以存放前端静态资源文件。

FROM nginx:lasted
MAINTAINER hanyi hanyi@qq.com
# 存放Nginx日志
RUN mkdir -p /usr/local/blog/logs/
# 存在静态资源文件路径
RUN mkdir -p /usr/local/blog/dist/
# 复制前端WEB工程打包后的目录到镜像
COPY dist/ /usr/local/blog/dist/

(3)定义一个版本号1.0.0,编译打包上传到镜像仓库。

## 制作镜像
docker build -t ccr.ccs.tencentyun.com/angel/nginx:1.0.0 . -f Dockerfile
## 登录镜像仓库
docker login ccr.ccs.tencentyun.com --username=100011745047
## 上传镜像
docker push ccr.ccs.tencentyun.com/angel/nginx:1.0.0

这里可以看到,镜像已经上传到仓库了。
在这里插入图片描述

2、创建工作负载,用来运行前端web服务。

(1)创建工作负载deployment的命名空间,例如创建生产环境。
在这里插入图片描述
(2)创建一个configMap,用来存放nginx.conf配置文件。
在这里插入图片描述
这里示例只配置了静态文件,实际可以根据需要配置反向代理等nginx配置。

server {
	listen       80;
	server_name  10.xx.xx.32;
	access_log /usr/local/blog/logs/access.log;
    error_log /usr/local/blog/logs/error.log;

	location / {
		# 这里指向镜像打包的静态资源文件路径
		root /usr/local/blog/dist;
   		index index.html index.htm;
    		try_files $uri $uri/ /index.html;
	}
}

(3)创建工作负载
在这里插入图片描述
配置工作负载,设置数据挂载点,选择configMap。
在这里插入图片描述
配置容器镜像,选择挂载点,使用configMap中的配置来配置nginx,另外可以根据需要设置CPU和内存。
在这里插入图片描述

3、配置service,用来访问前端web服务。

例如nginx容器服务我们配置监听了80端口,所以也暴露80端口出来给外部访问。
在这里插入图片描述
可以根据需要设置服务访问方式,例如可以开放公网访问,但一般不建议,演示才这样选。
在这里插入图片描述

至此,配置完成,点击确认即可。
在这里插入图片描述
浏览器访问一下,可以看到的资源文件了,配置成功!
在这里插入图片描述

四、小结

至此,我们就成功部署一个应用到TKE集群了,服务创建成功后,可以通过升级镜像版本来升级服务,也可以调整pod数量来扩缩容等。等这里可以看到首次配置应用服务还是比较麻烦的,下一步,我们可以Coding流水线来配置CI/CD,构建我们的服务,下一篇《搭建大型分布式服务(二十六)一文了解持续交付CI/CD的前世今生

加我加群一起交流学习!更多干货下载、项目源码和大厂内推等着你

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐