Skip to content

Commit ac50e61

Browse files
committed
reply the review
Signed-off-by: Meng Yan <[email protected]>
1 parent e40cadf commit ac50e61

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

content/patterns/multicloud-federated-learning/_index.adoc

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ As machine learning (ML) evolves, protecting data privacy becomes increasingly i
2828

2929
Federated learning addresses this by allowing multiple clusters or organizations to collaboratively train models without sharing sensitive data. Computation happens where the data lives, ensuring privacy, regulatory compliance, and efficiency.
3030

31-
By integrating federated learning with {rh-rhacm-first}, this pattern provides an automated and scalable solution for deploying FL workloads across hybrid and multicluster environments.
31+
By integrating federated learning with {rh-rhacm-first}, this pattern provides an automated and scalable solution for deploying federated learning workloads across hybrid and multicluster environments.
3232

3333
==== Technologies
3434
* Open Cluster Management (OCM)
3535
- ManagedCluster
3636
- ManifestWork
3737
- Placement
3838
...
39-
* Federated Learning frameworks
39+
* Federated Learning Frameworks
4040
- Flower
4141
- OpenFL
4242
...
@@ -45,35 +45,35 @@ By integrating federated learning with {rh-rhacm-first}, this pattern provides
4545

4646
=== Why Use Advanced Cluster Management for Federated Learning?
4747

48-
**Advanced Cluster Management (ACM)** simplifies and automates the deployment and orchestration of Federated Learning (FL) workloads across clusters:
48+
- **Advanced Cluster Management (ACM)** simplifies and automates the deployment and orchestration of federated learning workloads across clusters:
4949

50-
- **Automatic Deployment & Simplified Operations**: ACM provides a unified and automated approach to running FL workflows across different runtimes (e.g., Flower, OpenFL). Its controller manages the entire FL lifecycle—including setup, coordination, status tracking, and teardown—across multiple clusters in a multicloud environment. This eliminates repetitive manual configurations, significantly reduces operational overhead, and ensures consistent, scalable FL deployments.
50+
- **Automatic Deployment & Simplified Operations**: ACM provides a unified and automated approach to running federated learning workflows across different runtimes (e.g., Flower, OpenFL). Its controller manages the entire federated learning lifecycle—including setup, coordination, status tracking, and teardown—across multiple clusters in a multicloud environment. This eliminates repetitive manual configurations, significantly reduces operational overhead, and ensures consistent, scalable federated learning deployments.
5151

52-
- **Dynamic Client Selection**: ACM's scheduling capabilities allow FL clients to be selected not only based on where the data resides, but also dynamically based on cluster labels, resource availability, and governance criteria. This enables a more adaptive and intelligent approach to client participation.
52+
- **Dynamic Client Selection**: ACM is scheduling capabilities allow federated learning clients to be selected not only based on where the data resides, but also dynamically based on cluster labels, resource availability, and governance criteria. This enables a more adaptive and intelligent approach to client participation.
5353

54-
Together, these capabilities support a **flexible FL client model**, where clusters can join or exit the training process dynamically, without requiring static or manual configuration.
54+
Together, these capabilities support a **flexible federated learning client model**, where clusters can join or exit the training process dynamically, without requiring static or manual configuration.
5555

5656
=== Benefits
5757

58-
- 🔒 Privacy-preserving training without moving sensitive data
58+
- Privacy-preserving training without moving sensitive data
5959

60-
- ⚙️ Automated dynamic FL client orchestration across distributed clusters
60+
- Automated dynamic federated learning client orchestration across distributed clusters
6161

62-
- 🧩 Adaptable to different FL frameworks, such as OpenFL and Flower
62+
- Adaptable to different federated learning frameworks, such as OpenFL and Flower
6363

64-
- 🌍 Scalability across hybrid and edge clusters
64+
- Scalability across hybrid and edge clusters
6565

66-
- 📉 Lower infrastructure and operational costs
66+
- Lower infrastructure and operational costs
6767

6868
This approach empowers organizations to build smarter, privacy-first AI solutions with less complexity and more flexibility.
6969

7070
=== Architecture
7171

7272
image::/images/multicloud-federated-learning/multicluster-federated-learning-workflow.png[multicloud-federated-learning-workflow]
7373

