从掌舵图中访问/docker-entrypoint-initdb.d

时间:2019-04-17 16:18:33

标签: kubernetes mariadb kubernetes-helm

我正在尝试使用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

以下是日志:

image


编辑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表。

2 个答案:

答案 0 :(得分:0)

该图表有点尴尬,但让我解释一下,他们将创建this configmap来读取该文件夹的信息(相对于values.yaml路径)。

幸运的话,您还有两种选择:

  • 将要内联的脚本传递到values.yaml(Line 122
  • 使用脚本在旁边创建一个configmap,并在values.yaml(Line 129)上引用该名称

答案 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