k8s 安装笔记 - MySQL数据库安装-开发环境
温馨提示:
本文最后更新于 2023年07月10日
,已超过 649 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
创建持久卷PV,用来存储mysql数据文件
- 定义一个容量大小为1GB的PV,挂载到/data/nfs/mysql目录,需手动创建该目录
mkdir -p /data/nfs/mysql
- 编写mysql-pv.yaml文件内容,要创建的pv对象名称:pv-1gi
# 定义持久卷信息
apiVersion: v1
kind: PersistentVolume
metadata:
# pv是没有namespace属性的,它是一种跨namespace的共享资源
name: pv-4gi
spec:
capacity:
storage: 4Gi
accessModes:
- ReadWriteMany
# 存储类,具有相同存储类名称的pv和pvc才能进行绑定
storageClassName: nfs
hostPath:
path: /data/nfs/mysql
- 创建该PV对象
kubectl create -f mysql-pv.yaml
创建持久卷声明PVC
- 编写mysql-pvc.yaml文件内容,要创建的pvc对象名称是:mysql-pvc
# 定义mysql的持久卷声明信息
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
namespace: devops
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 4Gi
# 存储类,具有相同存储类名称的pv和pvc才能进行绑定
storageClassName: nfs
创建Secret对象用来保存mysql的root用户密码
kubectl create secret generic \
mysql-root-password \
--from-literal=password=123456 \
-n devops
创建服务节点POD
# 定义mysql的Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: mysql
name: mysql
namespace: devops
spec:
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:8.0
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-root-password
key: password
# 如果你不想使用secret对象保存mysql登录密码,可以直接使用下面的方式指定,简单粗暴未尝不可
#value: "123456"
ports:
- containerPort: 3306
volumeMounts:
- name: pv-volume
mountPath: /var/lib/mysql
volumes:
- name: pv-volume
# 使用pvc
persistentVolumeClaim:
claimName: pv-claim-mysql
---
#定义mysql的Service
apiVersion: v1
kind: Service
metadata:
labels:
app: svc-mysql
name: svc-mysql
namespace: dev
spec:
selector:
app: mysql
type: NodePort
ports:
- port: 3306
protocol: TCP
targetPort: 3306
nodePort: 31234
正文到此结束
- 本文标签: k8s Linux mysql
- 本文链接: https://www.letcode.cn/article/11
- 版权声明: 本文由Jack.Chen原创发布,转载请遵循《 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权