No artigo anterior, instalamos o CNI no cluster Kubernetes, configuramos o network load balancer MetalLB e implementamos um Ingress Controller. No entanto, ainda não conseguimos obter um endereço HTTPS ou expor nossos serviços na internet sem associar um domínio. Nesta segunda parte, nosso objetivo é resolver essas questões, começando pela obtenção de certificados ACME. Para isso, utilizaremos o Certificate Manager, que gerencia automaticamente os certificados no cluster. Além disso, para automatizar a criação de domínios para cada aplicação, utilizaremos o External-DNS. Por fim, vamos configurar o Argo CD, validando assim os dois add-ons mencionados anteriormente. Lembre-se de que, para seguir este artigo, é necessário ter um cluster Kubernetes já configurado, um domínio registrado, e acesso ao registro desse domínio.
No primeiro artigo, utilizamos um Lenovo Thinkpad T470. Devido à limitação de memória, migramos o servidor Proxmox para um hardware mais robusto, com 32 GB de RAM, um Xeon E5 de 2015 e um sonho - brincadeiras à parte. Esta atualização foi necessária para criar um cluster Kubernetes com alta disponibilidade, mesmo que virtualizado, pois é um único host físico. O propósito deste artigo é demonstrar os add-ons essenciais para o funcionamento básico de um cluster Kubernetes. O artigo será dividido em duas partes de um webserver nginx: uma para HTTP e a segunda [link em breve] para HTTPS. Mas antes de entrar no assunto principal, precisamos falar dos requisitos.
Indo direto ao ponto, o motivo de escrita desse artigo, convém a curiosidade de como possuir uma IA assim como o ChatGPT instalado localmente, sem a necessidade de pagar pelo serviço. Isso será possibilitado por modelos de IA, opensource, como o Vicuna, do qual iremos utilizar no lab desse artigo. Localmente, seja na workstation ou servidor, poderá testar diversos desses modelos open source, utilizando a web-ui da qual iremos instalar, porém de certa forma estando limitado a quantidade memoria RAM e a GPU/VRAM disponível.
No início do ano queria iniciar os estudos em Kubernetes e para isso precisaria subir um cluster local ou na cloud, e com isso encontrei dois problemas, subir o cluster na cloud teria um custo mesmo que seja mínimo na Google cloud conforme esse tópico do GitHub.
Então a solução é subir um cluster localmente, e pensei em duas opções, subir o cluster no meu computador principal desktop, ou no meu notebook, bom já não queria colocar nenhuma carga de trabalho no meu desktop agora com Windows, e não mais Linux, o que não ficaria muito legal, a segunda opção foi subir o cluster em um Proxmox dentro do notebook Thinkpad T470, visto que queria realizar testes e aprendizado em cima do Proxmox, vi que não precisaria de um Xeon, para construir um homelab mesmo que pequeno, que será valioso para aprendizado.