|Index|SUSE Edge 文档|提示和技巧|Elemental
适用范围 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"
    提示
    提示

    有关更多详细信息,请遵循 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 为该机器包含远程注册选项。

提示
提示

查看 第 1.5 节 “安装 Elemental” 和 第 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