Expor um aplicativo Kubernetes para a internet ou dentro de uma Nuvem Privada Virtual (VPC) pode ser um processo complexo. Neste artigo, vamos discutir as principais opções e recomendações para exibir seu aplicativo Kubernetes para o mundo exterior.

Controlador de Cloud Legacy

O controlador de cloud legacy é uma opção para criar um balanceador de carga de cloud usando o controlador de cloud manager, que está atado ao ciclo de lançamento do Kubernetes. No entanto, essa abordagem tem limitações, como a necessidade de adicionar todos os trabalhadores do Kubernetes ao grupo de destino e usar portos de node, o que adiciona um salto de rede extra. Essa abordagem legada é depreciada e apenas recebe correções de segurança e bugs.

Controladores de Fornecedor de Cloud

Os fornecedores de cloud, como a AWS, desenvolveram seus próprios controladores para lidar com lógica de cloud específica. Por exemplo, a AWS tem o controlador de balanceador de carga AWS, que pode criar balanceadores de carga e ingressos. Esse controlador não está atado ao ciclo de lançamento do Kubernetes, permitindo que os fornecedores de cloud desenvolvam e lançem novos recursos rapidamente.

Opções de Ingress

Existem dois tipos de ingressos: aqueles criados usando o controlador de balanceador de carga AWS e controladores de ingress tradicionais como o Nginx. O controlador de balanceador de carga AWS cria um balanceador de carga de aplicação de Camada 7 que entende protocolo HTTP e pode rotear solicitações com base em cabeçalhos de host, caminhos de HTTP ou verbos. Já os controladores de ingress tradicionais, como o Nginx, criam um balanceador de carga de rede de Camada 4 que roteia solicitações través do pod do controlador de ingress.

Segurança e TLS

Para segurar seu aplicativo com TLS e HTTPS, você pode obter um certificado TLS da AWS Certificate Manager e attachá-lo usando anotações. Alternativamente, você pode implantar um pod de controlador Nginx e usar o Cert Manager para obter e renovar certificados do Let’s Encrypt.

Implantação e Métricas

Você pode implantar o pod de controlador Nginx e coletar métricas do Prometheus em um lugar para todos os aplicativos. Com o controlador de balanceador de carga AWS, você precisaria obter métricas do site da AWS.

Conclusão

O artigo conclui que usar o controlador de balanceador de carga AWS e criar um balanceador de carga de rede para o controlador de ingress Nginx em modo IP é a abordagem recomendada.

Criar uma Política de Assunção e Função de IAM

Para criar um aplicativo Kubernetes exposto para a internet, você precisará criar uma política de assunção e uma função de IAM. Isso pode ser feito criando uma política de assunção usando um recurso de dados, criando uma função de IAM e anexando a política de assunção a ela. Em seguida, você pode implantar o controlador de balanceador de carga AWS usando um gráfico Helm.

Implantar o Aplicativo

Para implantar o aplicativo, você precisará criar uma implantação e um serviço. Em seguida, você pode usar a anotação do tipo de balanceador de carga para usar o controlador de balanceador de carga AWS. Você também pode optar por usar o modo IP em vez do modo de instância.

Criar um Ingress

Para criar um ingress, você precisará criar um recurso de ingress e usar a classe de ingress ALB, que é fornecida pelo controlador de balanceador de carga AWS. Certifique-se de que o aplicativo tenha uma verificação de saúde que retorne um código de status 200.

Testar o Ingress

Para testar o ingress, você pode criar um tester que use o mesmo host e modo IP que antes. O aplicativo load balancer será criado pelo recurso de ingress e levará alguns minutos para ser provisionado. Em seguida, você pode verificar se o aplicativo está funcionando corretamente usando um navegador.

Obter um Certificado TLS

Para segurar o ingress, você precisará obter um certificado TLS da AWS Certificate Manager. Em seguida, você pode criar um registro CNAME em Route 53 para validar o certificado.

**Cri

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *