Kubethor est une application Web de gestion de Kubernetes construite à l'aide de Go and React. Il fournit une interface conviviale pour gérer et surveiller efficacement les clusters Kubernetes.
L'extrémité avant
Backend
docker pull kubethor/kubethordocker run -p 8080:8080 kubethor/kubethorPour plus de détails sur l'image Docker, visitez la page Kubethor Docker Hub.
Voici un aperçu de la structure du projet:
kubethor/
├── kubethor-frontend/ # React frontend
│ ├── public/ # Public assets
│ ├── src/ # React source code
│ ├── assets # Contains frontend assets
│ ├── components # Contains commonly used hooks and components
│ ├── layouts # Contains common page layouts
│ ├── pages # Contains pages component
│ ├── App.jsx
│ └── ... # Other frontend files
│ ├── package.json # Node.js dependencies
│ └── ... # Other frontend files
│
├── kubethor-backend/ # Go backend
│ ├── main.go # Main Go application
│ ├── go.mod # Go module dependencies
│ ├── api # Contains api's
│ ├── config # Contains configuration
│ ├── build.sh # Build script for standalone app
│ ├── k8s.yaml # Kubernetes deployment file
│ ├── Dockerfile # Kubernetes deployment file
│ ├── dist # Compiled React build (Need to copy from frontend folder after build)
│ └── ... # Other backend files and folders
│
├── README.md # Project README
└── ... # Other project files
kubethor-frontend/
public/ : contient des actifs statiques tels que des images, des polices et le fichier index.html qui sert de point d'entrée pour l'application React.src/ : Le code source principal de l'application React.assets/ : contient des actifs frontaux tels que des images, des icônes et des styles.components/ : Contient des composants et des crochets réutilisables utilisés dans l'application.layouts/ : contient des composants de disposition qui définissent la structure des dispositions de page communes.pages/ : Contient des composants de page qui représentent différentes vues ou routes dans l'application.App.jsx : le composant d'application principal qui configure le routage et rend la disposition principale de l'application.package.json : définit les dépendances et scripts node.js pour le projet Frontend. kubethor-backend/
main.go : le fichier d'application principal GO qui initialise et exécute le serveur backend.go.mod : définit les dépendances du module GO pour le projet backend.api/ : contient les implémentations API que le serveur backend expose.config/ : contient des fichiers de configuration pour différents environnements et paramètres utilisés par le backend.build.sh : un script de construction utilisé pour compiler l'application backend autonome et gérer le processus de construction.k8s.yaml : le fichier de déploiement de Kubernetes qui spécifie comment déployer l'application backend sur un cluster Kubernetes.Dockerfile : le fichier docker build utilisé pour créer une image docker pour l'application backend.dist/ : Un répertoire où la construction React compilée est copiée à partir du dossier Frontend après le processus de construction. Cela permet au backend de servir l'application Frontend. Vidéo:
Clone le référentiel:
git clone [email protected]:sassoftware/kubethor.git
cd kubethorConfiguration du frontend:
Accédez au répertoire kubethor-frontend :
cd ../kubethor-frontendInstallez les dépendances:
npm installSi une erreur utilise:
npm config set registry https://registry.npmjs.org/
npm install --verboseCréez l'application React:
npm run buildPour l'exécution de l'application React dans l'environnement de développement:
npm run devConfiguration du backend:
Accédez au répertoire kubethor-backend :
cd ../kubethor-backend Copier le dossier DIST [REACT App Build to Backend] de kubethor-frontend dans kubethor-backend Directory:
cp -r ../kubethor-frontend/dist/ ../kubethor-backendTéléchargez toutes les dépendances:
go mod downloadConstruisez l'application GO:
go build -o kubethor-backendDémarrez le backend:
Accédez au répertoire backend :
cd kubethor-backendExécutez l'application Go:
./kubethor-backend L'application backend s'exécutera sur http://localhost:8080 .
Démarrez le frontend:
Accédez au répertoire frontend :
cd ../kubethor-frontendDémarrer le serveur de développement:
npm run dev L'application Frontend s'exécutera sur http://localhost:3000 .
Construisez l'application autonome:
Accédez au répertoire kubethor-backend :
cd kubethor-backend Exécutez le script build.sh :
./build.shRemarque: le script
build.shconstruit l'application React, le copie dans le dossierkubethor-backend, puis l'intégre dans l'exécutable Go. Cet exécutable unique peut être exécuté pour servir toute l'application surhttp://localhost:8080sans avoir besoin d'exécuter le frontend séparément.
Exécutez l'application autonome:
Après avoir exécuté build.sh , démarrez l'application:
./kubethor-backend L'application sera disponible sur http://localhost:8080 .
Comme l'image Docker est également un type d'application autonome, assurez-vous de copier le dernier dossier dist dans le dossier kubethor-backend . Si vous construisez l'image à déployer sur un serveur hôte, assurez-vous de modifier l' API_BASE_URL et API_WS_URL dans kubethor-frontend avec votre nom d'hôte. Le script build.sh construit l'application React, le copie dans le dossier kubethor-backend . Il est bon d'exécuter build.sh avant de construire votre image Docker.
Construisez l'image Docker:
Accédez au répertoire kubethor-backend :
cd kubethor-backendConstruisez l'image Docker:
docker build --no-cache -t kubethor-backend .Exécutez le conteneur Docker:
Exécutez le conteneur Docker:
docker run -p 8080:8080 kubethor-backendPush to Docker Registry:
Connectez-vous à votre registre Docker:
docker login YOUR_REGISTERY.comMarquez l'image Docker:
docker tag kubethor-backend:latest YOUR_REGISTERY.com/kubethor/kubethor-backend:latestPoussez l'image Docker:
docker push YOUR_REGISTERY.com/kubethor/kubethor-backendDéployer dans le cluster Kubernetes:
Accédez au répertoire kubethor-backend :
cd kubethor-backend Assurez-vous que vous avez un cluster Kubernetes en cours d'exécution et kubectl configuré pour interagir avec lui.
Mettez à jour le fichier k8s.yaml dans le répertoire kubethor-backend avec votre lien d'image Docker et URL de l'hôte :
Appliquer la configuration de Kubernetes:
kubectl apply -f k8s.yaml -n my-namespaceAprès un déploiement réussi, accédez à votre URL de votre hôte
Remarque: Assurez-vous que vous disposez des autorisations nécessaires pour déployer des ressources à votre cluster Kubernetes. Le fichier
k8s.yamlcontient la configuration de déploiement de l'application Kubethor, y compris le déploiement, le service, l'entrée et le POD Horizontal Pod Autoscaler et d'autres ressources nécessaires à l'application pour exécuter dans un environnement Kubernetes.
Voir le fichier support.md pour obtenir des informations sur la façon d'ouvrir un problème contre ce référentiel.
Les contributions sont les bienvenues! Veuillez lire nos directives contributives pour plus d'informations.
Ce projet est concédé sous licence Apache 2.0. Voir le fichier de licence pour plus de détails.
Pour toute demande ou soutien, veuillez contacter: