Conceitos de rede para o Azure Red Hat OpenShift
Este guia aborda uma visão geral da rede do Azure Red Hat OpenShift em clusters OpenShift 4, juntamente com um diagrama e uma lista de pontos de extremidade importantes. Para obter mais informações sobre os principais conceitos de rede do OpenShift, consulte a documentação de rede do Azure Red Hat OpenShift 4.
Quando você implanta o Azure Red Hat OpenShift no OpenShift 4, todo o cluster está contido em uma rede virtual. Dentro dessa rede virtual, os nós do plano de controle e os nós de trabalho vivem cada um em sua própria sub-rede. Cada sub-rede usa um balanceador de carga interno e um balanceador de carga público.
Nota
Para obter informações sobre as alterações mais recentes introduzidas no ARO, confira Novidades do Azure Red Hat OpenShift.
Componentes de rede
A lista a seguir abrange componentes de rede importantes em um cluster do Azure Red Hat OpenShift.
aro-pls
- Este ponto de extremidade do Azure Private Link é usado pelos engenheiros de confiabilidade do site da Microsoft e da Red Hat para gerenciar o cluster.
aro-interno
- Esse ponto de extremidade equilibra o tráfego para o servidor de API e o tráfego de serviço interno. Os nós do plano de controle e os nós de trabalho estão no pool de back-end.
- Este balanceador de carga não é criado por padrão. Ele é criado depois que você cria um serviço do tipo LoadBalancer com as anotações corretas. Por exemplo: service.beta.kubernetes.io/azure-load-balancer-internal: "true".
Aro
- Este ponto de extremidade é usado para qualquer tráfego público. Quando você cria um aplicativo e uma rota, esse ponto de extremidade é o caminho para o tráfego de entrada.
- Esse ponto de extremidade também roteia e equilibra o tráfego para o servidor de API (se a API for pública). Esse ponto de extremidade atribui um IP de saída público para que os planos de controle possam acessar o Gerenciador de Recursos do Azure e relatar a integridade do cluster.
- Esse balanceador de carga também cobre a conectividade de saída com a Internet de qualquer pod em execução nos nós de trabalho por meio das regras de saída do Balanceador de Carga do Azure.
- Atualmente, as regras de saída não são configuráveis. Eles alocam 1.024 portas TCP para cada nó.
- DisableOutboundSnat não está configurado nas regras LB, portanto, os pods podem obter como IP de saída qualquer IP público configurado neste ALB.
- Como consequência dos dois pontos anteriores, a única maneira de adicionar portas SNAT efêmeras é adicionando serviços públicos do tipo LoadBalancer ao ARO.
ARO-NSG
- Quando você expõe um serviço, a API cria uma regra nesse grupo de segurança de rede para que o tráfego flua e atinja o plano de controle e os nós pela porta 6443.
- Por padrão, esse grupo de segurança de rede permite todo o tráfego de saída. Atualmente, o tráfego de saída só pode ser restrito ao plano de controle do Azure Red Hat OpenShift.
Azure Container Registry
- Esse registro de contêiner é fornecido e usado pela Microsoft internamente. Ele é somente leitura e não se destina ao uso por usuários do Azure Red Hat OpenShift.
- Este registro fornece imagens da plataforma host e componentes de cluster. Por exemplo, monitoramento ou registro de contêineres.
- As conexões com esse Registro ocorrem no ponto de extremidade do serviço (conectividade interna entre os serviços do Azure).
- Por padrão, esse registro interno não está disponível fora do cluster.
- Esse registro de contêiner é fornecido e usado pela Microsoft internamente. Ele é somente leitura e não se destina ao uso por usuários do Azure Red Hat OpenShift.
Ligação Privada
- Um Link Privado permite a conectividade de rede do plano de gerenciamento para um cluster. Isso é usado pelos engenheiros de confiabilidade do site da Microsoft e da Red Hat para ajudar a gerenciar seu cluster.
Políticas de rede
Ingresso: A política de rede de entrada é suportada como parte do OpenShift SDN. Essa política de rede é habilitada por padrão e a imposição é executada pelos usuários. Embora a diretiva de rede de entrada seja compatível com NetworkPolicy V1, os tipos Egress e IPBlock não são suportados.
Saída: As políticas de rede de saída são suportadas usando o recurso de firewall de saída no OpenShift. Há apenas uma política de saída por namespace/projeto. As políticas de saída não são suportadas no namespace "padrão" e são avaliadas em ordem (do primeiro ao último).
Noções básicas de rede no OpenShift
OpenShift Software Defined Networking (SDN) é usado para configurar uma rede de sobreposição usando Open vSwitch (OVS), uma implementação OpenFlow baseada na especificação Container Network Interface (CNI). O SDN suporta diferentes plugins. Política de Rede é o plug-in usado no Azure Red Hat no OpenShift 4. Toda a comunicação de rede é gerenciada pelo SDN, portanto, nenhuma rota extra é necessária em suas redes virtuais para alcançar a comunicação pod to pod.
Rede para o Azure Red Hat OpenShift
Os seguintes recursos de rede são específicos do Azure Red Hat OpenShift:
- Os usuários podem criar seu cluster do Azure Red Hat OpenShift em uma rede virtual existente ou criar uma nova rede virtual ao criar seu cluster.
- Os CIDRs de Pod e Service Network são configuráveis.
- Nós e planos de controle estão em sub-redes diferentes.
- Os nós e as sub-redes de rede virtual do plano de controle devem ser no mínimo /27.
- O Pod CIDR padrão é 10.128.0.0/14.
- O CIDR de serviço padrão é 172.30.0.0/16.
- Os CIDRs de pod e rede de serviço não devem se sobrepor a outros intervalos de endereços em uso em sua rede. Eles não devem estar dentro do intervalo de endereços IP da rede virtual do cluster.
- Os CIDRs de pod devem ter um tamanho mínimo /18. (A rede pod é IPs não roteáveis e só é usada dentro do OpenShift SDN.)
- Cada nó é alocado /23 sub-rede (512 IPs) para seus pods. Não é possível alterar este valor.
- Não é possível anexar um pod a várias redes.
- Para clusters ARO privados usando o plug-in de rede OVN-Kubernetes, é possível configurar IPs de saída. Para obter informações, consulte configurando um endereço IP de saída.
Definições de rede
As seguintes configurações de rede estão disponíveis para clusters do Azure Red Hat OpenShift 4:
- Visibilidade da API - Defina a visibilidade da API ao executar o comando az aro create.
- "Público" - API Server é acessível por redes externas.
- "Privado" - Servidor de API atribuído um IP privado da sub-rede do plano de controle, acessível apenas usando redes conectadas (redes virtuais emparelhadas e outras sub-redes no cluster).
- Visibilidade de ingresso - Defina a visibilidade da API ao executar o comando az aro create.
- Rotas "públicas" padrão para um balanceador de carga padrão público. (O padrão pode ser alterado.)
- Rotas "privadas" padrão para um balanceador de carga interno. (O padrão pode ser alterado.)
Grupos de segurança de rede
Os grupos de segurança de rede são criados no grupo de recursos do nó, que é bloqueado para os usuários. Os grupos de segurança de rede são atribuídos diretamente às sub-redes, não nas NICs do nó. Os grupos de segurança de rede são imutáveis. Os usuários não têm as permissões para alterá-los.
Com um servidor de API publicamente visível, não é possível criar grupos de segurança de rede e atribuí-los às NICs.
Reencaminhamento de domínios
O Azure Red Hat OpenShift usa CoreDNS. O encaminhamento de domínio pode ser configurado. Você não pode trazer seu próprio DNS para suas redes virtuais. Para obter mais informações, consulte a documentação sobre como usar o encaminhamento DNS.
Próximos passos
Para obter mais informações sobre o tráfego de saída e o que o Azure Red Hat OpenShift suporta para saída, consulte a documentação de políticas de suporte.