我目前正在处理CoreOS,到目前为止,我认为我有了整体的想法和概念。我还没有得到的一件事是执行cloud-init
。
我知道cloud-init
是为CoreOS执行某些配置的过程。我还不明白的是......
cloud-init
?在第一次启动?每次开机? ...?cloud-init
如何知道在何处查找其配置数据?我已经看到有config-drive
并且完全有道理,但这是唯一的方法吗? user-data
文件的作用究竟是什么? ...?答案 0 :(得分:15)
CoreOS在启动过程中运行了几次cloudinit。现在这发生在每次启动时,但该功能可能在将来发生变化。
第一步是OEM cloud-init,它被烘焙到映像中以设置该提供商所需的网络和其他功能。这适用于EC2,Rackspace,Google Compute Engine等,因为它们都有不同的要求。您可以看到这些文件on Github。
第二遍是用户数据传递,每个提供者的处理方式不同。例如,EC2允许用户在其UI中输入自由格式文本,该文本存储在其元数据服务中。 EC2 OEM有一个单元,可以读取此元数据并将其传递给第二个cloud-init运行。在Rackspace / Openstack上,config-drive用于挂载包含用户数据的只读文件系统。 Rackspace和Openstack OEM知道在该位置安装和查找用户数据文件。
最新版本的CoreOS还有一个标志,用于获取要评估的远程文件以用于PXE引导。
CoreOS distribution docs还有一些细节。