在K8S[Kubernetes] 上部署MySQL并数据持久化
#前提#0系统版本centos7.6#1已经安装好kubeadm-1.9.6k8s集群master01-15.64node01-15.65node02-15.76(参考k8s-杜宽)#2已经安装好nfs服务器15.30目录/root/nfs_data#安装mysql过程原文:https://zengwenqi.blog.csdn.net/article/details/112243757#挨个启动
# 前提
# 0 系统版本centos7.6
# 1 已经安装好kubeadm-1.9.6 k8s集群 master01-15.64 node01-15.65 node02-15.76(参考k8s-杜宽)
# 2 已经安装好nfs服务器 15.30 目录 /root/nfs_data
# 安装mysql过程 原文:https://zengwenqi.blog.csdn.net/article/details/112243757
# 挨个启动本目录中的yaml文件即可
kubectl apply -f pv-mysql.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: model-db-pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 5Gi
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: model-db-pv-claim
namespace: default
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs
nfs:
path: /root/nfs_data
server: 10.69.15.30
volumeMode: Filesystem
kubectl apply -f pvc-mysql.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: model-db-pv-claim
namespace: default
labels:
app: model-mysql
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
kubectl apply -f config-mysql.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: model-db-config
namespace: default
labels:
app: model-db
data:
my.cnf: |-
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake = true
max_connections=2000
secure_file_priv=/var/lib/mysql
bind-address=0.0.0.0
symbolic-links=0
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
kubectl apply -f dep-mysql.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: model-db
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: model-mysql
template:
metadata:
labels:
app: model-mysql
spec:
containers:
- args:
- --datadir
- /var/lib/mysql/datadir
env:
- name: MYSQL_ROOT_PASSWORD
value: root
- name: MYSQL_USER
value: user
- name: MYSQL_PASSWORD
value: user
image: mysql:5.6
name: model-db-container
ports:
- containerPort: 3306
name: dbapi
volumeMounts:
- mountPath: /var/lib/mysql
name: model-db-storage
- name: config
mountPath: /etc/mysql/conf.d/my.cnf
subPath: my.cnf
volumes:
- name: model-db-storage
persistentVolumeClaim:
claimName: model-db-pv-claim
- name: config
configMap:
name: model-db-config
- name: localtime
hostPath:
type: File
path: /etc/localtime
kubectl apply -f svc-mysql.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: model-mysql
name: model-db-svc
namespace: default
spec:
type: NodePort
ports:
- name: http
port: 3306
nodePort: 33306
protocol: TCP
targetPort: 3306
selector:
app: model-mysql
# 查看状态
kubectl get all -n default
# 测试mysql 随便哪个node都可以
mysql -h10.69.15.65 -uroot -proot --port=33306
# 安装mysql过程 原文:https://zengwenqi.blog.csdn.net/article/details/112243757
更多推荐
所有评论(0)