Visão geral
Você pode aprender sobre uma rede de cluster a partir dos dois aspectos a seguir:
- Como é uma rede de cluster? Um cluster consiste em vários nós, e os pods (ou contêineres) estão sendo executados nos nós. Os nós e os contêineres precisam se comunicar uns com os outros. Para obter detalhes sobre os tipos de rede de cluster e suas funções, consulte Estrutura de rede do cluster.
- Como o acesso ao pod é implementado em um cluster? Acessar um pod ou contêiner é um processo de acesso aos serviços de um usuário. O Kubernetes fornece Serviço e resolve Ingress problemas de acesso ao pod. Esta seção resume cenários comuns de acesso à rede. Você pode selecionar o cenário adequado com base nos requisitos do site. Para obter detalhes sobre os cenários de acesso à rede, consulte Cenários de acesso.
Estrutura de rede do cluster
Todos os nós no cluster estão localizados em uma VPC e usam a rede da VPC. A rede de contêineres é gerenciada por complementos de rede dedicados.
- Rede de nó
Uma rede de nó atribui endereços IP a hosts (nós na figura acima) em um cluster. Selecione uma sub-rede da VPC como a rede de nó do cluster do CCE. O número de endereços IP disponíveis em uma sub-rede determina o número máximo de nós (incluindo nós mestres e nós de trabalho) que podem ser criados em um cluster. Essa quantidade também é afetada pela rede de contêineres. Para obter detalhes, consulte o modelo de rede de contêiner.
- Rede de contêiner
Uma rede de contêineres atribui endereços IP a contêineres em um cluster. O CCE herda o modelo de rede IP-Por-Pod-Por-Rede do Kubernetes. Ou seja, cada pod tem um endereço IP independente em um plano de rede e todos os contêineres em um pod compartilham o mesmo namespace de rede. Todos os pods em um cluster existem em uma rede plana conectada diretamente. Eles podem acessar uns aos outros através de seus endereços IP sem usar NAT. O Kubernetes fornece apenas um mecanismo de rede para pods, mas não configura diretamente redes de pods. A configuração de redes de pods é implementada por complementos de rede de contêineres específicos. Os complementos de rede de contêineres são responsáveis por configurar redes para pods e gerenciar endereços IP de contêiner.
Atualmente, o CCE suporta os seguintes modelos de rede de contêineres:
- Rede de túneis de contentores: a rede de túnel de contêiner é construída em, mas independente da rede de nó através do encapsulamento de túnel. Este modelo de rede usa VXLAN para encapsular pacotes Ethernet em pacotes UDP e transmiti-los em túneis. Open vSwitch serve como o comutador virtual de back-end.
- Rede da VPC: a rede da VPC usa o roteamento da VPC para se integrar à rede subjacente. Esse modelo de rede se aplica a cenários de alto desempenho. O número máximo de nós permitidos em um cluster depende da cota de rota em uma rede da VPC. Cada nó é atribuído a um bloco CIDR de um tamanho fixo. Esse modelo de rede é livre de sobrecarga de encapsulamento de túnel e supera o modelo de rede de túnel de contêiner. Além disso, como o roteamento de VPC inclui rotas para endereços IP de nó e o bloco CIDR de contêiner, os pods de contêiner em um cluster podem ser acessados diretamente de fora do cluster.
- Desenvolvido pelo CCE, o Cloud Native Network 2.0 integra profundamente as interfaces de rede elásticas (ENIs) e as interfaces de sub-rede (sub-ENIs) da VPC. Os endereços IP do contêiner são alocados a partir do bloco CIDR da VPC. A rede de passagem do ELB é suportada para direcionar solicitações de acesso a contêineres. Grupos de segurança e IPs elásticos (EIPs) são obrigados a oferecer alto desempenho.
O desempenho, a escala de rede e os cenários de aplicações de uma rede de contêineres variam de acordo com o modelo da rede de contêineres. Para obter detalhes sobre as funções e recursos de diferentes modelos de rede de contêineres, consulte Visão geral.
- Rede de serviço
O Serviço também é um objeto do Kubernetes. Cada Serviço tem um endereço IP estático. Ao criar um cluster no CCE, você pode especificar o bloco CIDR do Serviço. O bloco CIDR de Serviço não pode se sobrepor ao bloco CIDR de nó ou contêiner. O bloco CIDR de Serviço pode ser usado somente dentro de um cluster.
Serviço
Um Serviço é usado para acesso ao pod. Com um endereço IP estático, um Serviço encaminha o tráfego de acesso aos pods e executa o balanceamento de carga para esses pods.
Você pode configurar os seguintes tipos de Serviços:
- ClusterIP: usado para tornar o Serviço acessível apenas de dentro de um cluster.
- NodePort: usado para acesso de fora de um cluster. Um Serviço NodePort é acessado através da porta no nó.
- LoadBalancer: usado para acesso de fora de um cluster. É uma extensão de NodePort para o qual um balanceador de carga roteia e os sistemas externos só precisam acessar o balanceador de carga.
- DNAT: usada para acesso de fora de um cluster. Ela converte endereços para nós do cluster e permite que vários nós do cluster compartilhem um EIP.
Para obter detalhes sobre o Serviço, consulte Visão geral.
Ingress
Serviços encaminham solicitações usando os protocolos TCP e UDP da camada 4. Ingresses encaminham solicitações usando os protocolos HTTP e HTTPS de camada 7. Nomes de domínio e caminhos podem ser usados para obter granularidades mais finas.
Para obter detalhes sobre o ingress, consulte Visão geral.
Cenários de acesso
Os cenários de acesso à carga de trabalho podem ser categorizados da seguinte forma:
- Acesso intra-cluster: um Serviço ClusterIP é usado para cargas de trabalho no mesmo cluster para acessar uns aos outros.
- Acesso de fora de um cluster: um Serviço (tipo NodePort ou LoadBalancer) ou um ingress é recomendado para uma carga de trabalho fora de um cluster para acessar cargas de trabalho no cluster.
- Acesso através da rede pública: um EIP deve ser vinculado ao nó ou ao balanceador de carga.
- Acesso através da rede privada: a carga de trabalho pode ser acessada por meio do endereço IP interno do nó ou do balanceador de carga. Se as cargas de trabalho estiverem localizadas em VPCs diferentes, é necessária uma conexão de emparelhamento para permitir a comunicação entre VPCs diferentes.
- A carga de trabalho pode acessar a rede externa da seguinte forma:
- Acessar uma intranet: a carga de trabalho acessa o endereço de intranet, mas o método de implementação varia dependendo dos modelos de rede de contêiner. Certifique-se de que o grupo de segurança de par permita as solicitações de acesso do bloco CIDR do contêiner. Para mais detalhes, consulte Configuração do acesso dentro da VPC.
- Acessar uma rede pública: atribuir um EIP ao nó em que a carga de trabalho é executada (quando a rede da VPC ou o modelo de rede de túnel é usado) vincular um EIP ao endereço IP do pod (quando o modelo Cloud Native Network 2.0 é usado) ou configurar regras SNAT por meio do gateway NAT. Para mais detalhes, consulte Acesso a redes públicas a partir de um contêiner.