ไธไธช็ฐไปฃๅ็Kubernetes้็พค่ตๆบๆต่งๅจ๏ผไธไธบๆฅ็ๅ็ฎก็CRD๏ผ่ชๅฎไน่ตๆบๅฎไน๏ผๅฏน่ฑก่่ฎพ่ฎก
ๅ่ฝ็นๆง โข ๅฟซ้ๅผๅง โข ้จ็ฝฒๆนๅผ โข ๆๆฏๆถๆ
ๆบ่ฝๅ็ฑป็่ตๆบๆ ๅฝข็ปๆ๏ผๆฏๆๅฎๆถๆ็ดขๅ็ถๆ่ฟๆปค
่ฏฆ็ป็่ตๆบๅฏน่ฑกไฟกๆฏ๏ผๅ
ๅซๅฝๅ็ฉบ้ดใ็ถๆใๅๅปบๆถ้ด็ญๅ
ณ้ฎไฟกๆฏ
- ๐ ๆบ่ฝ่ตๆบๅ็ฑป - ่ชๅจๅบๅK8sๆ ธๅฟ่ตๆบๅCRD่ตๆบ
- ๐ ๅผบๅคงๆ็ดขๅ่ฝ - ๆฏๆ่ตๆบๅ็งฐใๅฝๅ็ฉบ้ดใ็ถๆ็ๅฎๆถๆ็ดข
- ๐ฑ ๅๅบๅผ่ฎพ่ฎก - ็ฐไปฃๅUI๏ผๆฏๆๅ็งๅฑๅนๅฐบๅฏธ
- ๐ท๏ธ ็ๆฌ็ฎก็ - ๆธ ๆฐๆพ็คบ่ตๆบ็ไธๅAPI็ๆฌ
- ๐ ่ตๆบ็ๆง - ๅฎๆถๆพ็คบPod็Request/Limitsไฟกๆฏ
- ๐ ็ฐไปฃๅ่ฎพ่ฎก - ๅบไบElement Plus็็พ่ง็้ข
- ๐ฑ ๅๅบๅผๅธๅฑ - ๅฎ็พ้้ ๆก้ขๅ็งปๅจ่ฎพๅค
- ๐ฏ ็ด่งๅฏผ่ช - ๆ ๅฝข็ปๆๅฑ็คบ่ตๆบๅฑๆฌกๅ ณ็ณป
- ๐ ๅฎๆถๆดๆฐ - ่ชๅจๅทๆฐ่ตๆบ็ถๆไฟกๆฏ
- ๐ ๅ จ้ขๆฏๆ - ๆฏๆๆๆK8sๆ ธๅฟ่ตๆบๅCRD่ตๆบ
- ๐ท๏ธ ็ๆฌๅฑ็คบ - ๆบ่ฝๆพ็คบๅ็ๆฌๅๅค็ๆฌ่ตๆบ
- ๐ ็ถๆ็ๆง - ๅฎๆถๆพ็คบ่ตๆบ่ฟ่ก็ถๆ
- ๐ ้ซ็บงๆ็ดข - ๅค็ปดๅบฆๆ็ดขๅ่ฟๆปคๅ่ฝ
- ๐ฆ Pod่ตๆบ่ฏฆๆ - ๆพ็คบๅฎนๅจ็CPU/ๅ ๅญRequestๅLimits
- ๐ ๅฝๅ็ฉบ้ดๆ็ดข - ๆฏๆๅฝๅ็ฉบ้ด็ๅฟซ้ๆ็ดขๅ่ฟๆปค
- ๐ ๅฏน่ฑก่ฎกๆฐ - ๆพ็คบๆฏไธชๅฝๅ็ฉบ้ด็่ตๆบๅฏน่ฑกๆฐ้
- ๐ฏ ็ถๆ่ฟๆปค - ๆ่ตๆบ็ถๆ๏ผๆญฃๅธธ/ๅผๅธธ/ๅค็ไธญ๏ผๅฟซ้่ฟๆปค
- ๐ ่ฏฆๆ ๆฅ็ - ๆฏๆๆฅ็ๅฎๆด็YAML้ ็ฝฎ
- ๐ ไธ้ฎๅคๅถ - ๅฟซ้ๅคๅถ่ตๆบ้ ็ฝฎๅฐๅช่ดดๆฟ
- ๐ RBACๆฏๆ - ้ตๅพชKubernetes RBACๆ้ๆงๅถ
- ๐ ๅฎๅ จ่ฎฟ้ฎ - ๆฏๆServiceAccountๅkubeconfig่ฎค่ฏ
- ๐ก๏ธ ๅช่ฏปๆจกๅผ - ไป ๆไพๆฅ็ๅ่ฝ๏ผ็กฎไฟ้็พคๅฎๅ จ
- Go 1.19+ - ๅ็ซฏๅผๅ็ฏๅข
- Node.js 16+ - ๅ็ซฏๆๅปบ็ฏๅข
- Kubernetes 1.20+ - ็ฎๆ ้็พค็ๆฌ
- kubectl - ้็พค่ฎฟ้ฎๅทฅๅ ท
- ๅ ้้กน็ฎ
git clone https://github.com/jicki/crds-objects-browser.git
cd crds-objects-browser
- ๆๅปบๅ็ซฏ
cd ui
npm install
npm run build
cd ..
- ๅฏๅจๆๅก
# ไฝฟ็จ้ป่ฎคkubeconfig
go run cmd/server/main.go
# ๆๆๅฎkubeconfig่ทฏๅพ
go run cmd/server/main.go --kubeconfig=/path/to/kubeconfig
- ่ฎฟ้ฎๅบ็จ
๐ http://localhost:8080
# ๆๅปบ้ๅ
docker build -t crds-browser:latest .
# ่ฟ่กๅฎนๅจ
docker run -d \
--name crds-browser \
-p 8080:8080 \
-v ~/.kube/config:/root/.kube/config:ro \
crds-browser:latest
# ๅบ็จ้จ็ฝฒๆธ
ๅ
kubectl apply -f deploy/kubernetes.yaml
# ๆฃๆฅ้จ็ฝฒ็ถๆ
kubectl get pods -l app=crds-browser
# ็ซฏๅฃ่ฝฌๅ่ฎฟ้ฎ
kubectl port-forward svc/crds-browser 8080:80
ๅ้ๅ | ๆ่ฟฐ | ้ป่ฎคๅผ |
---|---|---|
PORT |
ๆๅก็ซฏๅฃ | 8080 |
KUBECONFIG |
kubeconfigๆไปถ่ทฏๅพ | ~/.kube/config |
LOG_LEVEL |
ๆฅๅฟ็บงๅซ | info |
REFRESH_INTERVAL |
่ตๆบๅทๆฐ้ด้(็ง) | 30 |
go run cmd/server/main.go \
--port=8080 \
--kubeconfig=/path/to/config \
--log-level=debug \
--refresh-interval=60
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Vue.js ๅ็ซฏ โโโโโโ Go ๅ็ซฏๆๅก โโโโโโ Kubernetes API โ
โ โ โ โ โ โ
โ โข Element Plus โ โ โข Gin Framework โ โ โข client-go โ
โ โข Vuex Store โ โ โข REST API โ โ โข CRD Discovery โ
โ โข Vue Router โ โ โข WebSocket โ โ โข Resource List โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
- ๐ท Go 1.19+ - ้ซๆง่ฝๅ็ซฏ่ฏญ่จ
- ๐ Gin - ่ฝป้็บงWebๆกๆถ
- โธ๏ธ client-go - Kubernetesๅฎๆนๅฎขๆท็ซฏ
- ๐ก WebSocket - ๅฎๆถๆฐๆฎๆจ้
- ๐ Discovery API - ๅจๆ่ตๆบๅ็ฐ
- ๐ Vue.js 3 - ็ฐไปฃๅ็ซฏๆกๆถ
- ๐จ Element Plus - ไผไธ็บงUI็ปไปถๅบ
- ๐๏ธ Vuex - ็ถๆ็ฎก็
- ๐ฃ๏ธ Vue Router - ่ทฏ็ฑ็ฎก็
- ๐ฆ Webpack - ๆจกๅๆๅ ๅทฅๅ ท
- ๐ณ Docker - ๅฎนๅจๅ้จ็ฝฒ
- โธ๏ธ Kubernetes - ๅฎนๅจ็ผๆๅนณๅฐ
- ๐ Prometheus - ็ๆงๆๆ ๆถ้
- ๐ Grafana - ๅฏ่งๅ็ๆง้ขๆฟ
crds-objects-browser/
โโโ ๐ cmd/ # ๅบ็จ็จๅบๅ
ฅๅฃ
โ โโโ ๐ main.go # ็จๅบๅ
ฅๅฃ็น
โโโ ๐ pkg/ # ๆ ธๅฟไธๅก้ป่พ
โ โโโ ๐ api/ # REST APIๆๅก
โ โโโ ๐ informer/ # Informer็ฎก็
โ โโโ ๐ k8s/ # Kubernetesๅฎขๆท็ซฏ
โโโ ๐ ui/ # ๅ็ซฏVue้กน็ฎ
โ โโโ ๐ public/ # ้ๆ่ตๆบ
โ โโโ ๐ src/ # ๆบไปฃ็
โ โ โโโ ๐ components/ # ๅฏๅค็จ็ปไปถ
โ โ โโโ ๐ views/ # ้กต้ข่งๅพ
โ โ โโโ ๐ store/ # Vuex็ถๆ็ฎก็
โโโ ๐ deploy/ # ้จ็ฝฒ้
็ฝฎๆไปถ
โโโ ๐ k8s/ # Kubernetes้จ็ฝฒๆธ
ๅ
โโโ ๐ docs/ # ๐ ๆๆกฃ็ฎๅฝ
โ โโโ ๐ development/ # ๐ง ๅผๅๆๆกฃ
โ โ โโโ ๐ PERFORMANCE_OPTIMIZATION.md
โ โ โโโ ๐ INFORMER_IMPLEMENTATION_SUMMARY.md
โ โ โโโ ๐ INFORMER_OPTIMIZATION.md
โ โโโ ๐ deployment/ # ๐ ้จ็ฝฒๆๆกฃ
โ โ โโโ ๐ QUICK_START_OPTIMIZATION.md
โ โ โโโ ๐ VERSION_GUIDE.md
โ โ โโโ ๐ docker-tag-format.md
โ โโโ ๐ troubleshooting/ # ๐ ๆ
้ๆ้ค
โ โโโ ๐ PERFORMANCE_FIX_REPORT.md
โ โโโ ๐ FRONTEND_FIX_REPORT.md
โโโ ๐ test/ # ๐งช ๆต่ฏ็ฎๅฝ
โโโ ๐ scripts/ # ๆต่ฏ่ๆฌ
โ โโโ ๐ test-performance-fix.sh
โโโ ๐ html/ # ๆต่ฏ้กต้ข
โ โโโ ๐ test-frontend-fix.html
โ โโโ ๐ debug-frontend.html
โ โโโ ๐ debug.html
โโโ ๐ reports/ # ๆต่ฏๆฅๅ
โ โ โ โโโ ๐ ResourceDetail.vue # ่ตๆบ่ฏฆๆ
โ โ โโโ ๐ store/ # Vuex็ถๆ็ฎก็
โ โ โโโ ๐ router/ # ่ทฏ็ฑ้
็ฝฎ
โ โ โโโ ๐ assets/ # ้ๆ่ตๆบ
โ โโโ ๐ package.json # ไพ่ต้
็ฝฎ
โ โโโ ๐ vue.config.js # Vue้
็ฝฎ
โโโ ๐ deploy/ # ้จ็ฝฒ้
็ฝฎ
โ โโโ ๐ kubernetes.yaml # K8s้จ็ฝฒๆธ
ๅ
โ โโโ ๐ docker-compose.yml # Docker Compose
โ โโโ ๐ helm/ # Helm Chart
โโโ ๐ Dockerfile # Dockerๆๅปบๆไปถ
โโโ ๐ Makefile # ๆๅปบ่ๆฌ
โโโ ๐ go.mod # Goๆจกๅๅฎไน
โโโ ๐ README.md # ้กน็ฎๆๆกฃ
- ้ๆฉ่ตๆบ็ฑปๅ - ๅจๅทฆไพงๆ ๅฝข่ๅไธญ้ๆฉ่ฆๆฅ็็่ตๆบ
- ๅๆขๅฝๅ็ฉบ้ด - ไฝฟ็จ้กถ้จ็ๅฝๅ็ฉบ้ด้ๆฉๅจ
- ๆ็ดข่ฟๆปค - ไฝฟ็จๆ็ดขๆกๅฟซ้ๅฎไฝ่ตๆบ
- ๆฅ็่ฏฆๆ - ็นๅป"่ฏฆๆ "ๆ้ฎๆฅ็ๅฎๆด้ ็ฝฎ
- ็ถๆ่ฟๆปค - ๆ่ตๆบ็ถๆ็ญ้๏ผๆญฃๅธธ/ๅผๅธธ/ๅค็ไธญ๏ผ
- ๅฎๆถๆดๆฐ - ่ตๆบ็ถๆ่ชๅจๅทๆฐ
- ่ตๆบ็ป่ฎก - ๆพ็คบๅ็ฑป่ตๆบ็ๆฐ้็ป่ฎก
- Pod่ตๆบ็ๆง - ๆฅ็ๅฎนๅจ็CPU/ๅ ๅญ้ ็ฝฎ
- ็ๆฌ็ฎก็ - ๆฏๆๅค็ๆฌAPI่ตๆบ
- ๆน้ๆไฝ - ๆฏๆๆน้ๆฅ็ๅๅฏผๅบ
ๆไปฌๆฌข่ฟๆๆๅฝขๅผ็่ดก็ฎ๏ผ่ฏทๆฅ็ CONTRIBUTING.md ไบ่งฃ่ฏฆ็ปไฟกๆฏใ
ๅฆๆๆจๅ็ฐไบbugๆๆๅ่ฝๅปบ่ฎฎ๏ผ่ฏท๏ผ
- ๆฃๆฅ Issues ๆฏๅฆๅทฒๅญๅจ็ธๅ ณ้ฎ้ข
- ๅๅปบๆฐ็Issue๏ผ่ฏฆ็ปๆ่ฟฐ้ฎ้ขๆๅปบ่ฎฎ
- ๆไพๅค็ฐๆญฅ้ชคๅ็ฏๅขไฟกๆฏ
ๆไปฌๅพไนๆๅฌๅฐๆจ็ๆณๆณ๏ผ่ฏท้่ฟIssueๅ่ฏๆไปฌๆจๅธๆ็ๅฐ็ๆฐๅ่ฝใ
ๆฌ้กน็ฎ้็จ MIT ่ฎธๅฏ่ฏ - ่ฏฆๆ ่ฏทๆฅ็LICENSEๆไปถใ
ๆ่ฐขไปฅไธๅผๆบ้กน็ฎ็ๆฏๆ๏ผ
- Kubernetes - ๅฎนๅจ็ผๆๅนณๅฐ
- Vue.js - ๆธ่ฟๅผJavaScriptๆกๆถ
- Element Plus - Vue 3็ปไปถๅบ
- Gin - Go Webๆกๆถ
- client-go - Kubernetes Goๅฎขๆท็ซฏ
โญ ๅฆๆ่ฟไธช้กน็ฎๅฏนๆจๆๅธฎๅฉ๏ผ่ฏท็ปๆไปฌไธไธชStar๏ผ
Made with โค๏ธ by Your Team