![Aprimorando a segurança da rede Kubernetes com microssegmentação](https://optimuscloud.com.br/wp-content/uploads/2024/04/1712868244_Aprimorando-a-seguranca-da-rede-Kubernetes-com-microssegmentacao-150x150.jpg)
Aprimorando a segurança da rede Kubernetes com microssegmentação
11 de abril de 2024![Rust obtém segurança, suporte WASI 0.2, aumento de produtividade](https://optimuscloud.com.br/wp-content/uploads/2024/04/1712889844_Rust-obtem-seguranca-suporte-WASI-02-aumento-de-produtividade-150x150.jpg)
Rust obtém segurança, suporte WASI 0.2, aumento de produtividade
11 de abril de 2024O Kubernetes oferece muitas vantagens, como utilização eficiente de recursos, autocorreção, escalonamento simples e balanceamento de carga. Mas o acesso seguro e robusto a aplicações num cluster é tão importante como estas funcionalidades, se não mais.
Você tem algumas opções para fornecer aos clientes acesso aos seus serviços, incluindo ClusterIP (o padrão), NodePort, LoadBalancer e controladores de entrada. Cada um tem suas vantagens e desvantagens, e escolher o caminho certo pode ser uma tarefa difícil.
Orientarei você na configuração de um aplicativo simples com o ngrok Kubernetes Ingress Controller. Você verá como essa solução de entrada é fácil de instalar, configurar e provisionar. Você também aprenderá como ele atende à maioria das suas necessidades de entrada, incluindo criptografia e balanceamento de carga, em um único pacote.
O que é entrada do Kubernetes?
Kubernetes Ingress é um objeto API que administra um conjunto de regras de roteamento que controlam como entidades externas acessam serviços em um cluster. Fornece acesso de rede a serviços baseados em host e caminho, usando as regras definidas em um recurso de entrada.
Um controlador de entrada é um balanceador de carga especializado que interpreta e implementa as regras definidas nos recursos de entrada. Existem vários controladores de entrada de terceiros disponíveis, como ngrok, NGINX e HAProxy.
Para usar a entrada, você precisa definir um recurso de entrada que gerencie as regras para rotear o tráfego. Essas regras incluem informações como URL do host, caminhos para serviços de back-end e outros detalhes necessários para fornecer acesso seguro aos recursos dentro do seu cluster.
Exemplo: configurar o controlador de entrada ngrok Kubernetes
Vamos configurar um exemplo de aplicativo Kubernetes com o ngrok Ingress Controller.
Pré-requisitos
Para seguir este tutorial, você precisará de um cluster Kubernetes com kubectl configurado corretamente para gerenciá-lo. O controlador de entrada do ngrok funciona com k8s, minikube e k3s. Os exemplos abaixo usam Docker Desktop no Linux com o cluster K8s integrado. Você também precisará ter o Helm instalado.
Obtenha uma conta ngrok
Primeiro, você precisará de um login do ngrok. Se você ainda não tem um, comece aqui. Preencha seu nome e endereço de e-mail e defina uma senha forte ou autentique usando Google ou GitHub.
Depois de concluir o processo de inscrição, faça login e acesse o painel do ngrok.
Token automático
Em seguida, você precisará do seu token de autenticação. O controlador de entrada usa isso para autenticar no serviço ngrok. Clique em Seu token automático no menu do painel e salve esse valor para mais tarde.
Chave API
Você também precisará de uma chave API. Clique em API no menu do painel.
Clique em Criar chave de APIdê um nome à sua chave e clique em Criar.
Copie o valor da chave antes de aceitá-lo. (Ao contrário do authtoken, você não poderá recuperá-lo mais tarde.)
Instale o controlador de ingresso
Agora é hora de instalar o controlador. Primeiro, vamos criar um novo namespace Kubernetes para este projeto:
$ kubectl create namespace ingress
A ngrok fornece gráficos Helm para o controlador, tornando esta instalação simples e direta. Primeiro, adicione o repositório ngrok ao seu ambiente Helm.
$ helm repo add ngrok https://ngrok.github.io/kubernetes-ingress-controller
Em seguida, defina seu namespace, authtoken e chave de API como variáveis de ambiente.
Por fim, execute o Helm com as variáveis de ambiente e o ngrok-ingress-controller para instalar o ingresso em seu namespace. Aqui está a linha de comando:
Aqui está um exemplo do comando, com a saída:
Agora você instalou seu controlador de entrada. É hora de usá-lo com um serviço.
Crie uma implantação
Para simplificar as coisas neste projeto, usaremos um serviço com um único contêiner que só precisa expor uma única porta. Aqui está um manifesto de implantação do jogo web 2048. Ele implanta o alexwhen/docker-2048
imagem e especifica a porta 80 para acesso. Salve isso em um arquivo chamado 2048-deployment.yaml
:
Certifique-se de que o namespace na linha 5 corresponda ao seu e aplique este YAML ao seu cluster.
kubectl apply -f 2048 -f deployment.yaml
Crie um serviço
Em seguida, é hora de criar um serviço usando o contêiner implantado. Aqui está a definição. Salve-o em um arquivo chamado 2048-service.yaml
:
Configurar a entrada
Finalmente, você precisa configurar o controlador de entrada para seu novo serviço. Antes de fazer isso, volte ao painel do ngrok e crie um domínio. Você usará esse domínio para acessar seu serviço pela Internet. Depois de criar o domínio, o ngrok fornece um endereço de Internet público e um certificado TLS válido, além de fornecer seu serviço disponível na porta 443 por HTTPS. É isso Domínios menu e clique Criar domínio.
Isso aloca um novo domínio para seu aplicativo. Ignore as instruções para criar um túnel; o controlador de entrada criará um túnel quando você o configurar. Seu novo domínio ficará visível:
Neste exemplo, o endereço web do aplicativo é: https://able-cod-widely.ngrok-free.app. Copie seu domínio e use-o para criar a configuração do controlador de entrada. Seu domínio vai para a linha 9, sem o “https://”.
Aplique isto ao seu cluster:
Agora volte ao seu painel e clique no botão Pontos finais cardápio. Você verá um novo endpoint, nomeado de acordo com seu domínio.
Clique no link.
Parabéns! Seu aplicativo está disponível na internet.
Próximas etapas para seu aplicativo Kubernetes e Ingress com ngrok
Você configurou um aplicativo básico com o controlador ngrok Kubernetes Ingress. Com algumas etapas simples e um único documento de entrada para configurar o controlador, você expôs um aplicativo Kubernetes à Internet com um certificado válido. Mas este exemplo do Kubernetes Ingress é apenas o começo; O ngrok oferece balanceamento de carga, proteção DDoS, hosts virtuais baseados em nomes e muito mais. Você pode aprender mais sobre o controlador nesta página do GitHub do ngrok. E como você tem uma conta, você pode experimentar mais o ngrok em seu painel hoje mesmo.
A postagem Ingress: Exemplo de Kubernetes com ngrok apareceu pela primeira vez em The New Stack.