- Kubernetes cluster (GKE, EKS, or local with minikube)
- kubectl configured
- Helm 3.x installed
- Docker for building images
cd complete/
docker build -t fl-platform:latest .helm install fl-platform helm/fl-platform \
--namespace fl-system \
--create-namespacekubectl get pods -n fl-system
kubectl get svc -n fl-systemCreate custom-values.yaml:
replicaCount:
client: 10
config:
numRounds: 50
learningRate: 0.001
privacy:
enabled: true
epsilon: 3.0Deploy with custom values:
helm upgrade fl-platform helm/fl-platform \
-f custom-values.yaml \
--namespace fl-systemkubectl port-forward svc/grafana 3000:3000 -n fl-systemVisit http://localhost:3000 (admin/admin)
kubectl port-forward svc/mlflow 5000:5000 -n fl-systemVisit http://localhost:5000
kubectl port-forward svc/prometheus 9090:9090 -n fl-systemVisit http://localhost:9090
kubectl scale deployment fl-client --replicas=20 -n fl-systemHPA is configured by default:
- Min replicas: 2
- Max replicas: 20
- Target CPU: 70%
- Target Memory: 80%
# Server logs
kubectl logs -f deployment/fl-server -n fl-system
# Client logs
kubectl logs -f deployment/fl-client -n fl-system
# MLflow logs
kubectl logs -f statefulset/mlflow -n fl-systemPods not starting:
kubectl describe pod <pod-name> -n fl-systemOut of resources:
kubectl top nodes
kubectl top pods -n fl-systemhelm uninstall fl-platform -n fl-system
kubectl delete namespace fl-system