11

我目前正在处理 CoreOS,到目前为止,我想我已经掌握了整体的想法和概念。我还没有得到的一件事是执行cloud-init.

我知道这cloud-init是一个为 CoreOS 进行一些配置的过程。我还不明白的是……</p>

  • CoreOS 什么时候运行cloud-init?在第一次启动?每次开机?……?
  • 怎么cloud-init知道在哪里可以找到它的配置数据?我已经看到有config-drive并且完全有道理,但这是唯一的方法吗?文件的作用究竟是什么user-data?……?
4

1 回答 1

15

CoreOS 在启动过程中运行了几次 cloudinit。现在,每次启动时都会发生这种情况,但该功能将来可能会发生变化。

第一遍是 OEM cloud-init,它被烘焙到映像中以设置该提供商所需的网络和其他功能。这适用于 EC2、Rackspace、Google Compute Engine 等,因为它们都有不同的要求。你可以在 Github 上看到这些文件。

第二个传递是用户数据传递,每个提供者的处理方式不同。例如,EC2 允许用户在他们的 UI 中输入自由格式的文本,这些文本存储在他们的元数据服务中。EC2 OEM 有一个单元读取此元数据并将其传递给第二个 cloud-init 运行。在 Rackspace/Openstack 上,config-drive 用于挂载包含用户数据的只读文件系统。Rackspace 和 Openstack OEM 知道在该位置挂载和查找用户数据文件。

最新版本的 CoreOS 还具有一个标志,用于获取远程文件以进行评估以用于 PXE 引导。

CoreOS发行版文档也有更多细节。

于 2014-04-24T16:55:41.517 回答