k8s搭建完lnmp后,发现mysql只要重启以后,不是以前那个容器了,而是重新构建了一个
新的mysql容器,这肯定是不可以的 ,所以使用nfs服务将mysql的数据进行挂载,
再重启服务以后,mysql就有数据了;
1:配置nfs
[root@k8s-master MysqlPvPvc]
/nfsdata *(rw,no_root_squash,sync)
这里设置的根目录下的nfsdata
2:创建mysql-pv.yaml文件
kind: PersistentVolume
apiVersion: v1
metadata:
name: mysql-pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
persistentVolumeReclaimPolicy: Retain
nfs:
path: /nfsdata/mysql
server: 192.168.78.199
3:创建mysql-pvc.yaml文件
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mysql-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
4:创建mysql.deployment.yaml文件
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
value: '123456'
ports:
- containerPort: 3306
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pvc
---
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
clusterIP: 10.254.235.245
type: NodePort
ports:
- port: 3306
targetPort: 3306
nodePort: 38888
selector:
app: mysql
这里有个问题,就是访问数据库时候,不知道你们用的是什么ip,我用的是service的ip,
如果用ip+端口号,是否会有风险,还有,固定这个clusterIP,是为了重启服务方便测试,
不然,他老是更换,每次还要更换mysql测试文件中的ip,比较麻烦;
(qq:九七二四三九三二九(972439329)微信:(liang7890234),有哪里不对欢迎指正,大家一起学习交流)
End