|Index|SUSE Edge Documentación|Consejos y trucos|Elemental
Applies to SUSE Edge 3.6

28 Elemental

28.1 Común

28.1.1 Exponer el servicio de Rancher

Al utilizar RKE2 o K3s, necesitamos exponer los servicios (Rancher en este contexto) desde el clúster de gestión, ya que no se exponen de forma predeterminada. Tanto en RKE2 como en k3s existe un controlador Traefik Ingress. El flujo de trabajo actual sugiere utilizar MetalLB para anunciar un servicio (mediante L2 o BGP Advertisement) y el Ingress Controller respectivo para crear un Ingress mediante HelmChartConfig, ya que crear un nuevo objeto Ingress sobrescribiría la configuración existente.

  1. Instalar Rancher Prime (mediante Helm) y configurar los valores necesarios

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

    Siga la documentación de instalación de Rancher para obtener más detalles.

  2. Crear un servicio LoadBalancer para exponer 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. Crear un grupo de direcciones IP para el servicio utilizando la dirección IP que configuramos anteriormente en los valores de Helm

    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. Crear un anuncio L2 para el grupo de direcciones IP

    kubectl apply -f - <<EOF
    apiVersion: metallb.io/v1beta1
    kind: L2Advertisement
    metadata:
      name: ingress-l2-adv
      namespace: metallb-system
    spec:
      ipAddressPools:
      - ingress-ippool
    EOF
  5. Asegurarse de que Elemental esté instalado correctamente

    1. Instalar el operador de Elemental y la interfaz de usuario de Elemental en los nodos de gestión

    2. Añadir la configuración de Elemental en el nodo de sentido descendente junto con un código de registro, ya que eso hará que Edge Image Builder incluya la opción de registro remoto para la máquina.

Tip
Tip

Consulte Section 1.5, “Instalar Elemental” y Section 1.6, “Configurad Elemental” para obtener información y ejemplos adicionales.

28.2 Específico del hardware

28.2.1 Módulo de plataforma de confianza (TPM)

Es necesario gestionar correctamente la configuración del Módulo de plataforma de confianza (TPM). Si no se hace, se producirán errores similares a los siguientes:

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

Esto puede mitigarse mediante uno de los siguientes enfoques:

  • Habilitar TPM en la configuración de la máquina virtual

Ejemplo con UTM en MacOS

TPM
  • Emular TPM utilizando un valor negativo para la semilla TPM en el recurso MachineRegistration

apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
  name: ...
  namespace: ...
spec:
    ...
    elemental:
      ...
      registration:
        emulate-tpm: true
        emulated-tpm-seed: -1
  • Deshabilitar TPM en el recurso MachineRegistration

apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
  name: ...
  namespace: ...
spec:
    ...
    elemental:
      ...
      registration:
        emulate-tpm: false