Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Visão geral dos casos de uso e configuração do JCNR

RESUMO Leia este capítulo para revisar exemplos de configuração para vários casos de uso de roteador nativo de nuvem da Juniper quando implantado no modo de interface de rede de contêiner (CNI).

O roteador nativo de nuvem da Juniper pode ser implantado como um switch virtual ou um roteador de trânsito, seja como uma função de rede de contêiner puro (CNF) ou como uma interface de rede de contêiner (CNI). No modo CNF, não há pods de aplicativo em execução no nó e o roteador só realiza comutação ou encaminhamento de pacotes por meio de várias interfaces no sistema. No modo CNI, os pods de aplicativo que usam interfaces de rede baseadas em software, como veth-pairs ou interfaces baseadas em usuário DPDK vhost, são anexados ao roteador nativo da nuvem. Este capítulo fornece exemplos de configuração para anexar diferentes tipos de interface de carga de trabalho à instância CNI do roteador nativo da nuvem.

Exemplo de configuração

A CNI do JCNR é implantada como uma CNI secundária, juntamente com Multus como uma CNI primária, para criar diferentes tipos de interfaces secundárias para o pod de aplicativo. A Multus usa um arquivo de definição de anexo de rede (NAD) para configurar uma interface secundária para o pod do aplicativo. O NAD especifica como criar uma interface secundária, alocação de endereço IP, instância de rede e muito mais. Um pod pode ter um ou mais NADs, normalmente um por interface de pod. O config: campo no arquivo NAD define a configuração da CNI do JCNR. Aqui está um formato genérico do NAD: Ao mesmo tempo em que configuram o NAD para o tipo de plug-in JCNR, as seguintes chaves são suportadas:
Tabela 1: Chaves com suporte no NAD
Descrição da chave
Instancename O nome da instância de roteamento
instânciasPoquétimos Um de:

roteador virtual — para aplicativos não relacionados a VPN

vrf — implementações de VPN de camada 3

switch virtual — implementações de Camada 2

Interfacetype Ou "veth" ou "virtio"
vlanId Uma id vlan válida "1-4095"
bridgeVlanId Uma id vlan válida "1-4095"
vlanIdList Uma lista de comandos separada vlan-id, por exemplo: "1, 5, 7, 10-20"
parentInterface Nome de interface válido conforme deve aparecer no pod. As sub-interfaces/crianças têminterface parental como prefixo seguido de "." Se a interface parental for especificada, a sub interface deve ser explicitamente especificada.
vrfTarget O alvo de rota para a instância de roteamento vrf
bridgeDomain Domínio bridge sob qual interface de pod deve ser anexada na instância do switch virtual.
tipo (ipam) estático — atribui o mesmo IP a todos os pods, para atribuir um IP único por pod definir um NAD exclusivo por pod por interface

host local — endereço IP exclusivo por interface de pod no mesmo host. Os endereços IP não são exclusivos em dois nós diferentes

descasos — endereço IP exclusivo por pod em todos os nós

(https://github.com/k8snetworkplumbingwg/whereabouts)

Considere o exemplo de NAD para uma interface de modo de acesso de kernel de camada 2: O pod é anexado à instância do roteador usando a k8s.v1.cni.cncf.io/networks Anotação. Por exemplo: O caminho de host de montagem de volumes expõe o soquete de domínio UNIX da porta vhost-user ao aplicativo DPDK. Os detalhes da interface DPDK são armazenados em /dpdk/dpdk-interfaces.json dentro do contêiner de aplicativos para o aplicativo DPDK consumir. Também é exportado para o pod como uma anotação de pod.

Quando você cria um pod para uso no roteador nativo de nuvem, o componente Kubernetes conhecido como kubelet chama a CNI da Multus para configurar redes e interfaces de pod. Multus lê a seção de anotações do arquivo pod.yaml para consultar o NAD correspondente. Se um NAD aponta como jcnr o plug-in da CNI, Multus chama o JCNR-CNI para configurar a interface do pod. O JCNR-CNI cria a interface conforme especificado no NAD. A JCNR-CNI então gera e empurra uma configuração para o cRPD.

Solucionando problemas

Os pods principais não surgem por várias razões:

  • Imagem não encontrada

  • A CNI falhou em adicionar interfaces

  • A CNI falhou em empurrar a configuração para o cRPD

  • A CNI não invocou as APIs REST do vRouter

  • O NAD é inválido ou indefinido

Os comandos a seguir serão úteis para solucionar problemas de pod: