documentation.suse.com / SUSE Edge 文档 / 提示和技巧 / Elemental

31 Elemental

31.1 通用

31.1.1 公开 Rancher 服务

使用 RKE2 或 K3s 时,我们需要通过管理群集公开服务(此处指 Rancher),因为它们默认不会公开。RKE2 中通过 NGINX 入口控制器来实现此目的,K3s 使用的则是 Traefik。当前的工作流程建议使用 MetalLB 来公布服务(通过 L2 或 BGP 通告),并使用相应的入口控制器通过 HelmChartConfig 创建入口,因为创建新的入口对象时会覆盖现有的设置。

  1. 安装 Rancher Prime(通过 Helm)并配置必要的值

    hostname: rancher-192.168.64.101.sslip.io
    replicas: 1
    bootstrapPassword: Admin
    global.cattle.psp.enabled: "false"
    提示
    提示

    有关详细信息,请参见 Rancher 安装文档。

  2. 创建 LoadBalancer 服务以公开 Rancher

    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 可信平台模块

必须妥善处理可信平台模块 (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