我有一个由4台CoreOS机器组成的测试集群。我想要它们之间的共享存储,例如,将我的docker镜像放在那里,而不必将它们拉到每台机器上。
然而,CoreOS似乎并不支持NFS。在CoreOS上创建共享存储有哪些选项?
发布于 2016-04-08 07:04:23
CoreOS实际上做了support NFS--我们在AWS中为EFS共享存储配置了一个NFS挂载。
以下是在/mnt上挂载AWS EFS的云配置示例:
#cloud-config
write_files:
- path: /etc/conf.d/nfs
permissions: '0644'
content: |
OPTS_RPC_MOUNTD=""
coreos:
units:
- name: rpc-statd.service
command: start
enable: true
- name: mnt.mount
content: |
[Mount]
What=AZ_ZONE.fs-xxxxxxxx.efs.us-west-2.amazonaws.com:/
Where=/mnt
Type=nfs
- name: runcmd.service
command: start
content: |
[Unit]
Description=command
[Service]
Type=oneshot
ExecStart=/bin/sh -c "AZ_ZONE=$(curl -L http://169.254.169.254/latest/meta-data/placement/availability-zone); sed -i \"s/AZ_ZONE/$AZ_ZONE/\" /etc/systemd/system/mnt.mount; systemctl daemon-reload; systemctl restart mnt.mount"
update:
group: stable
reboot-strategy: off将xxxx替换为EFS共享的唯一字母数字ID。
在EFS出现之前,我们选择使用BitTorrent Sync。
你很好奇为什么你想分享你的图像层。这些层本身就是Docker的部署优势。如果您有足够多的共同点,那么在应用程序之间几乎不会发生重新拉动。假设两个不同的应用程序共享Ubuntu:latest base,这是最大的一层。当您在该主机上启动第二个应用程序时,您不必重新启动Ubuntu。您也不能使用任何旧的存储后端-- CoreOS使用的是OverlayFS,阅读起来可能会很有趣。
发布于 2015-03-31 01:28:32
我最近使用Deis解决了这个问题。在其他有用的功能中,它开箱即用地设置了Ceph存储集群和私有docker注册表。存储卷是容错的,并且跨越集群中的所有机器。
发布于 2015-07-31 21:24:47
我在CoreOS集群中使用EFS(Amazon Elastic File System)进行共享存储。
另一个选项是来自ClusterHQ的Flocker。但它在CoreOS中还不可用
https://stackoverflow.com/questions/24490862
复制相似问题