我正在尝试使用https://github.com/helm/charts/tree/master/stable/mariadb#initialize-a-fresh-instance上的官方头盔图表来初始化Mariadb的新实例(将我的.sql文件放入/docker-entrypoint-initdb.d中)。
但是我发现说明还不清楚。 “为了执行脚本,它们必须位于图表文件夹文件/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
。但是主窗格的状态为“ 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表。
答案 0 :(得分:0)
该图表有点尴尬,但让我解释一下,他们将创建this configmap来读取该文件夹的信息(相对于values.yaml
路径)。
幸运的话,您还有两种选择:
答案 1 :(得分:0)
我的问题比看起来更复杂: https://github.com/bitnami/bitnami-docker-mariadb/issues/182
除此以外,创建配置映射确实可以工作:
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