|Index|SUSE Edge Documentação|Dicas e truques|Elemental
Applies to SUSE Edge 3.6

28 Elemental

28.1 Comum

28.1.1 Expor o serviço Rancher

Ao usar RKE2 ou K3s, precisamos expor serviços (Rancher neste contexto) do cluster de gerenciamento, pois eles não são expostos por padrão. Tanto no RKE2 quanto no K3s, existe um controlador Traefik Ingress. O fluxo de trabalho atual sugere o uso do MetalLB para anunciar um serviço (via L2 ou BGP Advertisement) e o respectivo Ingress Controller para criar um Ingress via HelmChartConfig, já que a criação de um novo objeto Ingress substituiria a configuração existente.

  1. Instale o Rancher Prime (via Helm) e configure os valores necessários

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

    Siga a documentação de instalação do Rancher para mais detalhes.

  2. Crie um serviço LoadBalancer para expor o 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. Crie um pool de endereços IP para o serviço usando o endereço IP que configuramos anteriormente nos valores do 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. Crie um anúncio L2 para o pool de endereços 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. Certifique-se de que o Elemental esteja instalado corretamente

    1. Instale o Operador Elemental e a UI do Elemental nos nós de gerenciamento

    2. Adicione a configuração do Elemental no nó downstream junto com um código de registro, pois isso solicitará que o Edge Image Builder inclua a opção de registro remoto para a máquina.

Tip
Tip

Verifique Section 1.5, “Instale o Elemental” e Section 1.6, “Configurar Elemental” para obter informações e exemplos adicionais.

28.2 Específico de Hardware

28.2.1 Módulo de Plataforma Confiável (TPM)

É necessário lidar adequadamente com a configuração do Módulo de Plataforma Confiável (TPM). Não fazer isso resultará em erros semelhantes aos seguintes:

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

Isso pode ser mitigado por uma das seguintes abordagens:

  • Habilite o TPM nas configurações da Máquina Virtual

Exemplo com UTM no MacOS

TPM
  • Emule o TPM usando um valor negativo para a semente do TPM no recurso MachineRegistration

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

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