my.cnf
[client]
port = 3306
default-character-set=utf8mb4
[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
#服务端口号 默认3306
port = 3306
default_storage_engine=InnoDB
character-set-server = utf8mb4
max_connect_errors = 1000
interactive_timeout = 2880000
wait_timeout = 2880000
read_rnd_buffer_size = 10M
sort_buffer_size = 10M
kubectl create ns mysql
kubectl create configmap mysql-config -n mysql --from-file= my.cnf
创建pv
apiVersion : v1
kind : PersistentVolume
metadata :
name : nfs- mysql- pv
namespace : mysql
labels :
pv : nfs- mysql- pv
spec :
capacity :
storage : 200Gi
accessModes :
- ReadWriteOnce
persistentVolumeReclaimPolicy : Retain
storageClassName : nfs
nfs :
server : 192.168.3.228
path : /mysql
创建pvc
apiVersion : v1
kind : PersistentVolumeClaim
metadata :
name : nfs- mysql- pvc
namespace : mysql
spec :
storageClassName : nfs
accessModes :
- ReadWriteOnce
resources :
requests :
storage : 200Gi
注:nfs服务器端配置文件中需要给no_root_squash权限: /etc/exports
/mysql/ *(rw,sync,no_root_squash)
创建Deployment
apiVersion : apps/v1
kind : Deployment
metadata :
name : mysql- deployment
namespace : 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 : p@ssw0rd
ports :
- containerPort : 3306
volumeMounts :
- name : mysql- persistent- storage
mountPath : /var/lib/mysql
- name : mysql- config
mountPath : /etc/my.cnf
subPath : my.cnf
volumes :
- name : mysql- persistent- storage
persistentVolumeClaim :
claimName : nfs- mysql- pvc
- name : mysql- config
configMap :
name : mysql- config
items :
- key : my.cnf
path : my.cnf
创建Service
apiVersion : v1
kind : Service
metadata :
name : mysql- service
namespace : mysql
spec :
selector :
app : mysql
type : NodePort
ports :
- port : 3306
targetPort : 3306
protocol : TCP
nodePort : 31336