Network

Entendendo como funciona a rede (network) nos cluster Kubernetes.

Conceitos básicos de Redes

Abaixo alguns tópicos básicos para direcionar o entendimento sobre o funcionamento de uma rede de computadores:

Geral

Linux / Container

Link’s úteis:

Kubernetes

Cluster Networking

A rede é uma parte central do Kubernetes, e pode ser um desafio entender exatamente como ela deve funcionar, existem 4 problemas de rede distintos para resolver:

  • Comunicações de container a container altamente acopladas: isso é resolvido pelos Pods e comunicação localhost.
  • Comunicações Pod-to-Pod.
  • Comunicações Pod-to-Service.
  • Comunicações externas ao serviço.

Link’s úteis:

Pod Networking

Cada Pod recebe um endereço IP exclusivo para cada família de endereços. Cada container do Pod compartilha o network namespace, incluindo o endereço IP e as portas de rede.

Dentro do Pod, os containers se comunicam entre si usando localhost.

Quando os contêineres em um Pod se comunicam com entidades fora do Pod, eles devem coordenar como usam os recursos de rede compartilhados (como portas).

Link’s úteis:

Container Networking Interface (CNI) no Kubernetes

O Kubernetes oferece suporte a plugins Container Network Interface (CNI) para redes de cluster, escolha um que seja compatível com o cluster e que atenda às suas necessidades, diferentes plugins estão disponíveis (tanto de código aberto quanto de código fechado) no ecossistema Kubernetes.

Um plug-in CNI é necessário para implementar o modelo de rede Kubernetes .

  • IP Address Management in the Kubernetes Cluster

Fonte.: Curso - Certified Kubernetes Administrator (CKA) with Practice Tests .

Link’s úteis:

Service Networking

Uma maneira abstrata de expor um aplicativo em execução em um conjunto de Pods é através de um Service ou serviço de rede.

Com o Kubernetes, você não precisa modificar seu aplicativo para usar um mecanismo de descoberta de serviço desconhecido. O Kubernetes fornece aos Pods seus próprios endereços IP e um único nome DNS para um conjunto de pods e pode balancear a carga entre eles.

Link’s úteis:

Ingress

O Ingress expõe rotas HTTP/HTTPS de fora do cluster para Services dentro do cluster, pode atuar como balanceador de carga, aplicar SSL/TLS e oferecer hospedagem virtual baseada em nome.

É necessário ter um Ingress Controller para satisfazer um Ingress. Apenas a criação de um Ingress resource não tem efeito.

Link’s úteis: