documentation.suse.com / Documentação do SUSE Edge / Dicas e truques / Elemental

31 Elemental

31.1 Comuns

31.1.1 Expor o serviço do Rancher

Ao usar o RKE2 ou K3s, precisamos expor os serviços (neste contexto, do Rancher) do cluster de gerenciamento já que eles não são expostos por padrão. No RKE2, há um controlador de entrada NGINX, enquanto o k3s usa o Traefik. O fluxo de trabalho atual sugere o uso do MetalLB para anunciar um serviço (anúncio por L2 ou BGP) e do respectivo controlador de entrada para criar uma entrada usando HelmChartConfig, já que a criação de um novo objeto de entrada substitui a configuração existente.

  1. Instalar o Rancher Prime (pelo Helm) e configurar os valores necessários

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

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

  2. Criar um serviço LoadBalancer para expor o Rancher

    kubectl apply -f - <<EOF
    apiVersion: helm.cattle.io/v1
    kind: HelmChartConfig
    metadata:
      name: rke2-ingress-nginx
      namespace: kube-system
    spec:
      valuesContent: |-
        controller:
          config:
            use-forwarded-headers: "true"
            enable-real-ip: "true"
          publishService:
            enabled: true
          service:
            enabled: true
            type: LoadBalancer
            externalTrafficPolicy: Local
    EOF
  3. Criar um pool de endereços IP para o serviço usando o endereço IP que já configuramos 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-ingress-nginx]}
    EOF
  4. Criar um anúncio por 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. Garantir que o Elemental seja devidamente instalado

    1. Instale o operador Elemental e a respectiva IU nos nós de gerenciamento.

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

Dica
Dica

Consulte a Seção 2.5, “Instalar o Elemental” e a Seção 2.6, “Configurar o Elemental” para obter informações e exemplos adicionais.

31.2 Específico do hardware

31.2.1 Trusted Platform Module

É necessário gerenciar de maneira apropriada a configuração do Trusted Platform Module (TPM). Se isso não for feito, haverá erros semelhantes a estes:

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

Para mitigá-los, siga uma das abordagens abaixo:

  • Habilitar o TPM nas configurações da máquina virtual

Exemplo com UTM no MacOS

TPM
  • Emular 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
  • Desabilitar o TPM no recurso MachineRegistration

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