伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

K8S实战之部署java应用

来源:本站原创 浏览:127次 时间:2022-09-23

kubernetes基本概念

Pod:

1.最小的部署单元,2.一组容器的集合3.一个pod中的容器共享网络命名空间4.生命周期是短暂的

Controllers:

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

Service:

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

Label:标签,附加到某个资源上,用于关联对象,查询和筛选

Namespaces:命名空间,将对象进行逻辑上隔离或者资源隔离

项目迁移到k8s平台是怎么样的流程?

基础镜像(一个空白的镜像)---------------运行环境镜像(py/php/go/java)---------------项目镜像(项目打包)

实战项目开始服务器ip服务器名称192.168.106.102k8s-master192.168.106.103k8s-node01192.168.106.104k8s-node02192.168.106.103mysql数据库

1.0将java源码程序项目包导入到master服务器上,如图所示

1将db目录下数据文件导入mysql中(node01)
#192.168.106.103数据库执行source  /root/tables_ly_tomcat.sqlgrant all on test.* to   'test'@'%'  identified by "Zhangfan@123";   #增加一个授权用户,在master登录能正常登录

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

vim src/main/resources/application.yml

2开始制作镜像java镜像(master)

我在之前的博文中讲了如何构建java镜像 https://blog.csdn.net/weixin_43546282/article/details/112210164

cat  DockerfileFROM 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/localtimeENV PATH $PATH:/usr/local/tomcat/bin   WORKDIR /usr/local/tomcatEXPOSE 8080CMD ["catalina.sh", "run"] 

安装编译环境

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

编译完成如图所示,生成一个war包

制作新Dockerfile

cat  Dockerfile FROM tomcat:v1 LABEL test  www.zhangsan.comRUN 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仓库中

https://hub.docker.com/repository/docker/zhangfan5391621/zf_test

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.yamlapiVersion: apps/v1kind: Deploymentmetadata:  labels:    app: java-demo  name: java-demospec:  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: 指定外部访问的端口为随机生成端口

kubectl apply  -f     svc.yaml   #创建svc kubectl  get  pods,svc

http://192.168.106.102:30187/ #任意节点ip:30187都能正常访问


至此项目部署完成

整个完成顺序是

构建环境镜像----------构建项目镜像----------推送到hub仓库----------构建Pod----------暴露应用svc

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net