documentation.suse.com / SUSE Edgeドキュメント / ヒントとコツ / Elemental

31 Elemental

31.1 一般

31.1.1 Rancherサービスの公開

RKE2またはK3sを使用する場合、サービス(このコンテキストではRancher)がデフォルトでは公開されていないため、管理クラスタから公開する必要があります。RKE2ではNGINX Ingressコントローラが使用されており、k3sではTraefikが使用されています。現在のワークフローでは、サービスの通知(L2またはBGPアドバタイズメント経由)にはMetalLBを使用し、それぞれのIngressコントローラを使用してHelmChartConfig経由でIngressを作成することが推奨されています。これは、新しいIngressオブジェクトを作成すると既存のセットアップが上書きされるためです。

  1. Rancher Prime (Helm経由)をインストールし、必要な値を設定します。

    hostname: rancher-192.168.64.101.sslip.io
    replicas: 1
    bootstrapPassword: Admin
    global.cattle.psp.enabled: "false"
    ヒント
    ヒント

    詳細については、Rancherのインストールのドキュメントに従ってください。

  2. 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
  3. 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
  4. 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
  5. Elementalが適切にインストールされていることを確認します。

    1. 管理ノードにElemental OperatorとElemental UIをインストールします。

    2. ダウンストリームノードにElementalの設定を登録コードとともに追加します。これによりEdge Image Builderにマシンのリモート登録オプションを含めるように要求されます。

ヒント
ヒント

追加情報と例については、2.5項 「Elementalのインストール」2.6項 「Elementalの設定」を確認してください。

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の例

TPM
  • 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
Documentation survey