111111

项目迁移到K8S流程

一.项目迁移到K8S流程

 

 

 

 

二.操作实例。

     2.1   上传线上应用,并且测试数据库是否可以连通。

     2.2   安装JDK环境,和编译环境

             

1
yum install openjdk-1.8.0-java maven -y    安装JDK 和编译maven<br><br>vim  src/main/resources/application.yml mvn clean package -Dmaven.test.skip=true      打印新包为package  -D 跳过单元测试 <br><br>

server:
port: 8080
spring:
datasource:
url: jdbc:mysql://10.240.37.59:3306/test?characterEncoding=utf-8
username: root
password: 123.com
driver-class-name: com.mysql.jdbc.Driver
freemarker:
allow-request-override: false
cache: true
check-template-location: true
charset: UTF-8
content-type: text/html; charset=utf-8
expose-request-attributes: false
expose-session-attributes: false
expose-spring-macro-helpers: false
suffix: .ftl
template-loader-path:
- classpath:/templates/

 

 2.3 编辑Dockerfile文件 

1
2
3
4
5
6
vim Dockerfile
 
FROM  zhaobin/tomcat
LABEL maintainer www.ctnrs.com
RUN rm -rf /usr/local/tomcat/webapps/*
ADD target/*.war /usr/local/tomcat/webapps/ROOT.war

   2.4 构建镜像

1
2
3
docker build -t a13552821243/java-demon -f tomcat-java-demo-master/
 
docker images

 

 

 

 

 

   2.5 推送镜像仓库 docker hub

1
2
3
docker login
 
docker push a13552821243/java-demon

 

 

三.  POD管理

    创建yaml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
kubectl create deployment java-demon --image=a13552821243/java-demon --dry-run -o yaml  > deploy.yaml
 
 
 
vim  deploy.yaml
###########################
 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: java-demon
  name: java-demon
spec:
  replicas: 3
  selector:
    matchLabels:
      app: java-demon
  template:
    metadata:
      labels:
        app: java-demon
    spec:
      containers:
      - image: a13552821243/java-demon
        name: java-demon
#############################
 
 
 
kubectl apply -f deploy.yaml
 
docker get pods   发现已经都运行

 

 

 

 

 四.  暴露应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
kubectl expose deployment java-demon --port=80 --target-port=8080 --type=NodePort -o yaml --dry-run > svc.yaml     #通过本机生成个随机端口绑定80端口映射到后端java-demon podS所对应的tomcat8080端口
 
vim svc.yaml
#################################
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: java-demon
  name: java-demon
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: java-demon
  type: NodePort
                 
####################################

  

 

 外部就可以直接访问master本机IP加32088端口了。

 

 

五。如果上线有问题回滚

1
2
3
kubectl rollout history deployment web          查看可以回滚的版本
 
kubectl rollout undo  deployment web    回滚到上一版本

 

6.弹性扩容 

1
kubectl scale deployment web --replicas=5       指定哪个资源扩容几个副本

  

posted @   赵SIR  阅读(1054)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示