我正在尝试使用azure容器实例设置mongo数据库实例,并将其安装在Azure文件共享上。
我们收到以下错误:
[initandlisten] WiredTiger error (1) [1579245437:724939][1:0x7f9419c67b00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1579245437:724939][1:0x7f9419c67b00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
W STORAGE [initandlisten] Failed to start up WiredTiger under any compatibility version.
F STORAGE [initandlisten] Reason: 1: Operation not permitted
F - [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 789
[initandlisten]
***aborting after fassert() failure
AZ命令我正在使用以下命令来创建存储帐户,文件共享和容器实例:
az storage account create -g $resourcegroup -n $storageaccount --sku Standard_LRS
az storage share create --name $mongofileshare --account-name $storageaccount
az container create --resource-group $resourcegroup --name $containername --image mongo:latest --dns-name-label $DNSName --ports 27017 --protocol TCP --environment-variables 'MONGO_INITDB_ROOT_USERNAME=admin' 'MONGO_INITDB_ROOT_PASSWORD=*******' --location westeurope --azure-file-volume-account-name $storageaccount --azure-file-volume-account-key '**********' --azure-file-volume-share-name 'mongofileshare' --azure-file-volume-mount-path '/data/db'
答案 0 :(得分:2)
引起错误的原因是,将Azure文件共享安装到容器实例将覆盖安装点中的所有文件。显示警告here:
将Azure文件共享安装到容器实例类似于 Docker绑定安装。请注意,如果您将共享装入容器中 文件或目录所在的目录,这些文件或 目录被挂载遮挡,并且在 容器运行。
因此,不建议将Azure文件共享安装到现有目录,该目录包含用于初始化Mongo DB的文件。推荐目录将类似于路径/var/logs/
。
答案 1 :(得分:0)
非常感谢上面的@Charles Xu和@Santhosh,您可以节省我的时间。在这里,我使用适用于AKS,mongoDB和Azure Fileshare的yaml总结了他们的解决方案:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-db
spec:
replicas: 1
selector:
matchLabels:
app: mongo-db
template:
metadata:
labels:
app: mongo-db
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: mongo-db
image: mongo:latest
command: ["mongod"] # Note here
args: ["--dbpath=/data/mongoaz"] # Note here
ports:
- containerPort: 27017
name: redis
resources:
requests:
cpu: 250m
limits:
cpu: 500m
volumeMounts:
- name: db-vol
mountPath: /data/mongoaz
volumes:
- name: db-vol
persistentVolumeClaim:
claimName: my-db-pvc
答案 2 :(得分:0)
更新:
如果您可以使用Helm,它将更加容易。在这里查看MonnDB的Bitnami图表:
https://github.com/bitnami/charts/tree/master/bitnami/mongodb
不会有这种头痛的问题