k8s快速部署MySQL单机
1.创建PV/PVC
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mysql-data
namespace: t1-zdbl
spec:
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 30G
2.创建MySQL配置文件
kind: ConfigMap
apiVersion: v1
metadata:
name: mysql-config
namespace: t1-zdbl
data:
my.cnf: |-
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
symbolic-links=0
pid-file=/var/run/mysqld/mysqld.pid
default_authentication_plugin=mysql_native_password
[client]
socket=/var/run/mysqld/mysqld.sock
3.创建MySQL deploy文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: t1-zdbl-mysql
namespace: t1-zdbl
spec:
selector:
matchLabels:
app: mysql-8.0
template:
metadata:
labels:
app: mysql-8.0
spec:
containers:
- name: mysql
image: mysql:8.0
env:
- name: MYSQL_ROOT_PASSWORD
value: "System@123" #设置root登录密码
ports:
- containerPort: 3306
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql
subPath: mysql
- name: config
mountPath: /etc/mysql/conf.d/my.cnf
subPath: my.cnf
volumes:
- name: mysql-data
persistentVolumeClaim:
claimName: mysql-data
- name: config
configMap:
name: mysql-config
4.MySQL svc文件
apiVersion: v1
kind: Service
metadata:
labels:
app: t1-zdbl-mysql
name: t1-zdbl-mysql
namespace: t1-zdbl
spec:
ports:
- name: tcp-mysql-3306
nodePort: 30306
port: 3306
protocol: TCP
targetPort: 3306
selector:
app: mysql-8.0
type: NodePort
MySQL访问
内部:t1-zdbl-mysql.t1-zdbl.svc.cluster.local:3306
外部:SLB转发到节点30306端口,根据实际情况进行访问
"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少