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
A imagem gerada usando
EIBdeve incluir a pasta de rede e o script seguindo esta seção (Seção 49.2.6, “Script adicional para Configuração de Rede Avançada”).
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):
Provisionamento de cluster downstream com provisionamento de rede direcionado (nó único) (Capítulo 51, Provisionamento de cluster downstream com provisionamento de rede direcionado (nó único))
Provisionamento de cluster downstream com provisionamento de rede direcionado (nós múltiplos) (Capítulo 52, Provisionamento de cluster downstream com provisionamento de rede direcionado (multi-nó))
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). Incluindoidentifier: 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,24se você quiser/24ou255.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
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-networkdataSe você precisar implantar um cluster de vários nós, o mesmo processo deve ser feito para cada nó.
Metal3DataTemplate,networkDataeMetal3 IPAMatualmente não são suportados; apenas a configuração via segredos estáticos é totalmente suportada.A arquitetura deve ser
x86_64ouaarch64, dependendo da arquitetura do host bare-metal a ser registrado.