31 Elemental #
31.1 一般 #
31.1.1 Rancherサービスの公開 #
RKE2またはK3sを使用する場合、サービス(このコンテキストではRancher)がデフォルトでは公開されていないため、管理クラスタから公開する必要があります。RKE2ではNGINX
Ingressコントローラが使用されており、k3sではTraefikが使用されています。現在のワークフローでは、サービスの通知(L2またはBGPアドバタイズメント経由)にはMetalLBを使用し、それぞれのIngressコントローラを使用してHelmChartConfig
経由でIngressを作成することが推奨されています。これは、新しいIngressオブジェクトを作成すると既存のセットアップが上書きされるためです。
Rancher Prime (Helm経由)をインストールし、必要な値を設定します。
hostname: rancher-192.168.64.101.sslip.io replicas: 1 bootstrapPassword: Admin global.cattle.psp.enabled: "false"
Rancherを公開するためのLoadBalancerサービスを作成します。
kubectl apply -f - <<EOF apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: rke2-ingress-nginx namespace: kube-system spec: valuesContent: |- controller: config: use-forwarded-headers: "true" enable-real-ip: "true" publishService: enabled: true service: enabled: true type: LoadBalancer externalTrafficPolicy: Local EOF
Helm値で以前に設定したIPアドレスを使用して、サービスのIPアドレスプールを作成します。
kubectl apply -f - <<EOF apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: ingress-ippool namespace: metallb-system spec: addresses: - 192.168.64.101/32 serviceAllocation: priority: 100 serviceSelectors: - matchExpressions: - {key: app.kubernetes.io/name, operator: In, values: [rke2-ingress-nginx]} EOF
IPアドレスプール用のL2アドバタイズメントを作成します。
kubectl apply -f - <<EOF apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: ingress-l2-adv namespace: metallb-system spec: ipAddressPools: - ingress-ippool EOF
Elementalが適切にインストールされていることを確認します。
管理ノードにElemental OperatorとElemental UIをインストールします。
ダウンストリームノードにElementalの設定を登録コードとともに追加します。これによりEdge Image Builderにマシンのリモート登録オプションを含めるように要求されます。
31.2 ハードウェア固有 #
31.2.1 Trusted Platform Module #
Trusted Platform Module (TPM)設定を適切に行う必要があります。適切に設定しないと、次のようなエラーが発生します。
Nov 25 18:17:06 eled elemental-register[4038]: Error: registering machine: cannot generate authentication token: opening tpm for getting attestation data: TPM device not available
このエラーは、以下のアプローチのいずれかで軽減できます。
仮想マシン設定でTPMを有効にする
MacOSでのUTMの例
MachineRegistration
リソースでTPMシードに負の値を使用してTPMをエミュレートする
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
name: ...
namespace: ...
spec:
...
elemental:
...
registration:
emulate-tpm: true
emulated-tpm-seed: -1
MachineRegistration
リソースでTPMを無効にする
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
name: ...
namespace: ...
spec:
...
elemental:
...
registration:
emulate-tpm: false