k8s network flannel vs calico
- k8s flanela de rede vs calico
- 16373
|
Recentemente, tenho trabalhado no conteúdo do paas e também acabei de tocar no kubernetes, ambos envolvendo cobertura de rede, ou seja, comunicação entre contêineres através de hosts. O próprio docker tem um esquema nativo de comunicação entre hosts, mas a eficiência é muito baixa. Portanto, há uma série de componentes de código aberto, como flannel, calico, weave e assim por diante. Aqui está a introdução principal ao calico e ao flannel.
Princípio do Flannel
Flannel, um projeto desenvolvido pela CoreOS, é provavelmente o plugin CNI mais simples e popular. Ele é um dos exemplos mais maduros de arquitetura de rede em sistemas de orquestração de contêineres, visando uma melhor rede entre contêineres e entre hosts. Com o surgimento do conceito da CNI, o plug-in da CNI do Flannel é considerado uma introdução precoce.
Em comparação com outras soluções, o Flannel é relativamente fácil de instalar e configurar. Ele é empacotado como um único binário, FlannelD, e muitas ferramentas comuns de implantação de cluster do Kubernetes e muitas distribuições do Kubernetes podem instalar o Flannel por padrão. O Flannel pode usar clusters etcd existentes de clusters do Kubernetes para armazenar suas informações de estado usando uma API e, portanto, não requer um armazenamento de dados dedicado. dedicado.
O Flannel configura uma rede de sobreposição IPv4 de camada 3. Ele cria uma grande rede interna que abrange todos os nós do cluster. Nessa rede de sobreposição, cada nó tem uma sub-rede que é usada para atribuir endereços IP internamente. Ao configurar Pods, a interface de ponte do Docker em cada nó atribui um endereço a cada novo contentor. Os pods no mesmo host podem se comunicar usando a ponte do Docker, enquanto os pods em hosts diferentes usam o flanneld para encapsular seu tráfego em pacotes UDP para roteamento para o destino apropriado.
O Flannel tem vários tipos diferentes de backends disponíveis para encapsulamento e roteamento. A abordagem padrão e recomendada é usar VXLAN, pois VXLAN tem melhor desempenho e requer menos intervenção manual.
Arquitetura Calico
calico inclui os seguintes componentes importantes: Felix, etcd, BGP Client, BGP Route Refletor, a seguir está uma descrição desses componentes.
Felix: responsável principalmente pela configuração de rotas e configuração e distribuição de regras ACLS, existe em cada nó.
etcd: armazenamento distribuído de valores-chave, responsável principalmente pela consistência dos metadados da rede, para garantir a precisão do estado da rede Calico, pode ser partilhado com kubernetes;
BGPClient(BIRD), responsável principalmente por distribuir informações de roteamento escritas por Felix para o kernel para a rede Calico atual, garantindo a validade da comunicação entre cargas de trabalho;
BGPRoute Refletor(BIRD), utilizado em implantações de grande escala, que elimina o modelo de malha de interconexão de todos os nós e fornece distribuição centralizada de rotas através de um ou mais BGPRoute Reflectors;
princípio calico
Como mostra a figura seguinte, descreve o processo de encaminhamento do contentor de origem através do anfitrião de origem, através do centro de dados e depois para o anfitrião de destino para distribuição final ao contentor de destino.
Comparação
Como pode ser visto no princípio acima, o flannel executa operações de selagem e desempacotamento de pacotes além do roteamento e encaminhamento, o que desperdiça recursos de computação da CPU. A figura a seguir compara o desempenho de vários componentes de rede de código aberto encontrados na web. Pode-se ver que tanto a largura de banda quanto a latência da rede, o desempenho do calico e do host são semelhantes.
|
Anterior:Com o título existente para fazer um sistema de exame online下一篇:【转】警惕 System.Environment.CurrentDirectory 获取当前目录
|