FederatedAI / KubeFATE

Manage federated learning workload using cloud native technologies.
Apache License 2.0
423 stars 221 forks source link

How to dynamically expand multiple parties #823

Open KAgBMan opened 1 year ago

KAgBMan commented 1 year ago

Now I use the K8S to successfully deploy two parties, but now I need to add a participant for third-party computing, How can I add a participant without changing the status quo? Or can I only reinstall all clusters? Is there a place that can be configured to add the host and partyid of the third party?

owlet42 commented 1 year ago

You can add new party information by modifying the partyList or route_table of cluster.yaml, and then use kubefate cluster update -f cluster.yaml to update the newly added party information to the existing cluster.

example:


rollsite:
  type: NodePort
  nodePort: 30091
  partyList:
  - partyId: 9999
    partyIp: 192.168.9.1
    partyPort: 30091
  - partyId: 10000
    partyIp: 192.168.10.1
    partyPort: 30101
  - partyId: 8888
    partyIp: 192.168.8.1
    partyPort: 30081
KAgBMan commented 1 year ago

@owlet42 Will the update affect other modules or restart the cluster automatically?

KAgBMan commented 1 year ago

@owlet42 How to use router_table to modify the party list? I find a file in pod of rollsite ,the path is /data/projects/fate/eggroll/conf/route_table/router_table.json, Can I modify the party list by modifying this file?

owlet42 commented 1 year ago

@KAgBMan It means that the update that modifies the partyList will not restart any components, and you need to wait for the rollsite to automatically load after the update. The files in the pod are read-only and cannot be modified. You can modify the configmap, but it is not recommended. It is not friendly to modify the configmap.