|Index|SUSE Telco Cloud Documentação|Provisionamento de rede direcionado totalmente automatizado|Configuração de rede avançada
Aplica-se a SUSE Telco Cloud 3.6

53 Configuração de rede avançada

O fluxo de trabalho de provisionamento de rede direcionado permite configurações de rede específicas em clusters downstream, como IPs estáticos, vínculo, VLANs, IPv6, etc.

As seções a seguir descrevem as etapas adicionais necessárias para habilitar o provisionamento de clusters downstream usando configuração de rede avançada.

Requisitos

Configuração

Antes de prosseguir, consulte uma das seções a seguir para obter orientação sobre as etapas necessárias para registrar e provisionar o(s) host(s):

Qualquer configuração de rede avançada deve ser aplicada no momento da inscrição por meio da definição de host BareMetalHost e um Secret associado contendo um bloco nmstate formatado como networkData. O arquivo de exemplo a seguir define um secret contendo o networkData necessário que solicita um IP estático e VLAN para o host do cluster downstream:

apiVersion: v1
kind: Secret
metadata:
  name: controlplane-0-networkdata
type: Opaque
stringData:
  networkData: |
    interfaces:
    - name: ${CONTROLPLANE_INTERFACE}
      type: ethernet
      state: up
      mtu: 1500
      identifier: mac-address
      mac-address: "${CONTROLPLANE_MAC}"
      ipv4:
        address:
        - ip:  "${CONTROLPLANE_IP}"
          prefix-length: "${CONTROLPLANE_PREFIX}"
        enabled: true
        dhcp: false
    - name: floating
      type: vlan
      state: up
      vlan:
        base-iface: ${CONTROLPLANE_INTERFACE}
        id: ${VLAN_ID}
    dns-resolver:
      config:
        server:
        - "${DNS_SERVER}"
    routes:
      config:
      - destination: 0.0.0.0/0
        next-hop-address: "${CONTROLPLANE_GATEWAY}"
        next-hop-interface: ${CONTROLPLANE_INTERFACE}

Como você pode ver, o exemplo mostra a configuração para habilitar a interface com IPs estáticos, bem como a configuração para habilitar a VLAN usando a interface base, uma vez que as seguintes variáveis sejam substituídas pelos valores reais, de acordo com sua infraestrutura:

  • ${CONTROLPLANE_INTERFACE} — A interface do plano de controle a ser usada para o cluster downstream (por exemplo, eth0). Incluindo identifier: mac-address, a nomenclatura é inspecionada automaticamente pelo endereço MAC, portanto, qualquer nome de interface pode ser usado.

  • ${CONTROLPLANE_IP} — O endereço IP a ser usado como um endpoint para o cluster downstream (deve corresponder ao endpoint do kubeapi-server).

  • ${CONTROLPLANE_PREFIX} — O CIDR a ser usado para o cluster downstream (por exemplo, 24 se você quiser /24 ou 255.255.255.0).

  • ${CONTROLPLANE_GATEWAY} — O gateway a ser usado para o cluster downstream (por exemplo, 192.168.100.1).

  • ${CONTROLPLANE_MAC} — O endereço MAC a ser usado para a interface do plano de controle (por exemplo, 00:0c:29:3e:3e:3e).

  • ${DNS_SERVER} — O DNS a ser usado para o cluster downstream (por exemplo, 192.168.100.2).

  • ${VLAN_ID} — O ID da VLAN a ser usado para o cluster downstream (por exemplo, 100).

Qualquer outra definição compatível com nmstate pode ser usada para configurar a rede para o cluster downstream para se adaptar aos requisitos específicos. Por exemplo, é possível especificar uma configuração de pilha dupla estática:

apiVersion: v1
kind: Secret
metadata:
  name: controlplane-0-networkdata
