流程
上图是交给了jekins由流水线创建完成,但是基本的文件还是需要手工完成的:代码,dockerFile,k8s-yaml
整个流程如下:
代码完成----->打包------>制作docker镜像------->k8s创建并部署yaml服务------>k8s控制器管理pod------->暴露应用------->对外发布应用------->日志监控
手动部署
-
运行环境镜像:安装java,maven,mysql环境
检测是否安装成功并能够使用:
在k8s节点测试mysql能否连上
安装mysql client
mysql -h主机名 -u用户 -p密码 //登录测试 -
db数据库表结构生成
生成数据库:将源码中的一个db目录下sql文件导入数据库
使用maven编译jar包
[root@master tomcat-java-demo-master]# mvn clean package -Dmaven.test.skip=true -
构建镜像
[root@master tomcat-java-demo-master]# docker build -t 镜像名 Dockerfile
构建完镜像之后最好把镜像推送到harbor远程厂库中,为了集中管理镜像,node节点直接登录厂库就可以在构建项目是直接下载。 -
开始部署k8s服务
生成项目yaml文件
[root@master yaml]# kubectl create deployment 名字 --image=镜像名 --dry-run(测试但不会执行) -o yaml > yaml文件名
生成svc yaml文件
[root@master yaml]# kubectl expose deployment 名字 --port=80 --target-port=8080 --type=NodePort -o yaml --dry-run > svc.yaml
注意
名字与生成项目中yaml名字一样
–port端口为集群内部访问端口
–target-port=8080 容器里端口
–type=NodePort 随机生成端口 集群外部访问端口 -
查看pod和svc
[root@master yaml]# kubectl get po,svc
NAME READY STATUS RESTARTS AGE
pod/java-demo-74b7db8f98-54zq8 1/1 Running 0 115m
pod/java-demo-74b7db8f98-bklnq 1/1 Running 0 115m
pod/java-demo-74b7db8f98-ffkbj 1/1 Running 0 115m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/java-demo NodePort 10.106.9.105 80:30534/TCP 86m
service/kubernetes ClusterIP 10.96.0.1 443/TCP 40d
登录web界面检查服务是否起来了:
http://nodeip:NodePor