在VMware工作站中安装Flatcar Container Linux
本文介绍如何在VMware工作站中安装和运行Flatcar Container Linux的方法。
简介
Flatcar Linux是一种Linux操作系统,可用于对容器化工作负载进行优化,其大小比典型的Linux系统小。它提供了一个最小的操作系统映像以及运行容器所需的所有工具。通过一个不可变的文件系统运送操作系统,还包括自动系统更新。
Flatcar Container Linux提供的主要功能包括:
自动原子更新为您提供最新的安全更新和开源技术。
仅包含运行容器所需的工具的最小OS映像,没有包管理器。
操作系统是在一个不可变的文件系统上提供的,排除了一整套安全漏洞。
Flatcar Container Linux可以在多种平台上运行,如Azure、AWS、Vagrant、Vmware、Google Cloud、Digital Ocean等。在安装和配置过程中,您需要了解这两个概念:
Butane配置:这是一个人类可读的YAML文件,需要在使用前转换为Ignition V3配置。
Ignition配置:这是一个机器可读的JSON,用于配置Flatcar。可以使用云提供商的自定义数据或用户数据选项传递此配置。您还可以通过私有云虚拟机和裸机上的几个其他机制传递它。此配置可用于执行以下操作:
添加自定义用户和组。
创建和管理存储设备、文件系统和交换,并创建自定义文件。
自定义自动更新并定义重新启动窗口。
创建自定义网络(d)配置和systemd单元。
注:在本指南中,您需要在系统上安装好VMware Workstation。
在VMware工作站中安装和运行Flatcar Container Linux的方法
1.下载Flatcar Container Linux OVA
Flatcar Container Linux OVA文件可从Flatcar发布页面下载,地址在https://flatcar-linux.org/releases。为了更简单,您可以使用cURL提取OVA文件:
1].For Stable Channel
curl -LO https://stable.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vmware_ova.ova
2].For Beta Channel
curl -LO https://beta.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vmware_ova.ova
3].For Alpha Channel
curl -LO https://alpha.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vmware_ova.ova
2.为Flatcar Container Linux创建Ignition配置
现在,我们将创建JSON格式文件,其中包含安装所需的所有配置。我们将从创建Butane配置开始:
vim flatcar.bu
对于本指南,我们将进行简单的配置,包括为VM设置SSH密钥。您可以自行利用其他几种配置:
variant: flatcar
version: 1.0.0
passwd:
users:
- name: core
ssh_authorized_keys:
- replace-me-with-public-ssh-key
在上面的文件中,请记住用主机系统的实际ssh公钥替换上面的“replace-me-with-public-ssh-key”。要查看SSH密钥,请使用以下命令:
cat ~/.ssh/id_rsa.pub
完成所需更改后,使用Butane将YAML转换为Ignition文件。最简单的方法是使用Podman,可参考在Debian 11/Debian 10系统上安装和使用Podman 4一文来安装Podman,地址在https://www.hmxthome.com/linux/4975.html。
安装后,运行Butane:
podman run --interactive --rm quay.io/coreos/butane:release \
--pretty --strict < flatcar.bu > flatcar.ign
现在我们将生成一个名为flatcar.ign的Ignition文件(JSON):
$ cat flatcar.ign
{
"ignition": {
"version": "3.3.0"
},
"passwd": {
"users": [
{
"name": "core",
"sshAuthorizedKeys": [
"ssh-rsa AAAAB3NzaC1yc2EAAAAD*********47Xy7s= debian@computingforgeeks.com"
]
}
]
}
}
现在我们将Ignition文件转换为base64或gzip+base64。这可以通过以下命令完成:
1].For base64
CONFIG_ENCODING='base64'
CONFIG_ENCODED=$(cat flatcar.ign | base64 -w0 -)
2].For gzip+base64
CONFIG_ENCODING='gzip+base64'
CONFIG_ENCODED=$(cat flatcar.ign | gzip -9 | base64 -w0 -)
3.在VMware工作站上运行Flatcar Container Linux
已满足所有要求。我们将启动Flatcar Container Linux。从命令行,可以使用以下命令启动VM:
第一个导出变量:
VM_NAME='flatcar-VM'
FLATCAR_OVA='flatcar_production_vmware_ova.ova'
LIBRARY="$HOME/Virtual Machines.localized"
启动VM:
ovftool \
--powerOffTarget \
--name="${VM_NAME}" \
--allowExtraConfig \
--extraConfig:guestinfo.ignition.config.data.encoding="${CONFIG_ENCODING}" \
--extraConfig:guestinfo.ignition.config.data="${CONFIG_ENCODED}" \
--net:"VM Network"="Bridge" \
"${FLATCAR_OVA}" "${LIBRARY}"
请记住提供FLATCAR_OVA的确切路径。您还可以根据需要替换变量,如Network,以使用NAT替换值,如下所示:
--net:"VM Network"="NAT"
现在生成了新的VMware工作站文件,如下所示:
Opening OVA source: flatcar_production_vmware_ova.ova
The manifest validates
Opening VMX target: /home/debian/Virtual Machines.localized
Writing VMX file: /home/debian/Virtual Machines.localized
Transfer Completed
Completed successfully
现在,您将拥有一个名为flatcar-VM的VM。如果未显示VM,可以通过单击打开VM手动导入它:
然后选择创建的FLATCAR VMX文件Virtual Machines.vmx:
加载后,VM应该可用。您可以进行所需的配置,如网络适配器等:
4.安装后基本Flatcar Container Linux配置
登录后,可以使用systemd-networkd进行DHCP IP设置。创建以下文件:
sudo vim /etc/systemd/network/static.network
将以下行添加到文件中,并准确替换IP地址:
[Match]
Name=ens192
[Network]
DHCP=no
Address=192.168.205.18/24
Gateway=192.168.205.1
DNS=8.8.8.8
DNS=192.168.205.1
保存文件并重新启动服务:
sudo systemctl restart systemd-networkd
验证更改:
现在可以使用IP地址将SSH连接到VM中。该命令的语法如下:
ssh core@IP_Address
样本输出:
为了证明Flatcar Container Linux是否按预期工作,我们将尝试启动一个简单的HelloWorld docker容器:
sudo docker run hello-world
样本输出:
如上图所示,表示Flatcar Container Linux正在按预期工作。您现在可以继续并使用它来部署所需的工作负载。