我正在尝试通过为docker容器分配外部(EBS)卷来在DC / OS中设置有状态应用程序。我运行了文档中提供的演示应用程序,它在AWS中创建了一个100GB的EBS卷。有没有办法在marathon.json
文件中指定卷的大小?我可以为多个应用使用相同的EBS卷吗?这是我测试过的演示应用程序。
{
"id": "/test-docker",
"instances": 1,
"cpus": 0.1,
"mem": 32,
"cmd": "date >> /data/test-rexray-volume/test.txt; cat /data/test-rexray-volume/test.txt",
"container": {
"type": "DOCKER",
"docker": {
"image": "alpine:3.1",
"network": "HOST",
"forcePullImage": true
},
"volumes": [
{
"containerPath": "/data/test-rexray-volume",
"external": {
"name": "my-test-vol",
"provider": "dvdi",
"options": { "dvdi/driver": "rexray" }
},
"mode": "RW"
}
]
},
"upgradeStrategy": {
"minimumHealthCapacity": 0,
"maximumOverCapacity": 0
}
}
答案 0 :(得分:0)
您无法将一个EBS卷附加到多个EC2实例。我的错!我放弃了rexray持久存储选项,转而支持EFS。
我必须创建一个EFS共享并将其附加到群集的VPC。然后我不得不ssh进入每个从节点,将它像NFS共享一样挂载在所有节点上的同一个文件夹下,最后将它从marathon.json挂载到容器中。