Some checks failed
Deploy NestJS API / build-and-push-deploy (push) Failing after 8s
3.1 KiB
3.1 KiB
Documentação do Kubernetes
Este documento descreve a infraestrutura e configuração do Kubernetes para o projeto Vendaweb-api, utilizando uma abordagem GitOps com ArgoCD e Kustomize.
Estrutura de Diretórios e Arquivos
A configuração do Kubernetes está localizada no diretório k8s/ e segue uma estrutura organizada para facilitar a manutenção e escalabilidade:
k8s/
├── argocd/ # Configurações do ArgoCD
│ └── application-prod.yaml # Definição da Application para o ambiente de produção
├── base/ # Recursos base do Kubernetes (Kustomize Base)
│ ├── configmap.yaml # ConfigMap base
│ ├── deployment.yaml # Deployment base da aplicação
│ ├── kustomization.yaml # Arquivo principal do Kustomize Base
│ ├── secret.yaml # Secret base
│ └── service.yaml # Service base
└── overlays/ # Sobrescritas para diferentes ambientes (Kustomize Overlays)
└── prod/ # Ambiente de produção
├── application-prod.yaml
├── deployment-image-digest-patch.yaml
├── kustomization.yaml
└── service-patch.yaml
Recursos Base (k8s/base)
O diretório base contém as definições padrão dos recursos que são comuns a todos os ambientes.
Deployment (deployment.yaml)
- Nome:
vendaweb-api - Replicas: 15 (Configuração base)
- Imagem:
172.35.0.216/library/vendaweb-api:latest - Porta do Container: 8065
- Resources:
- Requests: CPU 100m, Memory 256Mi
- Limits: CPU 500m, Memory 512Mi
- Probes: Liveness, Readiness e Startup probes configurados no endpoint
/v1/health. - Environment: Configurações carregadas via ConfigMap e Secret.
Service (service.yaml)
- Tipo: ClusterIP
- Porta: 8065 (TCP)
Ambientes (k8s/overlays)
Produção (k8s/overlays/prod)
A sobreposição de produção personaliza a configuração base para o ambiente produtivo.
- Namespace:
vendaweb-prod - Patches: Aplica modificações específicas (ex: digest da imagem, configurações específicas de serviço) via
kustomization.yaml.
Deploy com ArgoCD (k8s/argocd)
O deploy é gerenciado pelo ArgoCD, que sincroniza o estado do cluster com o repositório Git.
Application (application-prod.yaml)
- Nome:
vendaweb-api-prod - Namespace do ArgoCD:
argocd - Origem (Source):
- Repositório:
https://git.simplifiquehc.com.br/simplifique/Vendaweb-api.git - Revisão:
main - Path:
k8s/overlays/prod(Aponta para o overlay de produção)
- Repositório:
- Destino (Destination):
- Cluster:
https://kubernetes.default.svc - Namespace:
vendaweb-api(Nota: O patch definevendaweb-prod, verifique a consistência)
- Cluster:
- Sync Policy: Automatizado com
selfHealativado e criação automática de namespace.
Observação: Certifique-se de que as credenciais do Harbor (imagePullSecrets) estejam corretamente configuradas no namespace de destino para permitir o pull da imagem.