Este projeto envolve o design e a implementação de uma aplicação baseada em microsserviços no Kubernetes (K8s) usando a AWS (EKS). O projeto demonstra vários aspectos de implantação, gerenciamento e monitoramento de microsserviços em um ambiente de nuvem.
Identificamos os componentes de nossa aplicação e os organizamos em microsserviços separados. A aplicação inclui:
Serviço de Imagens Backend Serviço Frontend Cada serviço tem sua própria imagem Docker e configuração de implantação no Kubernetes.
Configuramos funções e políticas IAM para o cluster. Provisionamos recursos necessários como VPC, sub-redes e grupos de segurança. Implantação de Microsserviços:
Configuramos serviços e implantações para cada microsserviço. Usamos ConfigMaps e Secrets do Kubernetes para gerenciar variáveis de ambiente e dados sensíveis.
Configuramos Autoscalers Horizontais de Pods (HPA) para gerenciar o número de réplicas de pods com base no uso de CPU. Cluster Autoscaler: Habilitamos o Cluster Autoscaler para escalonamento dinâmico de nós de trabalho no cluster EKS.
Configuramos atualizações rolling para implantações para garantir implantações sem tempo de inatividade.
Terraform: Ferramenta de Infrastructure as Code (IaC) para provisionamento e gerenciamento de recursos AWS. Helm: Gerenciador de pacotes Kubernetes para implantação de charts do Helm. Docker: Plataforma de containerização para empacotamento de microsserviços. Kubernetes: Plataforma de orquestração para gerenciamento de aplicações containerizadas. AWS CloudWatch: Serviço de monitoramento e observabilidade para recursos e aplicações AWS.
Configuração de autoscaling para lidar com cargas variáveis. Implementação de monitoramento e logging para melhor observabilidade. Gerenciamento de dados sensíveis usando Secrets do Kubernetes.
Conta AWS AWS CLI configurado Kubectl instalado Terraform instalado Helm instalado
k config get-contexts
k config use-context
aws eks update-kubeconfig --name
k create namespace
O.B.S k = um alias para kubectl
kubectl apply -f docker-secret.yml -n kubectl apply -f ingress.yml -n kubectl apply -f secret.yml -n
helm install backend-images ./charts/backend-images helm install frontend ./charts/frontend
kubectl delete -f docker-secret.yml -n dev kubectl delete -f ingress.yml -n dev kubectl delete -f secret.yml -n dev
helm uninstall gataria-backend-images -n helm uninstall gataria-frontend -n helm uninstall ingress-nginx -n ingress-nginx
terraform destroy