Il sistema InsightLearn è ora completamente configurato per l'auto-avvio al riavvio del server.
Avvia automaticamente il cluster Kubernetes Minikube con Podman.
Configurazione:
- Driver:
podman - Runtime:
cri-o - RAM:
9GB(9216MB) - CPU:
6 cores - User:
mpasqui
File: /etc/systemd/system/minikube-start.service
Comandi utili:
# Verifica stato
sudo systemctl status minikube-start
# Avvia manualmente (se non già avviato)
sudo systemctl start minikube-start
# Ferma
sudo systemctl stop minikube-start
# Log
sudo journalctl -u minikube-start -fAvvia automaticamente i port-forward HTTP (80) e HTTPS (443) verso i pod Kubernetes.
Configurazione:
- Ports:
80:80(HTTP),443:443(HTTPS) - Target:
service/api-servicein namespaceinsightlearn - Listening:
0.0.0.0(tutte le interfacce) - Dependencies: Avvia dopo
minikube-start.service - Auto-wait: Attende che i pod siano
Readyprima di inoltrare
File: /etc/systemd/system/insightlearn-port-forward.service
Comandi utili:
# Verifica stato
sudo systemctl status insightlearn-port-forward
# Riavvia (se necessario)
sudo systemctl restart insightlearn-port-forward
# Log real-time
sudo journalctl -u insightlearn-port-forward -fTunnel Cloudflare per esporre il sito su https://www.insightlearn.cloud
Installazione:
/tmp/setup-permanent-tunnel.shComandi utili:
# Verifica stato
sudo systemctl status cloudflared-tunnel
# Log
sudo journalctl -u cloudflared-tunnel -fAl riavvio del server, la sequenza è:
- Sistema Operativo (Rocky Linux 10)
- Podman (container runtime)
- minikube-start.service (Kubernetes cluster)
- Avvia minikube
- Carica tutti i pod (API, SQL Server, MongoDB, Redis, Ollama, ecc.)
- insightlearn-port-forward.service (Exposure dei servizi)
- Attende che
api-servicesiaReady - Avvia port-forward su porte 80 e 443
- Attende che
- Sito accessibile su http://localhost e https://192.168.1.114
| Endpoint | Descrizione | Status |
|---|---|---|
| http://localhost | API HTTP | ✅ |
| https://localhost | API HTTPS | ✅ |
| http://192.168.1.114 | API HTTP (LAN) | ✅ |
| https://192.168.1.114 | API HTTPS (LAN) | ✅ |
curl http://localhost/health
# Output: {"application":"InsightLearn API","version":"1.4.29","status":"running"}| Pod/Service | Replicas | Status | Port |
|---|---|---|---|
| insightlearn-api | 1 | Running | 80, 443 |
| mssql-server | 1 | Running | 1433 |
| mongodb | 1 | Running | 27017 |
| redis | 1 | Running | 6379 |
| ollama | 1 | Running | 11434 |
| elasticsearch | 1 | Init:CrashLoopBackOff* | 9200 |
*Elasticsearch non critico per il funzionamento dell'applicazione
# Status completo cluster
kubectl get pods -n insightlearn
kubectl get svc -n insightlearn
kubectl get deployments -n insightlearn
# Log API pod
kubectl logs -f deployment/insightlearn-api -n insightlearn
# Descrizione pod
kubectl describe pod -l app=insightlearn-api -n insightlearn
# Restart API deployment
kubectl rollout restart deployment/insightlearn-api -n insightlearn# Status
minikube status
# Dashboard (aprire in browser)
minikube dashboard
# SSH nel cluster
minikube ssh
# IP del cluster
minikube ip# HTTP + HTTPS contemporanee
sudo /home/mpasqui/.local/bin/kubectl port-forward \
-n insightlearn --address 0.0.0.0 \
service/api-service 80:80 443:443
# Solo HTTP
kubectl port-forward -n insightlearn service/api-service 8080:80
# Solo HTTPS
kubectl port-forward -n insightlearn service/api-service 8443:443Posizione: nginx/certs/
I certificati TLS sono self-signed e utilizzati per HTTPS locale:
tls.crt- Certificato pubblicotls.key- Chiave privata
I certificati sono già configurati in Kubernetes:
kubectl get secrets -n insightlearn | grep tls
# api-tls-cert
# ollama-tlsPorte aperte:
firewall-cmd --list-all
# Services: http, https, ssh
# Ports: 3389/tcp, 8080/tcp1. Verifica servizi:
sudo systemctl status minikube-start
sudo systemctl status insightlearn-port-forward2. Verifica minikube:
minikube status
# Dovrebbe mostrare: Running3. Verifica pod:
kubectl get pods -n insightlearn
# Tutti dovrebbero essere Running o Completed4. Verifica port-forward:
ps aux | grep "kubectl port-forward"
# Dovrebbero esserci processi attivi
# Verifica porte in ascolto
ss -tlnp | grep -E ":(80|443) "5. Test manuale:
curl http://localhost/health
curl -k https://localhost/health# Verifica log
sudo journalctl -u minikube-start -n 50
# Riavvia manualmente
minikube stop
minikube start --driver=podman --container-runtime=cri-o --memory=9216 --cpus=6# Verifica che i pod siano pronti
kubectl get pods -n insightlearn
# Riavvia servizio
sudo systemctl restart insightlearn-port-forward
# Avvia manualmente
sudo /home/mpasqui/.local/bin/kubectl port-forward \
-n insightlearn --address 0.0.0.0 \
service/api-service 80:80 443:443# Verifica che localhost:80 risponda
curl http://localhost/health
# Se localhost funziona, il problema è Cloudflare Tunnel
# Configura tunnel permanente:
/tmp/setup-permanent-tunnel.sh#!/bin/bash
echo "=== InsightLearn Status Check ==="
echo ""
echo "1. Minikube:"
minikube status | head -5
echo ""
echo "2. Kubernetes Pods:"
kubectl get pods -n insightlearn
echo ""
echo "3. Services:"
kubectl get svc -n insightlearn
echo ""
echo "4. Port-Forward Active:"
ps aux | grep "kubectl port-forward" | grep -v grep
echo ""
echo "5. Listening Ports:"
ss -tlnp | grep -E ":(80|443|8080) "
echo ""
echo "6. Health Check:"
curl -s http://localhost/health && echo " ✅"
curl -s -k https://localhost/health && echo " ✅"
echo ""Salva come /home/mpasqui/check-status.sh e rendi eseguibile:
chmod +x /home/mpasqui/check-status.shFile critici da backuppare:
/home/mpasqui/.kube/config
/home/mpasqui/insightlearn_WASM/InsightLearn_WASM/k8s/
/etc/systemd/system/minikube-start.service
/etc/systemd/system/insightlearn-port-forward.service
/etc/systemd/system/cloudflared-tunnel.service
/home/mpasqui/.cloudflared/
nginx/certs/
- Clona repository:
git clone https://github.com/marypas74/InsightLearn_WASM.git
cd InsightLearn_WASM-
Copia file di backup in posizioni corrette
-
Installa servizi:
sudo bash /tmp/install-autostart-services.sh- Riavvia server:
sudo reboot- Password Sudo: Conservata solo in memoria, non su disco (SS1-Temp1234)
- Kubernetes Secrets: Password generate e salvate in
k8s/01-secrets.yaml - Auto-Start: Tutti i servizi si avviano automaticamente al boot
- Resilienza: I servizi hanno
Restart=alwaysconfigurato - Logs: Tutti i log sono disponibili tramite
journalctl
# Verifica stato completo
sudo systemctl status minikube-start insightlearn-port-forward
# Riavvia tutto
sudo systemctl restart minikube-start insightlearn-port-forward
# Test applicazione
curl http://localhost/health
# Logs real-time
sudo journalctl -u insightlearn-port-forward -f
# Accesso dashboard Kubernetes
minikube dashboard
# Status pod
kubectl get pods -n insightlearn -w- Repository: https://github.com/marypas74/InsightLearn_WASM
- Issues: https://github.com/marypas74/InsightLearn_WASM/issues
- Email: marcello.pasqui@gmail.com
Versione: 1.4.29 Data Configurazione: 2025-11-04 Sistema: Rocky Linux 10 + Podman + Kubernetes (Minikube)