Coder Social home page Coder Social logo

multi-clusters's People

Contributors

googs1025 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

multi-clusters's Issues

feat: 新增命令行工具

实现多集群查询功能。
实现命令行工具,提供类似 kube-mutli-cluster get pods -c cluster1 的功能

bug: 目前默认集群状态永远只有 "Running",不会有状态切换

// FIXME: 目前默认集群状态永远只有 "Running",不会有状态切换
// 预计要定时轮询巡检特定节点集群是否正常

[root@VM-0-16-centos ~]# kubectl-multicluster list clusters
集群名称	状态   	是否为主集群
tencent1	Running	false
tencent2	Running	false
tencent4	Running	true

bug: 当默认是所有集群查的时候,cluster字段会不显示

因为marshal时,只获取runtime.object字段,集群名字段没有拿出

➜  cmd git:(main) go run ctl_plugin/main.go deployments                       
集群名称        DEPLOYMENT                                      NAMESPACE                               TOTAL   AVAILABLE       READY 
                patch-deployment                                default                                 2       2               2       
                kueue-controller-manager                        kueue-system                            1       1               1       
                dep-test                                        default                                 5       5               5       
                testngx                                         default                                 10      10              10      
                test-pod-maxnum-scheduler                       kube-system                             1       1               1       
                testngx                                         default                                 10      10              10      
                test-pod-maxnum-scheduler                       kube-system                             1       1               1  

feat: 修改新增命令行使用 gvr 输入

[root@VM-0-16-centos ~]# kubectl-multicluster list pods
集群名称	NAME                                                          	NAMESPACE                        	NODE             	POD IP        	状态     	容器名                   	容器镜像
tencent1	multiclusterresource-deployment-75d98bb7bd-d42kz              	default                          	vm-0-17-centos   	10.244.167.205	Running  	example-container        	nginx:1.19.0-alpine
tencent4	multiclusterresource-deployment-75d98bb7bd-r5v8p              	default                          	vm-0-16-centos   	10.244.0.195  	Running  	example-container        	nginx:1.19.0-alpine
tencent4	multiclusterresource-deployment-75d98bb7bd-22tbg              	default                          	vm-0-16-centos   	10.244.0.194  	Running  	example-container        	nginx:1.19.0-alpine
tencent2	multiclusterresource-deployment-7c6dcfd8dd-xnnsf              	default                          	vm-0-13-centos   	10.244.0.49   	Running  	example-container        	nginx:latest

计画改成 v1.pods,支持任何 k8s 资源对象输入

[root@VM-0-16-centos ~]# kubectl-multicluster list v1.pods
集群名称	NAME                                                          	NAMESPACE                        	NODE             	POD IP        	状态     	容器名                   	容器镜像
tencent1	multiclusterresource-deployment-75d98bb7bd-d42kz              	default                          	vm-0-17-centos   	10.244.167.205	Running  	example-container        	nginx:1.19.0-alpine
tencent4	multiclusterresource-deployment-75d98bb7bd-r5v8p              	default                          	vm-0-16-centos   	10.244.0.195  	Running  	example-container        	nginx:1.19.0-alpine
tencent4	multiclusterresource-deployment-75d98bb7bd-22tbg              	default                          	vm-0-16-centos   	10.244.0.194  	Running  	example-container        	nginx:1.19.0-alpine
tencent2	multiclusterresource-deployment-7c6dcfd8dd-xnnsf              	default                          	vm-0-13-centos   	10.244.0.49   	Running  	example-container        	nginx:latest

feat: 资源对象配置化

目前启动哪些资源是代码中写死的,预计抽象出配置文件 config.yaml。
把需要启动哪些资源使用配置的方式写出来。
ex:

  • "apps/v1/deplyoments"
  • "v1/pods"
  • "v1/configmaps"

bug: 启动服务会有 migrate 问题

[root@VM-0-16-centos helm]# kubectl get pods
NAME                                               READY   STATUS             RESTARTS         AGE
multi-cluster-operator-6c6fc9dcc9-xs79f            0/1     Error              1 (1s ago)       2s

[root@VM-0-16-centos helm]# kubectl logs multi-cluster-operator-6c6fc9dcc9-xs79f
F0129 10:02:52.587503       1 mysql_options.go:144] Failed to apply migrations: Dirty database version 1. Fix and force version.

感觉是 go-migrate 使用的问题

feat: 支持多集群功能,存储功能

目前仅支持单一集群资源入库,未来预计支持多集群模式

  1. 需要修改表字段,增加一个 cluster 集群名字段
  2. 使用配置文件方式支持多集群

feat: 多集群 restconfig 获取方式优化

操作多集群时,会需要用到各自集群的 restconfig 对象,目前使用配置文件 + volume 挂载的方式,感觉不是特别好。
是否可以做一个服务,专门用于获取不同集群的 restconfig

feat: 目前集群资源对象没有使用 k8s crd 进行描述

目前的集群没有进行 cr 自定义资源的描述,没有办法进行 describe 命令展示,只有 list。


[root@VM-0-16-centos yaml]# kubectl-multicluster list clusters
集群名称	           状态   	 是否为主集群
tencent4	   Running	 true
tencent1	   Running	 false
tencent2	   Running	 false

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.