Como configurar o serviço de negar IPS externo em Kubernetes

Como configurar o serviço de negar IPS externo em Kubernetes

Você pode ter um problema ao configurar um cluster de Kubernetes quando sabe apenas usar o NodEport para tornar seu serviço Kubernetes acessível pela Internet. Ao empregar o tipo de serviço Nodeport, um número alto de porta será atribuído e você deve permitir conexões com essas portas em sua regra de firewall. É prejudicial para sua infraestrutura, especialmente se o servidor estiver acessível pela Internet aberta. Você pode atribuir um bloco de endereços IP fora do cluster como um administrador de cluster que pode transmitir tráfego para serviços lá. É exatamente disso que vamos falar neste artigo: para encontrar todas as informações críticas sobre como configurar o serviço de negar IPS externo em Kubernetes.

O que é serviço IP externo?

Um dos terminais de serviço receberá tráfego que entrará no cluster usando o IP externo (como o IP de destino) e a porta de serviço. Kubernetes não é responsável por gerenciar IP externo.

Certifique -se de qual IP é utilizado para acessar o cluster Kubernetes é crucial nesta situação. Usando o tipo de serviço IP externo, podemos vincular o serviço ao endereço IP usado para acessar o cluster.

O fato de a rede Kubernetes interagir com a rede de sobreposição é importante para entender esta situação. Isso implica que você pode acessar praticamente todos os nó no cluster depois de atingir qualquer um dos nós (nó mestre ou trabalhador).

A rede é mostrada dessa maneira:


Os nós 1 e 2 no diagrama compartilham um único endereço IP. A vagem real vive no nó 1, mas o endereço IP 1.2.3.6 está ligado ao serviço nginx no nó 1. Endereço IP do Nó 1, 1.2.3.4, está vinculado ao serviço httpd, e o pod do Node 2 está localizado lá.

Isso é possível pelos fundamentos da rede de sobreposição. Quando enrolamos o endereço IP 1.2.3.4, o serviço HTTPD deve responder; Quando nos enrolamos 1.2.3.5, o serviço nginx deve responder.

Vantajoso e desvantagens do IP externo

Aqui estão as vantagens e desvantagens do IP externo:

É vantajoso usar IP externo porque:

    • Seu IP está completamente sob seu controle. Em vez de usar o ASN do provedor de nuvem, você pode utilizar IP que pertence ao seu próprio ASN.

As desvantagens do IP externo incluem o seguinte:

    • A configuração direta pela qual passaremos agora não está muito disponível. Isso implica que, se o nó falhar, o serviço não estará mais acessível e você terá que resolver o problema manualmente.
    • Para lidar com o IPS, é necessário um trabalho humano considerável. Como os IPs não são alocados dinamicamente para você, você tem que fazer isso manualmente.

O que é padrão negar/permitir comportamento?

O "Padrão permitir”indica que todo o tráfego é permitido por padrão. A menos que seja permitido especificamente, todo o tráfego é recusado por padrão ao usar o termo “Padrão negar.”Exceto quando uma política de rede é especificada.

    • Todo o tráfego de e para uma vagem é permitido se nenhuma política de rede estiver em vigor para essa vagem.
    • Se uma ou mais políticas de rede estiverem em vigor para uma cápsula de entrada de tipo, apenas o tráfego de entrada explicitamente permitido por essas políticas é permitido.
    • Quando uma ou mais políticas de rede se aplicam a um grupo de saída de tipo, apenas o tráfego de saída permitido por essas políticas é permitido.

A configuração padrão para outros tipos de terminais (VMs, interfaces host) é bloquear o tráfego. Somente o tráfego que é permitido especificamente pela política de rede é permitido, mesmo que nenhuma políticas de rede se aplique ao endpoint.

Best Practice: Política de negar padrão implícita

Você deve configurar uma política de nega inadimplente implícita criada para suas vagens Kubernetes. Isso garante que o tráfego indesejado seja bloqueado automaticamente. Lembre -se de que a inadimplência implícita nega que as políticas sempre entrem em vigor; Se outras políticas permitirem o tráfego, a negação não se aplica. A negação é implementada apenas depois que todas as outras políticas foram consideradas.

Como criar um padrão nega a política para as vagens de Kubernetes?

Aconselhamos a utilização da política de rede global, mesmo que alguma das seguintes regras possa ser usada para construir uma inadimplência nega a política para vagens de Kubernetes. Uma política de rede global é aplicada a todas as cargas de trabalho (VMs e contêineres) em todos os espaços para nome e hosts. Uma política de rede global incentiva uma abordagem cautelosa para a segurança enquanto defende recursos.

    • Ativar padrão para negar a política global de rede, sem namespaced
    • Ativar padrão para negar a política de rede, namespaced
    • Ativar padrão para negar a política de Kubernetes, namespaced

O que é bloco IP?

Com isso, intervalos específicos de IP CIDR são escolhidos para serem permitidos como fontes de entrada ou destinos de saída. Dado que o POD IPS é transitório e imprevisível, estes devem ser IPs Externais do Cluster.

O IP de origem ou destino dos pacotes deve ser frequentemente reescrito ao usar métodos de entrada e saída de entrada de cluster. Dependendo do plugin de rede específico (provedor de serviços em nuvem, implementação de serviços, etc.) que é utilizado, o comportamento pode mudar.

Isso é verdade para a entrada e significa que, em alguns casos, você deve filtrar pacotes de entrada que são baseados no IP da fonte real. Por outro.

Isso mostra que as conexões entre os PODs e os IPs de serviço que são reescritos para IPs externais de cluster podem ser submetidos a restrições baseadas em ipblock em termos de saída.

Quais são as políticas padrão?

Todo o tráfego de entrada e saída de e para vagens em um espaço para nome é, por padrão, permitido se não houver controles para esse espaço para nome. Você pode alterar o comportamento padrão do namespace usando os seguintes exemplos.

Padrão negar todo o tráfego de entrada

Ao criar uma política de rede que escolhe todos os pods, mas não inclui nenhum tráfego recebido para essas vagens, você pode construir uma política de isolamento de entrada "padrão" e isso é para um espaço para nome.


Isso garante que todos os pods, independentemente de algum outro NetworkPolicy os escolher, sejam isolados para a entrada. Esta regra não se aplica ao isolamento para sair de qualquer vagem.

Padrão negar todo o tráfego de saída

Quando você cria uma policia de rede que escolhe todas as vagens, mas proíbe o tráfego de saída dessas vagens, você pode construir uma política de isolamento de saída "padrão" e isso também é para um espaço para nome.

Conclusão

Este guia foi sobre o uso de DenyServiceExternnalips. Também projetamos uma representação diagramática para fazer nossos usuários entenderem que está funcionando. Nós fornecemos configurações de amostra também.