下面是一个部署MySQL的YAML文件示例,其中使用了ConfigMap来指定密码:
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config
data:
MYSQL_ROOT_PASSWORD: password123
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-deployment
spec:
selector:
matchLabels:
app: mysql
replicas: 1 #设置副本数量为1,可以根据需求调整
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql-container # 容器名称为mysql-container,可以自定义修改成你想要的名字。
image: mysql # 使用 MySQL 镜像
envFrom:
- configMapRef:
name: mysql-config # 引用上面定义的 ConfigMap
ports:
- containerPort: 3306 # 暴露容器端口号为3306,外部应用程序可以通过此端口访问MySQL服务。
volumeMounts:
- mountPath: /var/lib/mysql # 将MySQL数据目录挂载到容器中。
name: mysql-storage-volume
volumes:
- name : mysql-storage-volume
persistentVolumeClaim :
claimName : pvc-mysql
---
apiVersion : v1
kind : Service
metadata :
name : mysql-service
spec :
selector :
app : mysql
ports :
- protocol : TCP
port : 3306
targetPort : 3306
type : ClusterIP
在上面的配置文件中,我们首先创建了一个ConfigMap对象 mysql-config,并将MySQL的密码存储在其中。然后我们定义了一个Deployment对象 mysql-deployment 来部署MySQL服务,并使用上面创建的 ConfigMap 对象中的值来设置环境变量。
最后,我们还定义了一个Service对象 mysql-service 来暴露MySQL服务,使得其他应用程序可以通过该服务访问MySQL服务。
请注意,在此示例中使用了Persistent Volume Claim (PVC)来为MySQL提供持久化存储。如果您没有提前创建PVC,则需要将其添加到配置文件中以确保它可用。
希望这个示例能够帮助你部署 MySQL 服务。




