网络启动 Flatcar Linux¶

你可以使用 iPXE 启动进入 Flatcar Container Linux 来运行容器负载。你可以通过提供由 Butane 工具生成的 Ignition 配置文件来控制 Flatcar Linux 的行为,以配置网络、注册 SSH 密钥、定义运行的容器服务等。
启动脚本¶
创建一个 iPXE 脚本文件 flatcar.ipxe,内容如下:
#!ipxe
set mirror http://stable.release.flatcar-linux.net/amd64-usr/current
kernel ${mirror}/flatcar_production_pxe.vmlinuz flatcar.first_boot=1
initrd ${mirror}/flatcar_production_pxe_image.cpio.gz
initrd config.ign /usr/share/oem/config.ign mkdir=1
boot
如果你已经在本地镜像了 Flatcar 目录树,那么你应该把这一行
set mirror http://stable.release.flatcar-linux.net/amd64-usr/current
改为指向你的本地镜像的 URI。从本地镜像启动和安装会比使用公开的 stable.release.flatcar-linux.net 镜像快好几倍。
Flatcar 配置¶
创建一个 Butane 配置文件 config.yml,内容如下:
variant: flatcar
version: 1.0.0
systemd:
units:
- name: nginx-demo.service
enabled: true
contents: |
[Unit]
Description=Minimal NGINX demo
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/docker run --rm -p 80:80 nginxdemos/hello
Restart=always
[Install]
WantedBy=multi-user.target
这个示例配置文件只会运行一个简单的 Nginx 演示容器。
把你的 config.yml 文件编译为 Ignition 配置文件 config.ign:
butane --strict --output config.ign config.yml
把你的 config.ign 配置文件放在与 flatcar.ipxe 脚本相同的目录中。
启动¶
使用 iPXE 从你的 flatcar.ipxe 脚本的 URI 启动,例如 http://my.web.server/flatcar.ipxe。你应该会看到 iPXE 下载并启动进入 Flatcar Linux,然后它会下载并启动指定的容器:


你可以通过浏览其 IP 地址来验证 Nginx 演示容器正在 Flatcar Linux 内运行,你会看到一个基本的状态页面:

你现在可以尝试修改(并重新编译)config.yml 文件来运行你想要的任何容器工作负载。恭喜你成功网络启动进入 Flatcar Container Linux!
