|Index|SUSE Edge 文档|提示和技巧|Elemental
Applies to SUSE Edge 3.6

28 Elemental

28.1 常用

28.1.1 暴露 Rancher 服务

使用 RKE2 或 K3s 时,我们需要从管理集群暴露服务(在此上下文中为 Rancher),因为它们默认不会被暴露。 在 RKE2 和 k3s 中都有一个 Traefik Ingress 控制器。 当前工作流程建议使用 MetalLB 来发布服务(通过 L2 或 BGP 广播),并使用相应的 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"
    Tip
    Tip

    有关更多详细信息,请遵循 Rancher 安装 文档。

  2. 创建 LoadBalancer 服务以暴露 Rancher

    kubectl apply -f - <<EOF
    apiVersion: helm.cattle.io/v1
    kind: HelmChartConfig
    metadata:
      name: rke2-traefik
      namespace: kube-system
    spec:
      valuesContent: |-
        ingressClass:
          isDefaultClass: true
        ports:
          web:
            hostPort: null    # disallow hostPort
            exposedPort: 80
          websecure:
            hostPort: null    # disallow hostPort
            exposedPort: 443
        service:
          enabled: true
          type: LoadBalancer
          spec:
            externalTrafficPolicy: Local
            allocateLoadBalancerNodePorts: false  # k8s GA from 1.24; supported by MetalLB
    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-traefik]}
    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 为该机器包含远程注册选项。

Tip
Tip

查看 Section 1.5, “安装 Elemental”Section 1.6, “配置 Elemental” 以获取更多信息和示例。

28.2 硬件特定

28.2.1 可信平台模块 (TPM)

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