O sistema de rede inclui os seguintes componentes:
Rede de gestão: a rede de gestão fora da banda que inclui os dois tipos de comutadores seguintes:
- Interruptores de gestão
- Interruptores de agregação de gestão
Rede do plano de dados: a rede que transporta o tráfego do utilizador e inclui os seguintes três tipos de comutadores:
- Interruptores top-of-rack (TOR)
- Interruptores de agregação
- Interruptores de folha de limite
Se o firmware atual nos comutadores não for da versão esperada, o arranque da rede tenta colocar os comutadores na versão esperada do SO do comutador para a versão isolada do Google Distributed Cloud (GDC).
12.1. Antes de começar
Os comutadores podem ser enviados com as predefinições de fábrica. Antes de começar, reponha todos os comutadores para remover qualquer configuração existente. Para tal, estabeleça ligação através da consola série e execute o seguinte comando:
write erase
Depois de remover a configuração do comutador existente, recarregue o comutador:
reload in 5
12.2. Instalação de rede
Siga os passos seguintes para a instalação de rede:
- Ligue todos os interruptores.
Inicie o programa de arranque da rede com acesso de superutilizador na máquina de arranque:
sudogdcloud system network install --config PATH_TO_CELLCFG --upgrade-switch-osSubstitua
PATH_TO_CELLCFGpelo caminho para o ficheirocellcfg.Se este comando falhar e apresentar a seguinte mensagem de erro:
root@bootstrapper:~/hams/gdc/output/cellcfg# gdcloud system network install --config /root/hams/gdc/output/cellcfg --upgrade-switch-os Error: failed to initialize KIND: could not determine harbor address (no match between local and docker hostnames): could not find a matchExecute novamente o comando
initpara resolver este erro:gdcloud system network init --config PATH_TO_CELLCFG
Mantenha os interruptores ligados. Os comutadores passam pelas sequências de arranque de aprovisionamento automático de ligação (POAP) para se instalarem automaticamente de forma remota a partir da máquina de arranque.
Monitorize o registo do programa de arranque para garantir que os comutadores estão ativos pela seguinte ordem:
- Interruptor de gestão
1. - Outros comutadores de gestão e comutadores de agregação de gestão.
- Comutadores de rede de dados.
- Interruptor de gestão
Continue a monitorizar o registo de arranque. Depois de concluir os passos anteriores, os comutadores são associados. O programa de arranque instala configurações adicionais nos comutadores de gestão e nos comutadores de dados através de APIs.
Aguarde até que o registo de arranque apresente a mensagem
Successfully bootstrapped all switches.
12.3. Detalhes da inicialização
Use a sequência de arranque do POAP para iniciar todos os comutadores na rede da seguinte forma:
- Ligue a máquina de arranque ao comutador de gestão.
- Ligue o comutador de agregação de gestão ao comutador de gestão.
- Ligue o resto dos comutadores no mesmo rack.
- Ligue o comutador de agregação de gestão a outro rack.
- Ligue todos os outros comutadores.
A máquina de arranque gera a configuração do comutador com os ficheiros YAML para comutadores no caminho ./cellcfg. Todos os comutadores usam a sequência de arranque de aprovisionamento automático de ativação (POAP) para receber as respetivas configurações. No hardware 3.0, os comutadores de rede recebem um ficheiro POAP com as respetivas configurações finais. Depois de os comutadores concluírem o POAP, são reiniciados automaticamente.
Após o reinício, os comutadores têm de estar alinhados com os ficheiros YAML dos comutadores no caminho ./cellcfg. A máquina de arranque envia pedidos a todos os comutadores para garantir uma conetividade e uma configuração bem-sucedidas do comutador.
12.4. Configuração da rota após o arranque
Após o processo de arranque da rede, configure as rotas do programa de arranque para o preparar para as tarefas de arranque futuras.
12.4.1. Encontre o gateway do plano de dados
O gateway do plano de dados é o endereço IP do gateway para a rede do plano de dados. Configure o endereço IP do gateway para comunicar com outros serviços na rede do plano de dados.
Para encontrar o endereço IP do gateway do plano de dados, siga estes passos:
- Na pasta
cellcfg, navegue para o ficheirokub-ipam.yaml. Encontre o recurso
SubnetClaimcom o nomecontrol-plane-subnet:yq eval -r ' select(.kind == "SubnetClaim" and .metadata.name == "control-plane-subnet") | .spec.ipv4Spec.staticReservedIpRanges[] | select(.type == "GatewayReservation") | .ipRange.startIPAddress ' PATH_TO_KUB_IPAM_FILESubstitua
PATH_TO_KUB_IPAM_FILEpelo caminho para o ficheirocellcfg/kub-ipam.yaml.Encontre o endereço IP do gateway na secção
spec.ipv4Specindicado comotype: GatewayReservation. Por exemplo, o endereço IP do gateway para a interface do plano de dados é172.19.0.1:# Source: kub-ipam-assets/templates/subnet_claims.yaml apiVersion: system.private.gdc.goog/v1alpha1 kind: SubnetClaim metadata: name: control-plane-subnet namespace: root labels: subnetclaims.system.private.gdc.goog/usage: "server" annotations: lcm.private.gdc.goog/claim-by-force: "true" helm.sh/resource-policy: keep spec: category: ExternalOverlayNetwork overlayNetwork: External cidrClaimName: control-plane-cidr ipv4Spec: staticReservedIpRanges: - ipRange: size: 1 startIPAddress: 172.19.0.1 type: GatewayReservation
12.4.2. Crie um script para rotas no programa de arranque
Crie um script para criar as rotas:
bash << 'EOF'
#!/bin/bash
SCRIPT_PATH="/usr/local/sbin/add-routes.sh"
SERVICE_PATH="/usr/lib/systemd/system/add-routes.service"
MGMT_GATEWAY=MGMT_GATEWAY
MGMT_CIDR=MGMT_CIDR
MGMT_INTERFACE=MGMT_INTERFACE
BOND_GATEWAY=DATA_GATEWAY
rm -rf "$SCRIPT_PATH" 2>/dev/null
touch "$SCRIPT_PATH"
rm -rf "$SERVICE_PATH" 2>/dev/null
touch "$SERVICE_PATH"
echo -e '#!/bin/bash\n' > "$SCRIPT_PATH"
echo "ip route del $MGMT_CIDR via $MGMT_GATEWAY dev $MGMT_INTERFACE proto static" >> "$SCRIPT_PATH"
echo "ip route add $MGMT_CIDR via $MGMT_GATEWAY dev $MGMT_INTERFACE proto static" >> "$SCRIPT_PATH"
echo "ip route del default via $BOND_GATEWAY dev bond0 proto static" >> "$SCRIPT_PATH"
echo "ip route add default via $BOND_GATEWAY dev bond0 proto static" >> "$SCRIPT_PATH"
chmod +x "$SCRIPT_PATH"
echo -e "[Unit]\nDescription=Add Routes Service\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/usr/local/sbin/add-routes.sh\n\n[Install]\nWantedBy=default.target" > "$SERVICE_PATH"
systemctl daemon-reload
systemctl enable add-routes.service
systemctl restart add-routes.service
echo -e "\n ### add-routes.sh script file path ###"
ls -l $SCRIPT_PATH
echo -e "\n ### add-routes.service file path ###"
ls -l $SERVICE_PATH
echo -e "\n ### add-routes.service status ###"
systemctl status add-routes.service
echo -e "\n ### Show if add-routes.service is enabled at boot ###"
systemctl is-enabled add-routes.service
echo -e "\n ### Show the just added route to ens15f0 ###"
ip route show | grep ens15f0
echo -e "\n ### Show the just added default route ###"
ip route show | grep default
EOF
Substitua o seguinte:
MGMT_GATEWAY: o endereço do gateway da secção Encontre o IP de gestão, o CIDR e o endereço do gateway.MGMT_CIDR: o CIDR de gestão da secção Encontre o endereço IP, o CIDR e o endereço do gateway de gestãoMGMT_INTERFACE: um exemplo de nome de interface de gestão éens15f0. Pode usar o endereço MAC emcellcfg/serv-core.yamlpara identificar que interface é usada para a rede de gestão.DATA_GATEWAY: o endereço IP do gateway da secção Encontre o gateway do plano de dados.
Este fragmento cria um serviço systemd e um script da seguinte forma:
SCRIPT_PATH="/usr/local/sbin/add-routes.sh
SERVICE_PATH="/usr/lib/systemd/system/add-routes.service
O serviço systemd é necessário para manter os percursos no lugar após reiniciar o sistema.
As rotas adicionadas incluem:
- O caminho predefinido para a rede de dados através da interface
bond0. - O caminho para a rede de gestão através da interface de gestão.
12,5. Estabeleça a conetividade em várias zonas
Se a instância do GDC estiver a juntar-se a um universo multizona existente, siga os passos em Configure a interligação multizona para cada zona de modo a estabelecer a conetividade de rede entre as zonas existentes e a zona de implementação atual.
12.6. Resolução de problemas
Para resolver problemas de arranque da rede, consulte o artigo Resolução de problemas de arranque da rede.
12.7. Potencial problema
Os comutadores de rede pré-carregados com uma versão inferior a 9.3.10 podem não conseguir arrancar.
Para mais informações, consulte Problemas conhecidos.