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