commit inicial do projeto

This commit is contained in:
Júnior
2025-05-23 10:44:32 -03:00
commit 8f04473c0b
106 changed files with 5673 additions and 0 deletions

131
docs/kubernetes.md Normal file
View File

@ -0,0 +1,131 @@
# ☁️ **Deploy no Kubernetes - DEJO Node**
## 📌 **Visão Geral**
Este documento descreve como implantar e gerenciar o **DEJO Node** em um ambiente Kubernetes, garantindo **alta disponibilidade, escalabilidade e monitoramento eficiente**.
---
## **1⃣ Estrutura de Deploy**
### **1.1 - Componentes no Kubernetes**
- **Deployment**: Gerencia os pods do DEJO Node.
- **Service**: Exposição dos serviços via ClusterIP, NodePort ou LoadBalancer.
- **ConfigMap**: Armazena configurações como variáveis de ambiente.
- **PersistentVolume (PV) e PersistentVolumeClaim (PVC)**: Garante persistência dos dados da blockchain.
- **Horizontal Pod Autoscaler (HPA)**: Ajusta automaticamente a quantidade de pods com base na carga.
---
## **2⃣ Configuração do Deployment**
📌 **Exemplo de `deployment.yaml`**:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: dejo-node
spec:
replicas: 3
selector:
matchLabels:
app: dejo-node
template:
metadata:
labels:
app: dejo-node
spec:
containers:
- name: dejo-node
image: dejo/node:latest
ports:
- containerPort: 8545 # Porta RPC
- containerPort: 30303 # Porta P2P
envFrom:
- configMapRef:
name: dejo-config
volumeMounts:
- name: blockchain-storage
mountPath: /data
volumes:
- name: blockchain-storage
persistentVolumeClaim:
claimName: dejo-pvc
```
---
## **3⃣ Exposição do Serviço**
📌 **Exemplo de `service.yaml`**:
```yaml
apiVersion: v1
kind: Service
metadata:
name: dejo-service
spec:
type: LoadBalancer
ports:
- port: 8545
targetPort: 8545
protocol: TCP
name: rpc
- port: 30303
targetPort: 30303
protocol: TCP
name: p2p
selector:
app: dejo-node
```
---
## **4⃣ Escalabilidade com HPA**
📌 **Exemplo de `hpa.yaml`**:
```yaml
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: dejo-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: dejo-node
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
```
---
## **5⃣ Monitoramento e Logging**
### **5.1 - Monitoramento com Prometheus & Grafana**
📌 **Exemplo de configuração do Prometheus**:
```yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: dejo-monitor
spec:
selector:
matchLabels:
app: dejo-node
endpoints:
- port: metrics
interval: 10s
```
### **5.2 - Logging com Fluentd e Elastic Stack**
- Logs coletados com **Fluentd** e enviados para **Elasticsearch**.
- Dashboards criados no **Kibana** para análise em tempo real.
---
📌 **Este documento será atualizado conforme novas estratégias forem implementadas.**
🚀 **DEJO Node: Kubernetes otimizado para escalabilidade e resiliência!** 🔥