Kubethor - это веб -приложение Kubernetes Management, созданное с использованием Go and React. Он предоставляет удобный интерфейс для эффективного управления и мониторинга кластеров Kubernetes.
Внешний интерфейс
Бэкэнд
docker pull kubethor/kubethordocker run -p 8080:8080 kubethor/kubethorДля получения более подробной информации о изображении Docker, посетите страницу Kubethor Docker Hub.
Вот обзор структуры проекта:
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/ : содержит статические активы, такие как изображения, шрифты и файл index.html, который служит точкой входа для приложения React.src/ : Основной исходный код для приложения React.assets/ : содержит фронтальные активы, такие как изображения, значки и стили.components/ : содержит многоразовые компоненты React и крючки, используемые на протяжении всего приложения.layouts/ : содержит компоненты макета, которые определяют структуру общих макетов страниц.pages/ : содержит компоненты страницы, которые представляют разные представления или маршруты в приложении.App.jsx : основной компонент приложения, который устанавливает маршрутизацию и отображает макет ядра приложения.package.json : определяет зависимости Node.js и сценарии для проекта Frontend. kubethor-backend/
main.go : основной файл приложения GO, который инициализирует и запускает сервер бэкэнд.go.mod : определяет зависимости модуля GO для бэкэнд -проекта.api/ : содержит реализации API, которые разоблачает бэкэнд -сервер.config/ : содержит файлы конфигурации для различных сред и настройки, используемых бэкэнд.build.sh : сценарий сборки, используемый для компиляции автономного бэкэнд -приложения и управления процессом сборки.k8s.yaml : файл развертывания Kubernetes, в котором указывается, как развернуть бэкэнд -приложение в кластере Kubernetes.Dockerfile : файл сборки Docker, используемый для создания изображения Docker для бэкэнд -приложения.dist/ : каталог, в котором скомпилированная сборка React копируется из папки Frontend после процесса сборки. Это позволяет бэкэнд обслуживать приложение Frontend. Видео:
Клонировать репозиторий:
git clone [email protected]:sassoftware/kubethor.git
cd kubethorНастройка фронта:
Перейдите к каталогу kubethor-frontend :
cd ../kubethor-frontendУстановите зависимости:
npm installЕсли любая ошибка использует:
npm config set registry https://registry.npmjs.org/
npm install --verboseСоздайте приложение React:
npm run buildДля запуска приложения React в среде разработки:
npm run devНастройка бэкэнд:
Перейдите в каталог kubethor-backend :
cd ../kubethor-backend Скопируйте Dist Polder [React App Build для Backend] от kubethor-frontend в каталог kubethor-backend :
cp -r ../kubethor-frontend/dist/ ../kubethor-backendЗагрузите все зависимости:
go mod downloadСоздайте приложение GO:
go build -o kubethor-backendНачните бэкэнд:
Перейдите в backend каталог:
cd kubethor-backendЗапустите приложение GO:
./kubethor-backend Бэкэнд приложение будет работать на http://localhost:8080 .
Начните фронт:
Перейдите к каталогу frontend :
cd ../kubethor-frontendЗапустите сервер разработки:
npm run dev Приложение Frontend будет работать на http://localhost:3000 .
Создайте автономное применение:
Перейдите в каталог kubethor-backend :
cd kubethor-backend Запустите сценарий build.sh :
./build.shПримечание. Сценарий
build.shсоздает приложение React, копирует его в папкуkubethor-backend, а затем встраивает его в исполняемый файл GO. Этот единственный исполняемый файл может быть запущен для обслуживания всего приложения наhttp://localhost:8080без необходимости запускать фронт отдельно.
Запустите автономное приложение:
После запуска build.sh запустите приложение:
./kubethor-backend Приложение будет доступно по адресу http://localhost:8080 .
Поскольку изображение Docker также является типом автономного приложения, убедитесь, что вы копируете последнюю папку dist в папку kubethor-backend . Если вы создаете изображение для развертывания на хост-сервере, обязательно измените API_BASE_URL и API_WS_URL в kubethor-frontend с именем вашего хоста. Сценарий build.sh создает приложение React, копирует его в папку kubethor-backend . Хорошо запустить build.sh прежде чем создавать изображение Docker.
Создайте изображение Docker:
Перейдите в каталог kubethor-backend :
cd kubethor-backendСоздайте изображение Docker:
docker build --no-cache -t kubethor-backend .Запустите контейнер Docker:
Запустите контейнер Docker:
docker run -p 8080:8080 kubethor-backendТолк до реестра Docker:
Войдите в свой реестр Docker:
docker login YOUR_REGISTERY.comОставьте изображение Docker:
docker tag kubethor-backend:latest YOUR_REGISTERY.com/kubethor/kubethor-backend:latestНажмите изображение Docker:
docker push YOUR_REGISTERY.com/kubethor/kubethor-backendРазвернуть в Kubernetes Cluster:
Перейдите в каталог kubethor-backend :
cd kubethor-backend Убедитесь, что у вас есть работа Kubernetes Cluster, а kubectl настроен для взаимодействия с ним.
Обновите файл k8s.yaml в каталоге kubethor-backend со ссылкой на изображение Docker и URL-адрес хоста :
Примените конфигурацию Kubernetes:
kubectl apply -f k8s.yaml -n my-namespaceПосле успешного развертывания перейдите на URL своего хозяина
Примечание. Убедитесь, что у вас есть необходимые разрешения для развертывания ресурсов в ваш кластер Kubernetes. Файл
k8s.yamlсодержит конфигурацию для развертывания приложения Kubethor, включая развертывание, обслуживание, вход и горизонтальный автоскалеров POD и другие ресурсы, необходимые для запуска приложения в среде Kubernetes.
См. Файл support.md для получения информации о том, как открыть проблему против этого репозитория.
Взносы приветствуются! Пожалуйста, прочитайте наши рекомендации для получения дополнительной информации.
Этот проект лицензирован по лицензии Apache 2.0. Смотрите файл лицензии для получения подробной информации.
Для любых запросов или поддержки, пожалуйста, обратитесь к: