【发布时间】:2019-04-17 16:18:32
【问题描述】:
我正在尝试使用https://github.com/helm/charts/tree/master/stable/mariadb#initialize-a-fresh-instance 的官方 helm 图表初始化一个新的 MariaDB 实例(将我的 .sql 文件放在 /docker-entrypoint-initdb.d 中)。
但我发现说明很不清楚:
为了执行脚本,它们必须位于图表文件夹
files/docker-entrypoint-initdb.d中,以便它们可以作为 ConfigMap 使用。
因为我设置 Mariadb 集群的唯一方法是使用他们的helm install --name my-release stable/mariadb -f values-production.yaml,所以我很困惑。
这个文件夹在哪里?
编辑
我下载了https://github.com/helm/charts/tree/master/stable/mariadb 并放置(整个文件夹)并将我的SQL 文件放在files/docker-entrypoint-initdb.d 中。
然后我使用helm package ./mariadb,然后是helm install ./mariadb -f ./mariadb/values-production.yaml。但主 pod 的状态为“CrashLoopBackOff”。
这里是主日志
==> ** Starting MariaDB setup **
==> Validating settings in MYSQL_*/MARIADB_* env vars..
==> Initializing mariadb database...
==> Persisted data detected. Restoring...
==> Loading user's custom files from /docker-entrypoint-initdb.d ...
==> Stopping mariadb...
我也尝试过这种方式,但是数据库不断崩溃
kubectl create configmap db-scheme --from-file=db.sql
helm install --name db-test stable/mariadb -f .values-production.yml --set rootUser.password=ROOT_PASSWORD --set replication.password=REPLICATION_PASSWORD --set initdbScriptsConfigMap=db-scheme
这里是日志:
编辑2
我创建了一个名为files/docker-entrypoint-initdb.d的文件夹
我的当前目录:
.
├── values-production.yml
│
├── files
│ └── docker-entrypoint-initdb.d
│ └── db.sql
并从当前目录运行此命令:
helm install --name test stable/mariadb -f .\values-production.yml --set rootUser.password=ROOT_PASSWORD --set replication.password=REPLICATION_PASSWORD
MariaDB 启动但没有我的 SQL 表。
【问题讨论】:
-
嗨@shellwhale(顺便说一句,好名字),请不要粘贴代码/日志的屏幕截图。您可能会在这里找到一些原因:meta.stackoverflow.com/a/285557/11102471
标签: kubernetes mariadb kubernetes-helm