在被克隆的机器上编辑 /etc/netplan/xx-installer-config.yaml
文件。
123456 | network: ethernets: ens33: dhcp4: true dhcp-identifier: mac # 加上这一行。 version: 2 |
---|
这样每次从这台机器进行的克隆都会有唯一的 ip 地址。
systemd-networkd
dhclient
这就是他们默认策略不同的原因, systemd-networkd
默认使用 /etc/machine-id
来识别,当虚拟机克隆的时候,他们都有一样的 /etc/machine-id
和 DHCP server
,因此返回的都是同一个 ip 了。
1234 | root@k8s-arm64-f-k8s-master1:~# cat /etc/machine-idd79a8bd69d39428eaea36e7ddebee560root@k8s-arm64-f-k8s-worker1:~# cat /etc/machine-idd79a8bd69d39428eaea36e7ddebee560 |
---|
实测确实 machine-id
克隆后一样,但是 production-id
是不一样,因此不影响 k8s 部署:
1234 | root@wz-k8s-arm64-f-k8s-master1:~# cat /sys/class/dmi/id/product_uuid7ad08708-3c74-456e-ad49-007f0b3027d1root@wz-k8s-arm64-f-k8s-worker1:~# cat /sys/class/dmi/id/product_uuid8ac730d3-3326-4c59-be99-e57ec56af976 |
---|
Centos
所使用的 dhclient
组件,采用默认策略就是使用链路层地址,虽然虚拟机进行了文件克隆,但是他们的链路层地址是由虚拟机进行分配的所以并不一样。
本节内容由 chatgpt 生成,问题为: linux 中的 /etc/machine-id /sys/class/dmi/id/product_uuid 这两个值分别是什么意思,有什么意义,在什么项目中被用到过,还有没有其他类似的标记机器 id 的方法
在 Linux 系统中,/etc/machine-id
和 /sys/class/dmi/id/product_uuid
都是用于标识机器的唯一标识符,它们在不同的应用和场景中有不同的用途。
/etc/machine-id
含义与用途:
/etc/machine-id
文件包含一个唯一的机器 ID,这个 ID 是在系统安装时生成的,并且在整个系统的生命周期内保持不变。使用场景:
生成方法:
systemd
的 systemd-machine-id-setup
工具生成。/sys/class/dmi/id/product_uuid
含义与用途:
/sys/class/dmi/id/product_uuid
文件包含的是来自于 DMI(桌面管理接口)信息的产品 UUID,这是由硬件制造商在生产时写入到系统固件(BIOS/UEFI)中的唯一标识符。dmidecode -s system-uuid
获取到使用场景:
生成方法:
除了上述两个标识符,还有其他一些用于标识机器的方法:
/sys/class/dmi/id/product_serial
。lsblk
或 hdparm
获取硬盘的唯一序列号。/sys/class/dmi/id/bios_version
。这些标识符在不同的应用场景中有不同的作用,可以根据具体需求选择合适的标识方法来实现系统和硬件的唯一标识和管理。