Kubethor adalah aplikasi web manajemen Kubernetes yang dibangun menggunakan Go and React. Ini menyediakan antarmuka yang ramah pengguna untuk mengelola dan memantau cluster Kubernetes secara efisien.
Frontend
Backend
docker pull kubethor/kubethordocker run -p 8080:8080 kubethor/kubethorUntuk detail lebih lanjut tentang gambar Docker, kunjungi halaman Hub Kubethor Docker.
Berikut gambaran struktur proyek:
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/ : Berisi aset statis seperti gambar, font, dan file index.html yang berfungsi sebagai titik masuk untuk aplikasi React.src/ : Kode sumber utama untuk aplikasi React.assets/ : Berisi aset frontend seperti gambar, ikon, dan gaya.components/ : Berisi komponen reaksi yang dapat digunakan kembali dan kait yang digunakan di seluruh aplikasi.layouts/ : Berisi komponen tata letak yang menentukan struktur tata letak halaman umum.pages/ : Berisi komponen halaman yang mewakili tampilan atau rute yang berbeda dalam aplikasi.App.jsx : Komponen aplikasi utama yang mengatur perutean dan membuat tata letak inti aplikasi.package.json : Menentukan dependensi dan skrip Node.js untuk proyek Frontend. kubethor-backend/
main.go : File aplikasi GO utama yang menginisialisasi dan menjalankan server backend.go.mod : Menentukan dependensi modul GO untuk proyek backend.api/ : Berisi implementasi API yang diekspos server backend.config/ : Berisi file konfigurasi untuk lingkungan dan pengaturan yang berbeda yang digunakan oleh backend.build.sh : Skrip build yang digunakan untuk menyusun aplikasi backend mandiri dan mengelola proses pembuatan.k8s.yaml : File penyebaran Kubernetes yang menentukan cara menggunakan aplikasi backend pada cluster Kubernetes.Dockerfile : File build Docker yang digunakan untuk membuat gambar Docker untuk aplikasi backend.dist/ : Direktori tempat pembuatan reaksi yang dikompilasi disalin dari folder frontend setelah proses pembuatan. Ini memungkinkan backend untuk melayani aplikasi Frontend. Video:
Klon Repositori:
git clone [email protected]:sassoftware/kubethor.git
cd kubethorPengaturan Frontend:
Arahkan ke direktori kubethor-frontend :
cd ../kubethor-frontendInstal dependensi:
npm installJika ada penggunaan kesalahan:
npm config set registry https://registry.npmjs.org/
npm install --verboseBangun Aplikasi React:
npm run buildUntuk menjalankan aplikasi bereaksi di lingkungan pengembangan:
npm run devPengaturan Backend:
Arahkan ke direktori kubethor-backend :
cd ../kubethor-backend Salin Folder Dist [React App Build to Backend] dari kubethor-frontend ke direktori kubethor-backend :
cp -r ../kubethor-frontend/dist/ ../kubethor-backendUnduh semua dependensi:
go mod downloadBangun Aplikasi GO:
go build -o kubethor-backendMulailah backend:
Arahkan ke direktori backend :
cd kubethor-backendJalankan aplikasi Go:
./kubethor-backend Aplikasi Backend akan berjalan di http://localhost:8080 .
Mulai frontend:
Arahkan ke Direktori frontend :
cd ../kubethor-frontendMulai server pengembangan:
npm run dev Aplikasi Frontend akan berjalan di http://localhost:3000 .
Bangun aplikasi mandiri:
Arahkan ke direktori kubethor-backend :
cd kubethor-backend Jalankan skrip build.sh :
./build.shCatatan: Skrip
build.shmembangun aplikasi React, menyalinnya ke folderkubethor-backend, dan kemudian menanamkannya ke GO Executable. Single yang dapat dieksekusi ini dapat dijalankan untuk melayani seluruh aplikasi dihttp://localhost:8080tanpa perlu menjalankan frontend secara terpisah.
Jalankan aplikasi mandiri:
Setelah menjalankan build.sh , mulai aplikasi:
./kubethor-backend Aplikasi akan tersedia di http://localhost:8080 .
Karena gambar Docker juga merupakan jenis aplikasi mandiri, pastikan Anda menyalin folder dist terbaru ke folder kubethor-backend . Jika Anda membangun gambar untuk digunakan di server host, pastikan untuk mengubah API_BASE_URL dan API_WS_URL di kubethor-frontend dengan nama host Anda. Script build.sh membangun aplikasi React, menyalinnya ke folder kubethor-backend . Adalah baik untuk menjalankan build.sh sebelum membangun gambar Docker Anda.
Bangun gambar Docker:
Arahkan ke direktori kubethor-backend :
cd kubethor-backendBangun gambar Docker:
docker build --no-cache -t kubethor-backend .Jalankan wadah Docker:
Jalankan wadah Docker:
docker run -p 8080:8080 kubethor-backendPush ke Docker Registry:
Masuk ke Docker Registry Anda:
docker login YOUR_REGISTERY.comTandai gambar Docker:
docker tag kubethor-backend:latest YOUR_REGISTERY.com/kubethor/kubethor-backend:latestDorong gambar Docker:
docker push YOUR_REGISTERY.com/kubethor/kubethor-backendDeploy ke kluster Kubernetes:
Arahkan ke direktori kubethor-backend :
cd kubethor-backend Pastikan Anda memiliki cluster Kubernetes yang berjalan dan kubectl dikonfigurasi untuk berinteraksi dengannya.
Perbarui file k8s.yaml di direktori kubethor-backend dengan tautan gambar Docker Anda dan URL host :
Terapkan konfigurasi Kubernetes:
kubectl apply -f k8s.yaml -n my-namespaceSetelah penempatan yang berhasil, buka URL tuan rumah Anda
Catatan: Pastikan Anda memiliki izin yang diperlukan untuk menggunakan sumber daya ke kluster Kubernetes Anda. File
k8s.yamlberisi konfigurasi untuk menyebarkan aplikasi Kubethor, termasuk penyebaran, layanan, ingress, dan autoscaler pod horizontal dan sumber daya lain yang diperlukan untuk aplikasi dijalankan di lingkungan Kubernetes.
Lihat file dukungan.MD untuk informasi tentang cara membuka masalah terhadap repositori ini.
Kontribusi dipersilakan! Silakan baca pedoman yang berkontribusi kami untuk informasi lebih lanjut.
Proyek ini dilisensikan di bawah lisensi Apache 2.0. Lihat file lisensi untuk detailnya.
Untuk pertanyaan atau dukungan apa pun, hubungi: