具有持久外部存储的DC / OS状态应用程序

时间:2017-08-22 10:29:08

标签: amazon-ec2 mesosphere dcos

我正在尝试通过为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
  }
}

1 个答案:

答案 0 :(得分:0)

您无法将一个EBS卷附加到多个EC2实例。我的错!我放弃了rexray持久存储选项,转而支持EFS。

我必须创建一个EFS共享并将其附加到群集的VPC。然后我不得不ssh进入每个从节点,将它像NFS共享一样挂载在所有节点上的同一个文件夹下,最后将它从marathon.json挂载到容器中。