K8S实战之部署java应用,2024年最新软件测试黑科技实现原理揭秘

69 阅读3分钟

基础镜像(一个空白的镜像)---------------运行环境镜像(py/php/go/java)---------------项目镜像(项目打包)
实战项目开始
在这里插入图片描述
1.0将java源码程序项目包导入到master服务器上,如图所示
在这里插入图片描述
1将db目录下数据文件导入mysql中(node01)

#192.168.106.103数据库执行
source  /root/tables_ly_tomcat.sql
grant all on test.\* to   'test'@'%'  identified by "Zhangfan@123";   #增加一个授权用户,在master登录能正常登录

修改连接数据库的配置文件,改成刚才数据授权的用户和ip

vim src/main/resources/application.yml

在这里插入图片描述
2开始制作镜像java镜像(master)
我在之前的博文中讲了如何构建java镜像 blog.csdn.net/weixin\_435…

cat  Dockerfile
FROM centos:7                    
MAINTAINER zhangfan               
ENV VERSION=8.5.61                
RUN yum install java-1.8.0-openjdk wget curl unzip iproute net-tools -y && \
    yum clean all && \
    rm -rf /var/cache/yum/\*
RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz && \
 tar zxf apache-tomcat-${VERSION}.tar.gz && \
 mv apache-tomcat-${VERSION} /usr/local/tomcat && \
 rm -rf apache-tomcat-${VERSION}.tar.gz /usr/local/tomcat/webapps/\* && \
 mkdir /usr/local/tomcat/webapps/test && \
 echo "ok" > /usr/local/tomcat/webapps/test/status.html && \
 sed -i '1a JAVA\_OPTS="-Djava.security.egd=file:/dev/./urandom"' /usr/local/tomcat/bin/catalina.sh && \
 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PATH $PATH:/usr/local/tomcat/bin 
WORKDIR /usr/local/tomcat
EXPOSE 8080
CMD ["catalina.sh", "run"] 

安装编译环境

yum -y install  java-1.8.0-openjdk    maven 
cd      /root/tomcat-java-demo-master
vim src/main/resources/application.yml   #修改配置文件指定刚才创建用户的数据库
mvn   clean  package  -Dmaven.test.skip=true

编译完成如图所示,生成一个war包
在这里插入图片描述
制作新Dockerfile

cat  Dockerfile 
FROM tomcat:v1 
LABEL test  www.zhangsan.com
RUN rm -rf     /usr/local/tomcat/webapps/\*
ADD target/\*.war /usr/local/tomcat/webapps/ROOT.war

#注意这里命名 ` zhangfan5391621/java-demo` zhangfan5391621表示docker hub仓库登录名/java-demo为项目名

docker build -t zhangfan5391621/java-demo .

在这里插入图片描述
构建完成如图所示,新项目镜像构建完成
3将镜像推入docker hub仓库中
hub.docker.com/repository/…
在这里插入图片描述

docker push zhangfan5391621/java-demo   #上传到docker hub仓库中去

在这里插入图片描述
4生成k8s-Pod

# kubectl  create  deployment  java-demo  --image=zhangfan5391621/java-demo  --dry-run -o yaml > deploy.yaml

在本地生成一个yaml标准文件

cat deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: java-demo
  name: java-demo
spec:
  replicas: 3   #三个副本
  selector:
    matchLabels:
      app: java-demo
  template:
    metadata:
      labels:
        app: java-demo
    spec:
      containers:
      - image: zhangfan5391621/java-demo
        name: java-demo

kubectl apply -f  deploy.yaml   #构建pod
 kubectl  get pods   #全部状态running说明构建成功

在这里插入图片描述
检查pod日志,无错误说明成功,如果报错状态不对用下面命令检查

`kubectl describe nodes  k8s-node01   #检查node`
`kubectl  logs java-demo-876cf6688-57jzf`

5 暴露应用svc

 kubectl  expose deployment  java-demo  --port=80 --target-port=8080 --type=NodePort -o yaml --dry-run > svc.yaml

java-demo :刚才创建deployment时的名称, --port=80:容器内部访问端口 --target-port=8080 :指定pod内部端口 --type=NodePort: 指定外部访问的端口为随机生成端口



![img](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/a5dc1fe9b88d4354928b45017ef99dcd~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771137923&x-signature=CM05W0SI3mFE%2F4CxbAzoVGvL3t0%3D)
![img](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/79ceac2d3406410a9fb58faac869f34e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771137923&x-signature=FUSmZ0hPrtKORT8iuHukLZiKykE%3D)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**了解详情》docs.qq.com/doc/DSlVlZExWQ0FRSE9H**