type: Opaque
stringData:
  networkData: |
    interfaces:
    - name: ${CONTROLPLANE_INTERFACE}
      type: ethernet
      state: up
      mac-address: ${CONTROLPLANE_MAC}
      ipv4:
        enabled: true
        dhcp: false
        address:
        - ip: ${CONTROLPLANE_IP_V4}
          prefix-length: ${CONTROLPLANE_PREFIX_V4}
      ipv6:
        enabled: true
        dhcp: false
        autoconf: false
        address:
        - ip: ${CONTROLPLANE_IP_V6}
          prefix-length: ${CONTROLPLANE_PREFIX_V6}
    routes:
      config:
      - destination: 0.0.0.0/0
        next-hop-address: ${CONTROLPLANE_GATEWAY_V4}
        next-hop-interface: ${CONTROLPLANE_INTERFACE}
      - destination: ::/0
        next-hop-address: ${CONTROLPLANE_GATEWAY_V6}
        next-hop-interface: ${CONTROLPLANE_INTERFACE}
    dns-resolver:
      config:
        server:
        - ${DNS_SERVER_V4}
        - ${DNS_SERVER_V6}

Quanto ao exemplo anterior, substitua as seguintes variáveis pelos valores reais, de acordo com sua infraestrutura:

  • ${CONTROLPLANE_IP_V4} - o endereço IPv4 a ser atribuído ao host

  • ${CONTROLPLANE_PREFIX_V4} - o prefixo IPv4 da rede à qual o IP do host pertence

  • ${CONTROLPLANE_IP_V6} - o endereço IPv6 a ser atribuído ao host

  • ${CONTROLPLANE_PREFIX_V6} - o prefixo IPv6 da rede à qual o IP do host pertence

  • ${CONTROLPLANE_GATEWAY_V4} - o endereço IPv4 do gateway para o tráfego que corresponde à rota padrão

  • ${CONTROLPLANE_GATEWAY_V6} - o endereço IPv6 do gateway para o tráfego que corresponde à rota padrão

  • ${CONTROLPLANE_INTERFACE} - o nome da interface para atribuir os endereços e para usar para tráfego de saída que corresponde à rota padrão, tanto para IPv4 quanto para IPv6

  • ${DNS_SERVER_V4} e/ou ${DNS_SERVER_V6} - o(s) endereço(s) IP do(s) servidor(es) DNS a ser(em) usado(s), que pode(m) ser especificado(s) como entrada única ou múltipla. Há suporte para endereços IPv4 e/ou IPv6

Nota
Nota
  • Você pode consultar o repositório de exemplos do SUSE Telco Cloud para exemplos mais complexos, incluindo configurações somente IPv6 e dual-stack.

  • Implantações de pilha única IPv6 estão em status de prévia técnica e ainda não são oficialmente suportadas.

Por fim, independentemente dos detalhes da configuração de rede, certifique-se de que o segredo seja referenciado anexando preprovisioningNetworkDataName ao objeto BaremetalHost para registrar o host com sucesso no cluster de gerenciamento.

apiVersion: v1
kind: Secret
metadata:
  name: example-demo-credentials
type: Opaque
data:
  username: ${BMC_USERNAME}
  password: ${BMC_PASSWORD}
---
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
  name: example-demo
  labels:
    cluster-role: control-plane
spec:
  architecture: x86_64
  online: true
  bootMACAddress: ${BMC_MAC}
  rootDeviceHints:
    deviceName: /dev/nvme0n1
  bmc:
    address: ${BMC_ADDRESS}
    disableCertificateVerification: true
    credentialsName: example-demo-credentials
  preprovisioningNetworkDataName: controlplane-0-networkdata
Nota
Nota
  • Se você precisar implantar um cluster de vários nós, o mesmo processo deve ser feito para cada nó.

  • Metal3DataTemplate, networkData e Metal3 IPAM atualmente não são suportados; apenas a configuração via segredos estáticos é totalmente suportada.

  • A arquitetura deve ser x86_64 ou aarch64, dependendo da arquitetura do host bare-metal a ser registrado.