我可以在主机CoreOS上安装什么才能在更新后继续使用?

时间:2014-04-26 13:21:17

标签: coreos

在它的alpha状态下,CoreOS会定期更新自己。如果我在CoreOS主机操作系统上安装应用程序和工具...更新/ etc /文件夹等。下次升级后我能得到什么?

最好问一下在CoreOS主机操作系统上安装应用程序和工具的惯用方法是什么,以便它们能够在更新后继续存在?

另一个例子:我可能想在主机上安装一些工具,比如'gear'或'docker-yen'。两者都以源代码形式提供,因此我需要编译它们。我想Dockerfile是编译和导出的理想方式。但是吗?

1 个答案:

答案 0 :(得分:3)

我首先回答最简单的部分:如果你想安装像' gear'或者#docker-yen'您可以通过为这些工具创建docker镜像并将它们部署为容器来实现。您可能希望创建描述如何启动和停止这些容器的systemd单元文件。此外,如果您希望工具始终可用,最佳选择是在每个coreos实例启动时加载的云配置元数据文件中定义这些systemd单元。但是,是的,你是正确的,如果Docker图像还不存在,那么创建一个Dockerfile可能就是起点。#39; gear'或者' docker-yen'。

至于更新/等。我相信这最近改变了。 / etc不再是只读的,因此您可以安全地修改此路径中的任何文件。由于coreos自动更新仅影响只读分区(据我所知),它们将在重新启动后持续存在。因此,例如,存储在/ var / lib / docker中的所有docker东西都将在自动更新后继续存在。我通常将所有内容部署为docker容器,以便在自动更新后继续使用。

就配置数据而言,确保其在更新中幸存的最佳方法是将群集设置为使用etcd键/值存储。默认情况下,这包含在示例云配置文件中。 Coreos还包括一个名为fleet的工具,它以这种方式使用etcd。您可以使用fleet来安排系统部署。这样,当机器停机进行自动更新时,您的服务就可用,因为另一台机器将按照etcd中的定义拾取调度作业。