前提:你要拥有一套简单的k8s集群,没有的看前面。
一、部署nfs,挂载到k8s的node节点:我这里的nfs服务器是172.30.0.150
yum install -y nfs-utils rpcbind
echo “/home/k8s-data 172.30.0.0/24(rw,all_squash,sync)” > /etc/exports
1、部署pv
apiVersion: v1
kind: PersistentVolume
metadata:
namespace: defaults
name: mysql-pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-mysql
nfs:
path: /home/k8s-data/mysql-pv
server: 172.30.0.150
二、部署pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: nfs-mysql
三、部署deployment
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: mysql
name: my-mysql
spec:
replicas: 2
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers: # 定义容器部分
- image: mysql:5.7
name: mysql
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456xp"
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql
volumes:
- name: mysql-data
persistentVolumeClaim:
claimName: mysql-pvc
四、部署四层svc
apiVersion: v1
kind: Service
metadata:
name: my-db
spec:
ports:
- port: 3306
nodePort: 31000
查看部署的pod
kubectl get pod
五、测试