gpt4 book ai didi

kubernetes - 挂载 ConfigMap 从 MySQL my.cnf 文件中删除了旧数据

转载 作者:行者123 更新时间:2023-12-02 11:36:51 27 4
gpt4 key购买 nike

我是 Kubernetes/Openshift 的新手。

我正在尝试使用 configmap 更新 MySQL 配置。我有以下 yaml

apiVersion: v1
kind: ConfigMap
metadata:
name: slave-replcmap
data:
my.conf: |
[mysqld]
server-id=2
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-slave
spec:
selector:
matchLabels:
app: mysql-slave
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql-slave
spec:
volumes:
- name: slave-mysql-persistent-storage
persistentVolumeClaim:
claimName: slave-nfs-claim1
- name: slave-replcmap-vol
configMap:
name: slave-replcmap
- name: slave-mysqlinitconf-vol
configMap:
name: slave-mysqlinitcmap
containers:
- image: mysql:5.7
name: mysql-slave
env:
- name: MYSQL_SERVER_CONTAINER
value: mysql
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: MYSQL_ROOT_PASSWORD
- name: MYSQL_DATABASE
valueFrom:
secretKeyRef:
name: mysql-secret
key: MYSQL_DATABASE
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: mysql-secret
key: MYSQL_USER
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: MYSQL_PASSWORD
ports:
- containerPort: 3306
name: mysql-slave
volumeMounts:
- name: slave-mysql-persistent-storage
mountPath: /var/lib/mysql
- name: slave-mysqlinitconf-vol
mountPath: /docker-entrypoint-initdb.d
- name: slave-replcmap-vol
mountPath: /etc/mysql/my.cnf
subPath: my.conf

更新配置文件没问题。

但问题在于它从 my.cnf 文件中删除了现有内容并添加了 configmap 数据。我需要将此 configmap 数据附加到 my.cnf 文件而不删除现有数据。

请告诉我如何修改 yml 文件才能实现这一点。

提前致谢。

最佳答案

您当前的配置挂载卷直接到 my.cnf 文件 - mountPath:/etc/mysql/my.cnf。当您这样做时,您正在替换它。 subPath 属性用于按键引用文件。可以找到类似的例子here .

我在我的本地环境中部署了这个镜像。默认情况下 my.cnf 里面只有一些注释文本和:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

这意味着两个文件夹中的所有配置文件都包含在主配置中。

您可以将此配置挂载到其中一个文件夹,而不是挂载主配置。例如:

...
mountPath: /etc/mysql/conf.d/new.conf
subPath: my.conf

关于如何传递 ConfigMaps 的其他方式描述了 here .

我还建议您查看此 MySQL HELM Chart关于 MySQL 中的配置文件。

关于kubernetes - 挂载 ConfigMap 从 MySQL my.cnf 文件中删除了旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58952613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com