Kubethorは、Go and Reactを使用して構築されたKubernetes管理Webアプリケーションです。 Kubernetesクラスターを効率的に管理および監視するためのユーザーフレンドリーなインターフェイスを提供します。
フロントエンド
バックエンド
docker pull kubethor/kubethordocker run -p 8080:8080 kubethor/kubethorDocker画像の詳細については、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/ :Reactアプリケーションのエントリポイントとして機能する画像、フォント、index.htmlファイルなどの静的資産が含まれています。src/ :Reactアプリケーションの主なソースコード。assets/ :画像、アイコン、スタイルなどのフロントエンド資産が含まれています。components/ :アプリケーション全体で使用される再利用可能な反応コンポーネントとフックが含まれています。layouts/ :一般的なページレイアウトの構造を定義するレイアウトコンポーネントが含まれています。pages/ :アプリケーション内のさまざまなビューまたはルートを表すページコンポーネントが含まれています。App.jsx :ルーティングをセットアップし、アプリケーションのコアレイアウトをレンダリングするメインアプリケーションコンポーネント。package.json :FrontEndプロジェクトのnode.js依存関係とスクリプトを定義します。 kubethor-backend/
main.go :バックエンドサーバーを初期化および実行するメインGOアプリケーションファイル。go.mod :バックエンドプロジェクトのGOモジュール依存関係を定義します。api/ :バックエンドサーバーが公開するAPI実装が含まれています。config/ :バックエンドで使用されるさまざまな環境と設定の構成ファイルが含まれています。build.sh :スタンドアロンバックエンドアプリケーションをコンパイルし、ビルドプロセスを管理するために使用されるビルドスクリプト。k8s.yaml :Kubernetesクラスターにバックエンドアプリケーションを展開する方法を指定するKubernetes展開ファイル。Dockerfile :バックエンドアプリケーションのDocker画像を作成するために使用されるDockerビルドファイル。dist/ :ビルドプロセス後にコンパイルされたReact Buildがフロントエンドフォルダーからコピーされるディレクトリ。これにより、バックエンドがフロントエンドアプリケーションを提供できます。 ビデオ:
リポジトリをクローンします:
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 --verboseReactアプリを構築する:
npm run build開発環境でReactアプリを実行するため:
npm run devバックエンドのセットアップ:
kubethor-backendディレクトリに移動します。
cd ../kubethor-backend kubethor-frontendからkubethor-backend Directoryへのdistフォルダー[Reactアプリビルド]をコピーします。
cp -r ../kubethor-frontend/dist/ ../kubethor-backendすべての依存関係をダウンロードしてください:
go mod downloadGOアプリケーションを構築します:
go build -o kubethor-backendバックエンドを開始します:
backendディレクトリに移動します。
cd kubethor-backendGOアプリケーションを実行します:
./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フォルダーにコピーしてください。ホストサーバーに展開する画像を構築している場合は、ホスト名でkubethor-frontendのAPI_BASE_URLとAPI_WS_URL必ず変更してください。 build.shスクリプトは、Reactアプリケーションをビルドし、 kubethor-backendフォルダーにコピーします。 Docker画像を構築する前に、 build.sh実行するのは良いことです。
Docker画像を作成します:
kubethor-backendディレクトリに移動します。
cd kubethor-backendDocker画像を作成します:
docker build --no-cache -t kubethor-backend .Dockerコンテナを実行します。
Dockerコンテナを実行します。
docker run -p 8080:8080 kubethor-backendDockerレジストリへのプッシュ:
Dockerレジストリにログインします。
docker login YOUR_REGISTERY.comDocker画像にタグを付けます:
docker tag kubethor-backend:latest YOUR_REGISTERY.com/kubethor/kubethor-backend:latestDocker画像を押します:
docker push YOUR_REGISTERY.com/kubethor/kubethor-backendKubernetesクラスターへの展開:
kubethor-backendディレクトリに移動します。
cd kubethor-backend Kubernetesクラスターが実行されていることを確認し、 kubectlと対話するように構成されていることを確認してください。
Docker ImageリンクとホストURLを使用して、 kubethor-backendディレクトリのk8s.yamlファイルを更新します。
Kubernetes構成を適用します。
kubectl apply -f k8s.yaml -n my-namespace展開が成功した後、ホストURLに移動します
注: Kubernetesクラスターにリソースを展開するために必要なアクセス許可があることを確認してください。
k8s.yamlファイルには、展開、サービス、イングレス、および水平ポッドオートスケーラー、およびアプリケーションがKubernetes環境で実行するために必要なその他のリソースなど、Kubethorアプリケーションを展開するための構成が含まれています。
このリポジトリに対して問題を開く方法については、support.mdファイルを参照してください。
貢献は大歓迎です!詳細については、貢献ガイドラインをお読みください。
このプロジェクトは、Apache 2.0ライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。
お問い合わせやサポートについては、以下にご連絡ください。