• 项目迁移到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       指定哪个资源扩容几个副本
    

      

  • 相关阅读:
    排查程序死循环,死锁的方法 ——pstack
    可变参数使用
    snprintf 返回值陷阱 重新封装
    linux 查看cpu个数,内存情况,系统版本
    nginx取结构体地址
    fuser命令使用心得
    Linux中dos2unix批量转换
    rpm中config,config(noreplace)区别
    slowhttptest慢攻击工具介绍
    jmeter性能测试
  • 原文地址:https://www.cnblogs.com/zhaobin-diray/p/13202931.html
Copyright © 2020-2023  润新知