9.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": { "version": "3.2.0" }, "passwd": { "users": [ { "name": "core", "sshAuthorizedKeys": [ "ssh-rsa AAAAB3NzaC1yc...." ] } ] }, "storage": { "files": [ { "overwrite": false, "path": "/etc/motd", "user": { "name": "root" }, "append": [ { "source": "data:text/plain;charset=utf-8;base64,VGhpcyBpcyB0aGUgYm9vdHN0cmFwIG5vZGU7IGl0IHdpbGwgYmUgZGVzdHJveWVkIHdoZW4gdGhlIG1hc3RlciBpcyBmdWxseSB1cC4KClRoZSBwcmltYXJ5IHNlcnZpY2VzIGFyZSByZWxlYXNlLWltYWdlLnNlcnZpY2UgZm9sbG93ZWQgYnkgYm9vdGt1YmUuc2VydmljZS4gVG8gd2F0Y2ggdGhlaXIgc3RhdHVzLCBydW4gZS5nLgoKICBqb3VybmFsY3RsIC1iIC1mIC11IHJlbGVhc2UtaW1hZ2Uuc2VydmljZSAtdSBib290a3ViZS5zZXJ2aWNlCg==" } ], "mode": 420 }, ...
要解码 bootstrap.ign
文件中列出的文件内容,请将代表该文件内容的 base64 编码的数据字符串通过管道传递给 base64 -d
命令。以下示例使用了上方输出中添加至 bootstrap 机器的 /etc/motd
文件的内容:
$ echo VGhpcyBpcyB0aGUgYm9vdHN0cmFwIG5vZGU7IGl0IHdpbGwgYmUgZGVzdHJveWVkIHdoZW4gdGhlIG1hc3RlciBpcyBmdWxseSB1cC4KClRoZSBwcmltYXJ5IHNlcnZpY2VzIGFyZSByZWxlYXNlLWltYWdlLnNlcnZpY2UgZm9sbG93ZWQgYnkgYm9vdGt1YmUuc2VydmljZS4gVG8gd2F0Y2ggdGhlaXIgc3RhdHVzLCBydW4gZS5nLgoKICBqb3VybmFsY3RsIC1iIC1mIC11IHJlbGVhc2UtaW1hZ2Uuc2VydmljZSAtdSBib290a3ViZS5zZXJ2aWNlCg== | base64 --decode
输出示例
This is the bootstrap node; it will be destroyed when the master is fully up. The primary services are release-image.service followed by bootkube.service. To watch their status, run e.g. journalctl -b -f -u release-image.service -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 还公开低级别原语,其他工具可以此为基础进行构建。