我尝试通过Universe包在AWS中的DC / OS堆栈上部署应用程序。据我了解,mesos fetcher将尝试检索这些资源并按照marathon.json中的定义对其进行容器化。这些资源是私有的,需要保密。它们不是静态的,因此使用预先签名的URL很可能是不可能的。
我已经定义了包中的资源。当代理尝试解析资源时,他们会收到403。
将uri定义为http://s3domain/bucket/key或https://返回403。 将uri定义为s3:// mesos fetcher调用hadoop(我们不需要)
尝试从代理节点使用AWS CLI获取资源。 Mesos fetcher也将成功获取任何公共资源。
我已经看到一些使用nginx代理s3并在请求中嵌入aws凭据的解决方案。我所看到的唯一其他解决方案是将所有内容预先包含在内并将s3设置为Docker注册表。这些是解决问题的唯一方法吗?
答案 0 :(得分:0)
回答太迟,但将来可能对其他人有所帮助。
您可以按照以下步骤从mesos / dcos群集访问私有s3存储桶。
https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies-vpc-endpoint.html