我想创建一个具有负载均衡器和cp节点的Jelastic环境。我想使用alignof(U)
api方法添加cp节点,因为它需要特定的数据才能启动。我的清单看起来像这样:
allocator<T>::allocate
出于某种原因,我希望向我的高山图像提供我存储在文件夹addNodes
中的数据。当然,在这种情况下,这是完全不相关的。上面的示例足够简单,可以重现。在我的实际用例中,如果没有一些特定于应用程序的数据,这些数据必须用用户输入时完成的清单设置完成,我要挂载的docker映像将无法运行。这就是为什么必须在添加Docker节点后使数据可用。
我的问题是上面的简单清单不起作用。实际上,在我的Docker节点上,我无权访问jpsVersion: 1.3
jpsType: install
application:
id: test-app
name: Test App
version: 0.0
env:
topology:
nodes:
- nodeGroup: bl
nodeType: nginx-dockerized
tag: 1.16.1
displayName: Node balancing
count: 1
fixedCloudlets: 1
cloudlets: 4
onInstall:
- addFile
- setup
actions:
addFile:
- cmd [bl]:
- mkdir /data
- echo "Hello world" > /data/test.txt
user: root
setup:
- addNodes:
- nodeGroup: cp
nodeType: docker
displayName: Test Mount
count: 1
fixedCloudlets: 1
cloudlets: 4
dockerName: alpine
volumeMounts:
/kickstart:
readOnly: true
sourcePath: /data
sourceNodeGroup: bl
dockerVolumes:
- /kickstart
文件夹。我在做什么错了?
答案 0 :(得分:1)
volumeMounts
选项不可用于操作addNodes
这是一个如何实现的示例:
type: install
name: Test App
nodes:
- nodeGroup: bl
nodeType: nginx
tag: 1.16.1
displayName: Node balancing
cloudlets: 4
- nodeGroup: cp
displayName: Test Mount
cloudlets: 4
image: alpine
startServiceOnCreation: false
volumes:
- /kickstart
volumeMounts:
/kickstart:
sourcePath: /data
sourceNodeGroup: bl
readOnly: true
onInstall:
- cmd [bl]: |-
echo "Hello world" > /data/test.txt
user: root
- env.control.ExecDockerRunCmd [${nodes.cp.join(id,)}]
您还可以使用volumeMounts
中不存在的目录
它将自行创建所有内容