32 Metal3 #
32.1 BareMetalHostの選択とクラスタへの関連付け #
Metalˆ3ˆクラスタオブジェクトとそれに対応する関連オブジェクトが作成されると、どの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)にあります。
これらのファイルは一般的に無害ですが、過剰なスペースを消費する場合は、新しいOSのインストールやブートマネージャの更新を妨げる場合があるため、削除する必要があります。
削除するにはESPを明示的にマウントする必要がある場合があり、通常Linuxシステムで/boot/efi/EFIとしてマウントされます。