Azure:无法对MariaDB容器示例使用volumeMount

3bygqnnd  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(146)

我正在尝试将我的MariaDB存储在Azure存储帐户中
在我的YAML中,我用以下代码定义了MariaDB图像:

- name: mariadb
  properties:
    image: mariadb:latest
    environmentVariables:
      - name: "MYSQL_INITDB_SKIP_TZINFO"
        value: "1"
      - name: "MYSQL_DATABASE"
        value: "metrics"
      - name: "MYSQL_USER"
        value: "user"
      - name: "MYSQL_PASSWORD"
        value: "password"
      - name: "MYSQL_ROOT_PASSWORD"
        value: "root_password"
    ports:
    - port: 3306
      protocol: TCP
    resources:
      requests:
        cpu: 1.0
        memoryInGB: 1.5
    volumeMounts:
    - mountPath: /var/lib/mysql
      name: filesharevolume

我的卷定义如下所示:

volumes:
- name: filesharevolume
  azureFile:
    sharename: <share-name>
    storageAccountName: <name>
    storageAccountKey: <key>

然而,当这个映像启动时,它会终止,并显示一个错误,解释ibdata1文件大小与配置文件中的大小不匹配。
如果删除volumeMount,数据库映像将正常工作。
我是不是漏掉了什么?

lzfw57am

lzfw57am1#

对于此问题,原因已在Note中显示:
将Azure Files共享装载到容器示例类似于Docker绑定装载。请注意,如果将共享装载到存在文件或目录的容器目录中,这些文件或目录将被装载遮盖,并且在容器运行时无法访问。
文件共享挂载到现有目录上,然后覆盖该目录。MariaDB将根据要求重建ibdata1文件,但它是空的,与之前的不匹配。
对于Azure文件共享的使用,我建议您只将文件共享挂载到之前不存在的目录以持久化数据。或者该目录中的文件不影响应用程序的正常运行。

相关问题