项目迁移到K8S流程
一.项目迁移到K8S流程
 
二.操作实例。
2.1 上传线上应用,并且测试数据库是否可以连通。
2.2 安装JDK环境,和编译环境
yum install openjdk-1.8.0-java maven -y 安装JDK 和编译maven
vim src/main/resources/application.yml
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/
mvn clean package -Dmaven.test.skip=true 打印新包为package -D 跳过单元测试
2.3 编辑Dockerfile文件
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 构建镜像
docker build -t a13552821243/java-demon -f tomcat-java-demo-master/ docker images
 
2.5 推送镜像仓库 docker hub
docker login docker push a13552821243/java-demon
 
三. POD管理
创建yaml文件
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   发现已经都运行
 
四. 暴露应用
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端口了。
五。如果上线有问题回滚
kubectl rollout history deployment web 查看可以回滚的版本 kubectl rollout undo deployment web 回滚到上一版本
6.弹性扩容
kubectl scale deployment web --replicas=5 指定哪个资源扩容几个副本
                
            
        
浙公网安备 33010602011771号