我想在集群中部署一个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创建的,文件共享是新创建的,是空的。但吊舱似乎崩溃了很多次,以启动和终止。
2条答案
按热度按时间osh3o9ms1#
https://learn.microsoft.com/en-us/answers/questions/770819/pod-mount-azure-files-failed.html
在这里发布Microsoft Q&A线程(已回答)讨论,这可以使阅读此线程的其他社区受益。
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。