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