跳转至

网络启动 Flatcar Linux

Flatcar logo

你可以使用 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,然后它会下载并启动指定的容器:

Booting from flatcar.ipxe script

Flatcar Linux up and running

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

Flatcar Linux running Nginx demo container

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

Success