用Service去找StatefulSet,指定mysql初始密码,用hostPath与本地进行挂载
这里只同步了data,还应该同步log和my.cnf
apiVersion: v1
kind: Service
metadata:
name: mysql57
labels:
app: mysql
spec:
selector:
app: mysql
type: NodePort
ports:
- name: mysql57
port: 3306
nodePort: 30306
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql
spec:
selector:
matchLabels:
app: mysql # has to match .spec.template.metadata.labels
serviceName: mysql
replicas: 1 # by default is 1
template:
metadata:
labels:
app: mysql # has to match .spec.selector.matchLabels
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mysql
image: mysql:5.7
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: host-path
mountPath: /var/lib/mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: "1234"
volumes:
- name: host-path
hostPath:
path: /usr/local/mysql
type: DirectoryOrCreate
需要知道pod在哪个节点上运行,创建相应的父文件夹
如果启动失败,可能是因为分配到的节点上的目录有问题