mysql82持久化 k8s yaml
MySQL 8.2 持久化部署在 Kubernetes 上的 YAML 配置文件如下:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: standard
hostPath:
path: /data/mysql
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: standard
selector:
matchLabels:
app: mysql
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:8.2
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: password
ports:
- name: mysql
containerPort: 3306
protocol: TCP
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pvc
---
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
selector:
app: mysql
ports:
- name: mysql
port: 3306
targetPort: 3306
type: ClusterIP
---
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
type: Opaque
data:
password: bXlzcWwxczRw==
上述 YAML 文件包括以下部分:
- PersistentVolume:在 Kubernetes 集群中创建持久化存储卷,使用 hostPath 存储 MySQL 数据。
- PersistentVolumeClaim:声明持久化存储卷的使用,用于与 Deployment 中的容器进行挂载。
- Deployment:定义 MySQL 容器部署的规则,包括容器的镜像、环境变量、端口映射和持久化存储卷的挂载。
- Service:定义 MySQL 容器的服务,使其能够在 Kubernetes 集群中被访问。
- Secret:在 Kubernetes 集群中创建一个 Secret 对象,用于存储 MySQL 的密码,确保密码的安全性
原文地址: https://www.cveoy.top/t/topic/fGvB 著作权归作者所有。请勿转载和采集!