Apisix-dashboard: feat: Should apisix dashboard support multi-tenancy feature?

Created on 30 Oct 2020  路  12Comments  路  Source: apache/apisix-dashboard

Sometimes we can split apis to different apisix cluster for reduce risk , dashboard can manage more then one apisix cluster.

  • Why do you submit this issue?
  • [x] Question or discussion
  • [ ] Bug
  • [x] Requirements
  • [x] Feature or performance improvement
  • [ ] Other

Question

  • What do you want to know?

Bug

  • Which version of Apache APISIX Dashboard, OS, and Browser?

  • What happened?
    If possible, provide a way to reproduce the error.


Requirements or improvement

  • Please describe your requirements or improvement suggestions.
enhancement good first issue proposal

Most helpful comment

In my environment has more then 2000 apis , some apis is for transaction, they are core function , we should split it in different cluster, cluster count is related with your business. I think we should has a service discovery to register different cluster and we can monitoring it and manage it such as restart stop upgrade and so on.

All 12 comments

Ya This is a good feature, we may support it one day. BTW, would you have interests to draft a proposal about how to implement this feature?

cc @membphis @moonming @ShiningRush

@gy09535 I think you want to manager Apache APISIX clusters in one dashboard, right?

@gy09535 I think you want to manager Apache APISIX clusters in one dashboard, right?

yeah,I am now consider how to manage api with different department , for this case may have more apisix cluster and I get some ideal from k8s federation ref: https://kubernetes.io/blog/2018/12/12/kubernetes-federation-evolution/

@gxthrj @spacewander what do you think?

I think this is a useful feature, such as using a dashboard to manage API gateways and streaming gateways, but the priority can be lowered.
Because usually the number of gateway clusters is not too much, even if per gateway uses a dashboard, it will not bring too much burden to users.
BTW: The reason why the k8s cluster needs federation here is because there are indeed many clusters, especially for cloud platforms

In my environment has more then 2000 apis , some apis is for transaction, they are core function , we should split it in different cluster, cluster count is related with your business. I think we should has a service discovery to register different cluster and we can monitoring it and manage it such as restart stop upgrade and so on.

I think that the measurement of route should not be based on the api, but the service. Generally speaking, a service matches a route. We will not generate a separate route for each API, which is difficult to maintain.
Then there is another solution to handle your case that APISIX deploys multiple clusters, and then directly use same dashboard to manage them (in fact, we do this internally). The disadvantage of this approach is that the routes will mix together, but if there is a nice filtering in dashboard, it is actually also acceptable.

looking forward to more better practices haha

I think that the measurement of route should not be based on the api, but the service. Generally speaking, a service matches a route. We will not generate a separate route for each API, which is difficult to maintain.
Then there is another solution to handle your case that APISIX deploys multiple clusters, and then directly use same dashboard to manage them (in fact, we do this internally). The disadvantage of this approach is that the routes will mix together, but if there is a nice filtering in dashboard, it is actually also acceptable.

yeah, we can create different cluster manager in same dashboard , the cluster name is filtering. For business gateway , how to set the route is a good question it relate with how manage apis , I want to make it as a micro service gateway , and I can sync api from service with swagger , in this way api config is easy. If a group api has the same feature ,may be we can set it as wildcard. May be we can reference this gateway:https://github.com/eolinker/goku-api-gateway , some feature I think is very useful.

Yes, I think it is a useful. The dashboard should be only one .
In ingress controller , we use the annotation ingress.class to distinguish different clusters.

conclusion?

Was this page helpful?
0 / 5 - 0 ratings