32 Metal3 #
32.1 BareMetalHost 选择和群集关联 #
当 Metalˆ3ˆ 群集对象及其对应的关联对象创建完成后,系统将执行 BareMetalHost
选择流程,确定哪些 BareMetalHost 将加入该群集。该流程通过标准的 Kubernetes
标签和选择器,将 BareMetalHost 与特定的
Metal3MachineTemplate 进行关联。
例如,可为每个 BareMetalHost
添加标签,用于标识其属性和要加入的群集(如群集角色、群集名称、部署位置等):
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: mynode1
labels:
cluster-role: control-plane
cluster: foobar
location: madrid
datacenter: xyz
<snip>
---
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: mynode2
labels:
cluster-role: worker
cluster: foobar
location: madrid
datacenter: xyz
<snip>
---
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: mynode3
labels:
cluster-role: worker
cluster: foobar2
location: madrid
datacenter: xyz
<snip>
...随后,Metal3MachineTemplate 对象将通过 spec.hostSelector
字段匹配所需的 BareMetalHost。
该字段支持 matchLabels(精确的键值匹配)和
matchExpressions(复杂规则匹配)两种方式:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: Metal3MachineTemplate
metadata:
name: foobar-cluster-controlplane
namespace: mynamespace
spec:
template:
spec:
hostSelector:
matchLabels:
cluster-role: control-plane
cluster: foobar
<snip>
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: Metal3MachineTemplate
metadata:
name: foobar-cluster-worker
namespace: mynamespace
spec:
template:
spec:
hostSelector:
matchExpressions:
- { key: cluster-role, operator: In, values: [worker] }
- { key: cluster, operator: In, values: [foobar] }
<snip>注意
同时,也可利用 Kubernetes 名称空间,对不同对象进行更合理的管理。
32.2 清理旧的 EFI 引导项 #
有时,UEFI 引导管理器中会保留多个旧版操作系统的引导项,而这些引导项可能已不再需要(尤其是对于多次重新置备的主机)。您可通过以下任一方法清理这些旧引导项:
直接在 BIOS/EFI 设置界面中删除(具体操作流程因硬件型号而异)。
按如下方式运行 UEFI
bcfg外壳命令:# List the entries bcfg boot dump -b # Delete entry number X bcfg boot rm X # X is the number associated the entry to remove. For example, if the entry is "Boot0002 foobar", then X is 2.
在 Linux 系统中按如下方式运行
efibootmgr命令:# List the entries efibootmgr -v # Delete entry number X efibootmgr -b X -B
该流程可能会在 EFI 系统分区 (ESP) 中留下孤立文件,这些文件通常位于以供应商命名的子目录下(如
EFI/opensuse 或
EFI/Microsoft)。此类文件一般无不良影响,但如果占用空间过大,可能会阻碍新操作系统的安装或引导管理器的更新,此时就需要将其删除。去除操作可能需要明确挂载
ESP,该分区在 Linux 系统中通常挂载于 /boot/efi/EFI 目录。