2.8 KiB
2.8 KiB
Kubernetes Deployment Manifests
This directory contains Kubernetes manifests for deploying Veza Platform to production.
Structure
k8s/
├── namespace.yaml # Namespace definition
├── configmap.yaml # Configuration values
├── secrets.yaml.example # Example secrets (DO NOT COMMIT REAL SECRETS)
├── ingress.yaml # Ingress configuration
├── backend-api/
│ ├── deployment.yaml # Backend API deployment
│ └── service.yaml # Backend API service
├── frontend/
│ ├── deployment.yaml # Frontend deployment
│ └── service.yaml # Frontend service
├── chat-server/
│ ├── deployment.yaml # Chat server deployment
│ └── service.yaml # Chat server service
└── stream-server/
└── (see veza-stream-server/k8s/production/)
Prerequisites
- Kubernetes cluster 1.24+
- kubectl configured
- Docker images built and pushed to registry
- Secrets configured (see secrets.yaml.example)
Deployment Steps
1. Create Namespace
kubectl apply -f k8s/namespace.yaml
2. Create Secrets
# Copy example and fill in real values
cp k8s/secrets.yaml.example k8s/secrets.yaml
# Edit secrets.yaml with real values
kubectl create secret generic veza-secrets \
--from-env-file=k8s/secrets.yaml \
-n veza-production
3. Create ConfigMap
kubectl apply -f k8s/configmap.yaml
4. Deploy Services
# Backend API
kubectl apply -f k8s/backend-api/
# Frontend
kubectl apply -f k8s/frontend/
# Chat Server
kubectl apply -f k8s/chat-server/
# Stream Server (if separate)
kubectl apply -f veza-stream-server/k8s/production/
5. Create Ingress
kubectl apply -f k8s/ingress.yaml
Verification
# Check pods
kubectl get pods -n veza-production
# Check services
kubectl get svc -n veza-production
# Check ingress
kubectl get ingress -n veza-production
# View logs
kubectl logs -f deployment/veza-backend-api -n veza-production
Scaling
# Scale backend API
kubectl scale deployment veza-backend-api --replicas=5 -n veza-production
# Scale frontend
kubectl scale deployment veza-frontend --replicas=3 -n veza-production
Updates
# Update image
kubectl set image deployment/veza-backend-api \
backend-api=veza-backend-api:v1.1.0 \
-n veza-production
# Rollout status
kubectl rollout status deployment/veza-backend-api -n veza-production
Troubleshooting
# Describe pod
kubectl describe pod <pod-name> -n veza-production
# Get events
kubectl get events -n veza-production --sort-by='.lastTimestamp'
# Port forward for debugging
kubectl port-forward deployment/veza-backend-api 8080:8080 -n veza-production