6.2. 查看 Ignition 配置文件
要查看用于部署 bootstrap 机器的 Ignition 配置文件,请运行以下命令:
$ openshift-install create ignition-configs --dir $HOME/testconfig
回答几个问题后,您所在的目录中将出现 bootstrap.ign
、master.ign
和 worker.ign
文件。
要查看 bootstrap.ign
文件的内容,请通过 jq
过滤器对其进行管道传递。以下是该文件的片段:
$ cat $HOME/testconfig/bootstrap.ign | jq \\{ "ignition": \\{ "config": \\{}, "storage": \\{ "files": [ \\{ "filesystem": "root", "path": "/etc/motd", "user": \\{ "name": "root" }, "append": true, "contents": \\{ "source": "data:text/plain;charset=utf-8;base64,VGhpcyBpcyB0aGUgYm9vdHN0cmFwIG5vZGU7IGl0IHdpbGwgYmUgZGVzdHJveWVkIHdoZW4gdGhlIG1hc3RlciBpcyBmdWxseSB1cC4KClRoZSBwcmltYXJ5IHNlcnZpY2UgaXMgImJvb3RrdWJlLnNlcnZpY2UiLiBUbyB3YXRjaCBpdHMgc3RhdHVzLCBydW4gZS5nLgoKICBqb3VybmFsY3RsIC1iIC1mIC11IGJvb3RrdWJlLnNlcnZpY2UK",
要解码 bootstrap.ign
文件中列出的文件内容,请将代表该文件内容的 base64 编码的数据字符串通过管道传递给 base64 -d
命令。以下示例使用了上方输出中添加至 bootstrap 机器的 /etc/motd
文件的内容:
$ echo VGhpcyBpcyB0aGUgYm9vdHN0cmFwIG5vZGU7IGl0IHdpbGwgYmUgZGVzdHJveWVkIHdoZW4gdGhlIG1hc3RlciBpcyBmdWxseSB1cC4KClRoZSBwcmltYXJ5IHNlcnZpY2UgaXMgImJvb3RrdWJlLnNlcnZpY2UiLiBUbyB3YXRjaCBpdHMgc3RhdHVzLCBydW4gZS5nLgoKICBqb3VybmFsY3RsIC1iIC1mIC11IGJvb3RrdWJlLnNlcnZpY2UK | base64 --decode
输出示例
This is the bootstrap machine; it will be destroyed when the master is fully up. The primary service is "bootkube.service". To watch its status, run, e.g.: journalctl -b -f -u bootkube.service
对 master.ign
和 worker.ign
文件重复这些命令,查看每种机器类型的 Ignition 配置文件的来源。 对于 worker.ign
,您应该会看到类似于下面这一行,它确认了如何从 bootstrap 获取 Ignition 配置:
"source": "https://api.myign.develcluster.example.com:22623/config/worker",
您可以从 bootstrap.ign
文件中了解到以下内容:
- 格式:文件的格式在 Ignition 配置规格中定义。MCO 稍后使用相同格式的文件,将更改合并到机器的配置中。
-
内容:由于 bootstrap 机器为其他机器提供 Ignition 配置,因此 master 机器和 worker 机器的 Ignition 配置信息都与 bootstrap 机器的配置一起存储在
bootstrap.ign
中。 - 大小:文件长度超过 1300 行,包含指向各种资源的路径。
- 要复制到机器的每个文件的内容实际上编码为数据 URL,这往往会使内容读起来有些混乱。(使用前面演示的 jq 和 base64 命令可使内容更易读。)
- 配置:Ignition 配置文件的不同部分通常涵盖刚放入机器文件系统中的文件,而不是用于修改现有文件的命令。例如,不添加与配置该服务的 NFS 相关的一节,是仅添加一个 NFS 配置文件,然后在系统启动时由 init 进程启动该文件。
- 用户:创建一个名为 core 的用户,并将您的 ssh 密钥分配给该用户。这样,您可以使用该用户名和凭证来登录集群。
-
存储:存储部分标识添加到每台机器的文件。一些值得注意的文件包括
/root/.docker/config.json
(提供集群从容器镜像 registry 表拉取时所需的凭证),以及/opt/openshift/manifests
中用于配置集群的一系列清单文件: - systemd:systemd 部分包含用于创建 systemd 单元文件的内容。这些文件用于在启动时启动服务,还用于在运行中的系统上管理这些服务。
- 原语:Ignition 还公开低级别原语,其他工具可以此为基础进行构建。