|Index|SUSE Edge Documentação|Dicas e truques|Elemental
Aplica-se a SUSE Edge 3.7

29 Elemental

29.1 Comum

29.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"
    Dica
    Dica

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

  2. Crie um serviço LoadBalancer para expor o Rancher por meio de uma instância de Ingress.

    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
          spec:
            type: LoadBalancer
            externalTrafficPolicy: Local
            allocateLoadBalancerNodePorts: false
    EOF
  3. Crie um pool de endereços IP para o serviço do tipo LoadBalancer do provedor de Ingress usando o endereço IP (Virtual) 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 esse 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.

Dica
Dica

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

29.2 Específico de Hardware

29.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