項目遷移到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       指定哪個資源擴容幾個副本

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM