在Kubernetes(k8s)中部署Java应用
目录
1、项目迁移到k8s平台的怎样的流程

2、Kubernetes基本概念
 Pod • 最小部署单元 • 一组容器的集合 • 一个Pod中的容器共享网络命名空间 • Pod是短暂的
 Controllers • Deployment : 无状态应用部署 • StatefulSet : 有状态应用部署 • DaemonSet : 确保所有Node运行同一个Pod • Job : 一次性任务 • Cronjob : 定时任务
 更高级层次对象,部署和管理Pod
 Service • 防止Pod失联 • 定义一组Pod的访问策略
 Label : 标签,附加到某个资源上,用于关联对象、查询和筛选
 Namespaces : 命名空间,将对象逻辑上隔离
3、构建项目镜像
1、准备Jar包

2、制作镜像
解压文件
yum install -y unzip && unzip tomcat-java-demo-master.zip 
把这个sql文件导入mysql。

在Node1上下载mysql:5.6的镜像。
docker run -p 3306:3306 --name mysql-master \
-v /mydata/mysql/master/log:/var/log/mysql \
-v /mydata/mysql/master/data:/var/lib/mysql \
-v /mydata/mysql/master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.6
接下导入sql数据。
可以使用工具导入方便。

修改代码里的配置文件


安装JDk和Maven环境
 yum install -y java-1.8.0-openjdk maven
修改maven源
vim /etc/maven/settings.xml
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

编译源码 【漫长的等待】
mvn clean package -D maven.test.skip=true

准备使用DockerFile文件来构建镜像。

FROM lizhenliang/tomcat 
LABEL maintainer www.ctnrs.com
RUN rm -rf /usr/local/tomcat/webapps/*
ADD target/*.war /usr/local/tomcat/webapps/ROOT.war 
构建镜像
docker build -t lizhenliang/java-demo -f Dockerfile .
已经成功

写ymal文件【生成模板,在修改】
kubectl create deployment java-demo --image=lizhenliang/java-demo --dry-run -o yaml 
#内容
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: java-demo
  name: java-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: java-demo
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: java-demo
    spec:
      containers:
      - image: lizhenliang/java-demo
        name: java-demo
        resources: {}
status: {}
重定向,生成本地的yaml
kubectl create deployment java-demo --image=lizhenliang/java-demo --dry-run -o yaml > deploy.yaml
[root@master ~]# cat deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: java-demo
  name: java-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: java-demo
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: java-demo
    spec:
      containers:
      - image: lizhenliang/java-demo
        name: java-demo
运行
kubectl apply -f deploy.yaml 

kubectl get pods
4、部署项目镜像到Kubernetes平台

    人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号