K8S实战之部署java应用

3.一个pod中的容器共享网络命名空间
4.生命周期是短暂的


Controllers:



1.Deployment:部署无状态应用
2.Statefulset:部署有状态应用
3.Replicaset:确保预期的Pod副本数量
4.Daemonset: 确保node运行同一个pod
5.Job:一次性任务
6.Cronjob:定时任务
更高级层次对象,部署和管理pod


Service:



防止Pod失联,找到你需要Pod
定义一组Pod的负载均衡访问策略


Label:标签,附加到某个资源上,用于关联对象,查询和筛选  
 Namespaces:命名空间,将对象进行逻辑上隔离或者资源隔离  
 **项目迁移到k8s平台是怎么样的流程?**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210126095154408.png)  
 基础镜像(一个空白的镜像)---------------运行环境镜像(py/php/go/java)---------------项目镜像(项目打包)  
 **实战项目开始**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210126095218461.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)  
 1.0将java源码程序项目包导入到master服务器上,如图所示  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210126095231733.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)  
 **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


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210126095257448.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)  
 **2开始制作镜像java镜像(master)**  
 我在之前的博文中讲了如何构建java镜像 https://blog.csdn.net/weixin\_43546282/article/details/112210164



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 V E R S I O N / b i n / a p a c h e − t o m c a t − {VERSION}/bin/apache-tomcat- VERSION/bin/apachetomcat{VERSION}.tar.gz &&
tar zxf apache-tomcat-KaTeX parse error: Expected 'EOF', got '&' at position 18: …ERSION}.tar.gz &̲& \ mv apache-…{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包  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210126095507756.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)  
 制作新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 .


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210126095532891.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70)  
 构建完成如图所示,新项目镜像构建完成  
 **3将镜像推入docker hub仓库中**  
 https://hub.docker.com/repository/docker/zhangfan5391621/zf\_test  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021012609555796.png)



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


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210126095614877.png)  
 **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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值