pod mysql mount azure files failed

hmtdttj4  于 12个月前  发布在  Mysql
关注(0)|答案(2)|浏览(113)

我想在集群中部署一个mysql,pod需要一个持久化的存储空间,下面是yaml & pictures:
pod:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - image: mysql:5.7
    name: mypod
    ports:
      - containerPort: 3306
        protocol: TCP
    env:
      - name: MYSQL_ROOT_PASSWORD
        value: THEROODPWD
    volumeMounts:
      - name: azure
        mountPath: /var/lib/mysql/
  volumes:
  - name: azure
    csi:
      driver: file.csi.azure.com
      volumeAttributes:
        secretName: williamstoragekey
        shareName: mysql
        mountOptions: "dir_mode=0777,file_mode=0777,cache=strict,actimeo=30"

秘诀:

kind: Secret
apiVersion: v1
metadata:
  name: williamstoragekey
  namespace: default
  uid: 0e164956-2e2c-47ef-adc3-ffed8089a4a7
  resourceVersion: '20976434'
  creationTimestamp: '2022-03-14T07:13:38Z'
  managedFields:
    - manager: kubectl-create
      operation: Update
      apiVersion: v1
      time: '2022-03-14T07:13:38Z'
      fieldsType: FieldsV1
      fieldsV1:
        f:data:
          .: {}
          f:azurestorageaccountkey: {}
          f:azurestorageaccountname: {}
        f:type: {}
data:
  azurestorageaccountkey: >-
    TWYrMFRaQ0ZLQVIxcEtVMFJGNUdCSEFGcXVnREdYZDZ5V2JMd2hFeGJFeTd0Z1pmNWNFQjM2d3FQM1EwY0VkeExRckhKWVZMZnJvYlN0QlIzcEJOeHc9PQ==
  azurestorageaccountname: a3ViZXRlc3RpbmcwMDk=
type: Opaque

Pod事件:

在文件共享中:

Pod logs:2022-03-15 01:07:34+00:00 [Note] [Entrypoint]:MySQL Server 5.7.37- 1debian 10的入口点脚本已启动。2022-03-15 01:07:34+00:00 [Note] [Entrypoint]:切换到专用用户'mysql' 2022-03-15 01:07:34+00:00 [Note] [Entrypoint]:MySQL Server 5.7.37- 1debian 10的入口点脚本已启动。2022-03-15 01:07:35+00:00 [Note] [Entrypoint]:正在初始化数据库文件2022-03- 15 T01:07:35.308618Z 0 [警告]不推荐使用具有隐式DEFAULT值的TIMESTAMP。请使用--explicit_defaults_for_timestamp服务器选项(有关详细信息,请参阅文档)。2022-03- 15 T01:07:35.321413Z 0 [ERROR] --initialize指定,但数据目录中有文件。正在中止。2022-03- 15 T01:07:35.321452Z 0 [ERROR]正在中止
很明显,mysql文件共享中的文件是mysql创建的,文件共享是新创建的,是空的。但吊舱似乎崩溃了很多次,以启动和终止。

osh3o9ms

osh3o9ms1#

https://learn.microsoft.com/en-us/answers/questions/770819/pod-mount-azure-files-failed.html
在这里发布Microsoft Q&A线程(已回答)讨论,这可以使阅读此线程的其他社区受益。

ldxq2e6h

ldxq2e6h2#

我在AKS上的Mysql:5.7也有类似的错误。我创建了azurefile卷并将其添加到pod。我的默认azurefile类创建了一个dir_mode=0777 file_mode=0777 uid=0 gid=0的目录,所以我得到了所有用户的root所有者和rwx目录。解决方案是创建另一个存储类,它将以mysql user作为所有者和750个chmod选项创建dir。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: name-of-class
provisioner: file.csi.azure.com
parameters:
  skuName: Standard_LRS
mountOptions:
  - dir_mode=0750
  - file_mode=0750
  - uid=999
  - gid=999
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true

相关问题