第一步 拷贝数据并修改配置文件
拷贝本地mysql数据到阿里云RDS
查看配置文件xiaoyao/WEB-INF/classes/config.properties中静态文件的存放位置拷贝到nfs服务器
静态文件为/usr/local/services/xiaoyao_file
修改配置文件 调整数据库信息
如果需要开启小幺鸡邮件重置密码功能 需要把配置文件中的邮件配置改成如下
# 邮件配置
email.provider=cn.com.xiaoyaoji.extension.email.DefaultEMailProvider
[email protected]
email.smtp.server=smtp.mxhichina.com
email.smtp.port=465
[email protected]
email.password=$password
第二步 创建dockerfile 制作镜像 将小幺鸡的包考进tomcat
Dockerfile-xiaoyaoji-80
FROM harbor.aircourses.com/jiaminxu/tomcat:v7.1
MAINTAINER PDABC Enterprise Container Images <[email protected]>
COPY xiaoyao /usr/local/tomcat/webapps/ROOT
ENV JAVA_HOME /usr/local/openjdk-8
ENV CATALINA_HOME /usr/local/tomcat/
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
ENTRYPOINT ["sh", "/usr/local/tomcat/bin/catalina.sh", "run" ]
第三步 在k8s中运行
pv.yaml
##创建nfs-PV
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: xiaoyaoji-pv
namespace: default
labels:
pv: xiaoyaoji-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
path: /opt/xiaoyao_file
server: 192.168.13.212
kubectl create -f pv.yaml
pvc.yaml
##创建 NFS-pvc
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: xiaoyaoji-pvc
namespace: default
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
selector:
matchLabels:
pv: xiaoyaoji-pv
kubectl create -f pvc.yaml
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
# deployment名字 和svc 和ingress绑定没关系
name: xiaoyaoji-dp
namespace: default
spec:
replicas: 1
# 在定义模板的时候必须定义labels,因为Deployment.spec.selector是必须字段,而他又必须和template.labels对应
selector:
matchLabels:
app: xiaoyaoji
# template里面定义的内容会应用到下面所有的副本集里面(例如depolyment下的pod),在template.spec.containers里面不能定义labels标签。可以kubectl get pods --show-labels查看
template:
metadata:
labels:
app: xiaoyaoji
env: pre
spec:
containers:
# containers名字 和svc 和ingress绑定没关系
- name: xiaoyaoji
#image: harbor.aircourses.com/jiaminxu/xiaoyaoji:v1.0
image: harbor.aircourses.com/kubernetes/xiaoyaoji:v3.0
volumeMounts:
- mountPath: /usr/local/services/xiaoyao_file
name: xiaoyao-file
ports:
- name: http
containerPort: 8080
volumes:
- name: xiaoyao-file
persistentVolumeClaim:
claimName: xiaoyaoji-pvc
imagePullSecrets:
- name: myregistrykey
kubectl apply -f deployment.yaml
svc.yaml
apiVersion: v1
kind: Service
metadata:
name: xiaoyaoji
namespace: default
spec:
type: ClusterIP
selector:
app: xiaoyaoji
env: pre
ports:
- name: http
port: 80
targetPort: 8080
kubectl apply -f svc.yaml
ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
# 通过添加下面的annotations 来开启白名单
# 关闭80强制跳转443 为ingress配置增加注解(annotations):nginx.ingress.kubernetes.io/ssl-redirect: 'false' 就可以禁止http强制跳转至https
annotations:
nginx.ingress.kubernetes.io/whitelist-source-range: "60.191.70.64/29, 192.168.0.0/16, 47.111.185.111, 47.97.113.64, 47.99.246.58, 47.111.170.245, 47.111.247.117, 47.99.244.221, 47.110.144.233, 47.110.144.233, 121.41.103.54, 121.40.186.211, 121.40.16.165, 121.40.16.63, 60.191.70.66"
nginx.ingress.kubernetes.io/ssl-redirect: 'false'
name: xiaoyaoji
spec:
tls:
- hosts:
- xiaoyaoji.aircourses.com
secretName: aircourses
rules:
- host: xiaoyaoji.aircourses.com
http:
paths:
- path: /
backend:
serviceName: xiaoyaoji
servicePort: 80
kubectl apply -f ingress.yaml
测试功能