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 对象会覆盖现有设置。
安装 Rancher Prime(通过 Helm)并配置必要的值
hostname: rancher-192.168.64.101.sslip.io replicas: 1 bootstrapPassword: Admin global.cattle.psp.enabled: "false"创建 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使用我们之前在 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为 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 为该机器包含远程注册选项。
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 的示例
通过在
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