74-
- In this architecture, a central **Hub Cluster** acts as the aggregator, running the Federated Learning (FL) controller and scheduling workloads using ACM APIs like `Placement` and `ManifestWork`.
74+
- In this architecture, a central **Hub Cluster** acts as the aggregator, running the Federated Learning controller and scheduling workloads using ACM APIs like `Placement` and `ManifestWork`.
7575

76-
- Multiple **Managed Clusters**, potentially across different clouds, serve as FL clients—each holding private data. These clusters pull the global model from the hub, train it locally, and push model updates back.
76+
- Multiple **Managed Clusters**, potentially across different clouds, serve as federated learning clients—each holding private data. These clusters pull the global model from the hub, train it locally, and push model updates back.
7777

78-
- The controller manages this lifecycle using custom resources and supports runtimes like Flower and OpenFL. This setup enables scalable, multi-cloud model training with **data privacy preserved by design**, requiring no changes to existing FL training code.
78+
- The controller manages this lifecycle using custom resources and supports runtimes like Flower and OpenFL. This setup enables scalable, multi-cloud model training with **data privacy preserved by design**, requiring no changes to existing federated learning training code.
7979

content/patterns/multicloud-federated-learning/getting-started.adoc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ Prepare at least three clusters: one hub cluster and two managed clusters.
3131

3232
Verify the managed clusters are registered on the hub by running:
3333

34-
[source,bash]
34+
[source,terminal]
3535
----
3636
$ kubectl get mcl
3737
----
3838

3939
Example output:
40-
[source,bash]
40+
[source,terminal]
4141
----
4242
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE
4343
cluster1 true https://api.***.com:6443 True True 5m
@@ -48,22 +48,22 @@ cluster2 true https://api.***.com:6443 True True
4848

4949
. Clone and navigate to the repository:
5050
+
51-
[source,bash]
51+
[source,terminal]
5252
----
5353
$ git clone [email protected]:open-cluster-management-io/addon-contrib.git
5454
$ cd federated-learning-controller
5555
----
5656

5757
. Build and push the controller image (or use pre-built `quay.io/myan/federated-learning-controller:latest`):
5858
+
59-
[source,bash]
59+
[source,terminal]
6060
----
6161
$ make docker-build docker-push IMG=<IMG>
6262
----
6363

6464
. Deploy the controller to the hub cluster:
6565
+
66-
[source,bash]
66+
[source,terminal]
6767
----
6868
$ kubectl config use-context kind-hub
6969
$ make deploy IMG=<controller-image> NAMESPACE=<controller-namespace(default is open-cluster-management)>
@@ -73,14 +73,14 @@ $ make deploy IMG=<controller-image> NAMESPACE=<controller-namespace(default is
7373
+
7474
The federated learning controller is running in the open-cluster-management namespace by default.
7575
+
76-
[source,bash]
76+
[source,terminal]
7777
----
7878
$ kubectl get pods -n open-cluster-management
7979
----
8080
+
8181
Example output
8282
+
83-
[source,bash]
83+
[source,terminal]
8484
----
8585
NAME READY STATUS RESTARTS AGE
8686
cluster-manager-d9db64db5-c7kfj 1/1 Running 0 3d22h
@@ -95,7 +95,7 @@ federated-learning-controller-d7df846c9-nb4wc 1/1 Running 0 3
9595
+
9696
*Note*: You can skip this step by using the pre-built image `quay.io/myan/flower-app-torch:latest`.
9797
+
98-
[source,bash]
98+
[source,terminal]
9999
----
100100
$ cd examples/flower
101101
@@ -155,7 +155,7 @@ Add the `ClusterClaim` object to these clusters own the data for the client:
155155

156156
.. **Cluster1: **
157157
+
158-
[source,bash]
158+
[source,terminal]
159159
----
160160
$ kubectl config use-context kind-cluster1
161161
@@ -171,7 +171,7 @@ EOF
171171

172172
.. **Cluster2: **
173173
+
174-
[source,bash]
174+
[source,terminal]
175175
----
176176
$ kubectl config use-context kind-cluster2
177177
$ cat <<EOF | kubectl apply -f -
@@ -190,7 +190,7 @@ EOF
190190
+
191191
*Example - server in hub cluster:*
192192
+
193-
[source,bash]
193+
[source,terminal]
194194
----
195195
$ kubectl get pods
196196
NAME READY STATUS RESTARTS AGE

0 commit comments

Comments
 (0)