gpt4 book ai didi

AWS 上挂载卷的 Mysql k8s Pod 失败

转载 作者:行者123 更新时间:2023-11-29 06:45:08 24 4
gpt4 key购买 nike

我尝试使用 mount-volume 来获取跨 /var/lib/mysql 的持久性

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: mysql
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim

kubelogs如下

sh-3.2# kubectl logs acds-catchup-db-6f7d4b6c5b-2jwds  
Initializing database
2018-04-16T09:23:18.020740Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-04-16T09:23:18.022014Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-04-16T09:23:18.022037Z 0 [ERROR] Aborting

在调查中,我发现在 MountVolume 中创建了一个名为 Lost+Found 的目录。

谁能帮我解决这个问题

最佳答案

该目录始终存在于卷的根路径中,因此您不能直接将其删除。

您有两种修复方法:

  1. 在 MySQL 配置中添加 --ignore-db-dir=lost+found 选项。我认为这是更好的方法。
  2. 将数据库目录设置为卷内部的路径,而不是卷的根路径。您可以通过--datadir=选项指定数据库目录。

以下是参数设置的示例:

spec:
containers:
- name: mysql
image: mysql:5.6
args: ["--ignore-db-dir=lost+found"]

关于AWS 上挂载卷的 Mysql k8s Pod 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49854502/

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