Descubra como otimizar seu cluster Kubernetes com o plugin de rede Calico

Descubra como otimizar seu cluster Kubernetes com o plugin de rede Calico

Olá mundo DevOps!

Nesse post irei mostrar como se comporta um cluster Kubernetes quando trabalhamos com nós de trabalho divididos em várias instâncias cloud como Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure e até mesmo uma cloud onpremise usando o Openstack.

O que irá tornar isso possível são os plugins conhecidos como add-ons que implementam recursos dentro do cluster como:

  • DNS: implementa um serviço de tradução de endereço de IP.
  • Dashboard: uma interface de uso geral, baseada na web para clusters do Kubernetes. Ele permite que os usuários gerenciem e solucionem problemas de aplicativos em execução no cluster.
  • Monitoramento de recurso de contêiner: registra métricas genéricas de séries temporais sobre contêineres em um banco de dados central e fornece uma interface de usuário para navegação entre seus dados.

Observação: Aqui iremos abordar o plugin de rede Calico dentro do cluster Kubernetes.

Calico

O Calico [1] é um plugin de rede criado para que seja possível manter comunicação entre as máquinas do cluster Kubernetes. Você pode usar o plugin Calico como uma ferramenta autônoma para implementar recursos de conectividade de rede e gerenciar acessibilidade.

Vantagens

Quais são as vantagens de usar os recursos integrados do Kubernetes junto com as APIs Calico?

Aqui está a lista de recursos da NetworkPolicy:

  • As políticas são limitadas a um ambiente;
  • As políticas são aplicadas a pods marcados com rótulos;
  • Você pode aplicar regras a pods, ambientes ou sub-redes;
  • As regras podem conter protocolos, portas numéricas ou nomeadas.

Como o Calico entende esses recursos

As políticas podem ser aplicadas a qualquer objeto: pod, conteiner, máquina virtual ou interface;
As regras podem conter a ação específica (restrição, permissão, registro); é possível usar portas, intervalos de portas, protocolos, atributos HTTP / ICMP, IPs ou sub-redes (v4 e v6) e quaisquer seletores (seletores para nós, hosts, ambientes) como uma fonte ou um destino das regras;

Além disso, é possível controlar os fluxos de tráfego por meio de configurações e políticas DNAT para encaminhamento do tráfego.

Usando o Calico

No caso geral do Kubernetes Vanilla, instalar o CNI se resume em aplicar na sua rede Kubernetes (com o comando kubectl apply -f) o arquivo manifesto calico.yaml baixado do site oficial do projeto.

Normalmente, a versão mais recente do plugin é compatível com pelo menos 2 a 3 versões mais recentes do Kubernetes. Sua operação confiável em versões anteriores não foi testada e não é garantida. De acordo com os desenvolvedores, o Calico suporta kernels Linux começando com 3.10 executados sobre CentOS 7, Ubuntu 16 ou Debian 8 com IPtables / IPVS como base.

Isolamento dentro do ambiente

Para uma compreensão geral, vamos considerar um caso elementar para ver como as políticas de rede Calico diferem das normais e como a abordagem para compor regras melhora sua legibilidade e flexibilidade.

Fluxo de comunicação:

Abaixo é mostrada como é feita a comunicação entre os nodes e master que estão em múltiplas instâncias cloud.

 

 

Na próxima parte desta série irei abordar como é realizada essa configuração usando múltiplas instâncias cloud.

Mais informações:

[1] Plugin Calico: https://www.projectcalico.org/calico-networking-for-kubernetes/

 

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Keycloak: Gerenciamento de Identidade e Acesso para WebApps e Serviços RESTful
Próxima Organize seus objetos de banco de dados com schemas PostgreSQL no Django

About author

Você pode gostar também

Infraestrutura TI

Como a Computação em Nuvem Revolucionou o Big Data: Uma Análise Detalhada

Entre os anos 2012 a 2018, o Hadoop era considerado uma plataforma de Big Data praticamente hegemônica. Em um projeto típico de Big Data, além dos aspectos do pipeline de

Cloud

Gerenciando entradas de DNS com Terraform e Protocolo TSIG

Terraform é uma ferramenta da Hashicorp focada em Bootstrapping e inicialização de recursos. Em comparação com Puppet , este é responsável por gerenciar a configuração de uma infraestrutura existente, já o

Treinamentos

Curso Especialista em Automação com Ansible: Aprenda na Prática!

Olá, para você que trabalha ou tem interesse na área DevOps! Gostaria de aprender a provisionar de forma automatizada diversos ambientes? Estamos lançando o curso Especialista em Automação com Ansible,