...
Federated Learning Controller
The federated-learning controller watches for the updates of federated-learning tasks and the corresponding pods against the K8S API server.
Updates are categorized below along with the possible actions:
Update Type | Action |
---|---|
New Federated-learning-task Created | Create the aggregation worker and these local-training workers |
Federated-learning-task Deleted | NA. These workers will be deleted by k8s gc. |
The corresponding pod created/running/completed/failed | Update the status of federated-learning task. |
Downstream Controller
The downstream controller watches for federated-learning updates against the K8S API server.
Updates are categorized below along with the possible actions that the downstream controller can take:
Update Type | Action |
---|---|
New Federated-learning-task Created | Sends the task information to LCs. |
Federated-learning-task Deleted | The controller sends the delete event to LCs. |
Upstream Controller
The upstream controller watches for federated-learning-task updates from the edge node and applies these updates against the API server in the cloud. Updates are categorized below along with the possible actions that the upstream controller can take:
...
The flow of federated learning task creation
The federated-learning controller watches the creation of federatedlearningtask crd in the cloud, syncs them to lc via the cloudhub-to-edgehub channel, and creates the aggregator worker on the cloud nodes and the training workers on the edge nodes specified by the user.
The aggregator worker is started by the native k8s at the cloud nodes.
These training workers are started by the kubeedge at the edge nodes.
Workers Communication
Todo: complete the two restful apis.