Skip to content

Commit 303e285

Browse files
authored
Set resources request/limit for hub and agent (#507)
Signed-off-by: Jian Qiu <[email protected]>
1 parent f91ce45 commit 303e285

File tree

2 files changed

+137
-0
lines changed

2 files changed

+137
-0
lines changed

content/en/docs/getting-started/installation/register-a-cluster.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,47 @@ up the external client.
8282
{{% /tab %}}
8383
{{< /tabpane >}}
8484

85+
### Configure CPU and memory resources
86+
87+
You can configure CPU and memory resources for the klusterlet agent components by adding resource flags to the `clusteradm join` command. These flags indicate that all components in the klusterlet agent will use the same resource requirement or limit:
88+
89+
{{< tabpane text=true >}}
90+
{{% tab header="kind" %}}
91+
```shell
92+
# Configure resource requests and limits for klusterlet components
93+
clusteradm join \
94+
--hub-token <your token data> \
95+
--hub-apiserver <your hub cluster endpoint> \
96+
--wait \
97+
--cluster-name "cluster1" \
98+
--resource-qos-class ResourceRequirement \
99+
--resource-limits cpu=800m,memory=800Mi \
100+
--resource-requests cpu=400m,memory=400Mi \
101+
--force-internal-endpoint-lookup \
102+
--context ${CTX_MANAGED_CLUSTER}
103+
```
104+
{{% /tab %}}
105+
{{% tab header="k3s, openshift 4.X" %}}
106+
```shell
107+
# Configure resource requests and limits for klusterlet components
108+
clusteradm join \
109+
--hub-token <your token data> \
110+
--hub-apiserver <your hub cluster endpoint> \
111+
--wait \
112+
--cluster-name "cluster1" \
113+
--resource-qos-class ResourceRequirement \
114+
--resource-limits cpu=800m,memory=800Mi \
115+
--resource-requests cpu=400m,memory=400Mi \
116+
--context ${CTX_MANAGED_CLUSTER}
117+
```
118+
{{% /tab %}}
119+
{{< /tabpane >}}
120+
121+
Available resource configuration flags:
122+
- `--resource-qos-class`: Sets the resource QoS class (`Default`, `BestEffort`, or `ResourceRequirement`)
123+
- `--resource-limits`: Specifies resource limits as key-value pairs (e.g., `cpu=800m,memory=800Mi`)
124+
- `--resource-requests`: Specifies resource requests as key-value pairs (e.g., `cpu=500m,memory=500Mi`)
125+
85126
### Bootstrap a klusterlet in hosted mode(Optional)
86127

87128
Using the above command, the klusterlet components(registration-agent and work-agent) will be deployed on the managed
@@ -127,6 +168,46 @@ to the hosting cluster to register the managed cluster to the hub.
127168
{{% /tab %}}
128169
{{< /tabpane >}}
129170

171+
**Resource configuration in hosted mode:**
172+
173+
You can also configure CPU and memory resources when using hosted mode by adding the same resource flags:
174+
175+
{{< tabpane text=true >}}
176+
{{% tab header="kind" %}}
177+
```shell
178+
# Configure resource requests and limits for klusterlet components in hosted mode
179+
clusteradm join \
180+
--hub-token <your token data> \
181+
--hub-apiserver <your hub cluster endpoint> \
182+
--wait \
183+
--cluster-name "cluster1" \
184+
--mode hosted \
185+
--managed-cluster-kubeconfig <your managed cluster kubeconfig> \
186+
--resource-qos-class ResourceRequirement \
187+
--resource-limits cpu=800m,memory=800Mi \
188+
--resource-requests cpu=400m,memory=400Mi \
189+
--force-internal-endpoint-lookup \
190+
--context <your hosting cluster context>
191+
```
192+
{{% /tab %}}
193+
{{% tab header="k3s, openshift 4.X" %}}
194+
```shell
195+
# Configure resource requests and limits for klusterlet components in hosted mode
196+
clusteradm join \
197+
--hub-token <your token data> \
198+
--hub-apiserver <your hub cluster endpoint> \
199+
--wait \
200+
--cluster-name "cluster1" \
201+
--mode hosted \
202+
--managed-cluster-kubeconfig <your managed cluster kubeconfig> \
203+
--resource-qos-class ResourceRequirement \
204+
--resource-limits cpu=800m,memory=800Mi \
205+
--resource-requests cpu=400m,memory=400Mi \
206+
--context <your hosting cluster context>
207+
```
208+
{{% /tab %}}
209+
{{< /tabpane >}}
210+
130211
### Bootstrap a klusterlet in singleton mode
131212

132213
To reduce the footprint of agent in the managed cluster, singleton mode is introduced since `v0.12.0`.
@@ -163,6 +244,44 @@ cluster.
163244
{{% /tab %}}
164245
{{< /tabpane >}}
165246

247+
**Resource configuration in singleton mode:**
248+
249+
You can also configure CPU and memory resources when using singleton mode:
250+
251+
{{< tabpane text=true >}}
252+
{{% tab header="kind" %}}
253+
```shell
254+
# Configure resource requests and limits for klusterlet components in singleton mode
255+
clusteradm join \
256+
--hub-token <your token data> \
257+
--hub-apiserver <your hub cluster endpoint> \
258+
--wait \
259+
--cluster-name "cluster1" \
260+
--singleton \
261+
--resource-qos-class ResourceRequirement \
262+
--resource-limits cpu=600m,memory=600Mi \
263+
--resource-requests cpu=300m,memory=300Mi \
264+
--force-internal-endpoint-lookup \
265+
--context ${CTX_MANAGED_CLUSTER}
266+
```
267+
{{% /tab %}}
268+
{{% tab header="k3s, openshift 4.X" %}}
269+
```shell
270+
# Configure resource requests and limits for klusterlet components in singleton mode
271+
clusteradm join \
272+
--hub-token <your token data> \
273+
--hub-apiserver <your hub cluster endpoint> \
274+
--wait \
275+
--cluster-name "cluster1" \
276+
--singleton \
277+
--resource-qos-class ResourceRequirement \
278+
--resource-limits cpu=600m,memory=600Mi \
279+
--resource-requests cpu=300m,memory=300Mi \
280+
--context ${CTX_MANAGED_CLUSTER}
281+
```
282+
{{% /tab %}}
283+
{{< /tabpane >}}
284+
166285
## Accept the join request and verify
167286

168287
After the OCM agent is running on your managed cluster, it will be sending a "handshake" to your

content/en/docs/getting-started/installation/start-the-control-plane.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,24 @@ Call `clusteradm init`:
6060
clusteradm init --wait --context ${CTX_HUB_CLUSTER}
6161
```
6262

63+
### Configure CPU and memory resources
64+
65+
You can configure CPU and memory resources for the cluster manager components by adding resource flags to the `clusteradm init` command. These flags indicate that all components in the hub controller will use the same resource requirement or limit:
66+
67+
```shell
68+
# Configure resource requests and limits for cluster manager components
69+
clusteradm init \
70+
--resource-qos-class ResourceRequirement \
71+
--resource-limits cpu=1000m,memory=1Gi \
72+
--resource-requests cpu=500m,memory=512Mi \
73+
--wait --context ${CTX_HUB_CLUSTER}
74+
```
75+
76+
Available resource configuration flags:
77+
- `--resource-qos-class`: Sets the resource QoS class (`Default`, `BestEffort`, or `ResourceRequirement`)
78+
- `--resource-limits`: Specifies resource limits as key-value pairs (e.g., `cpu=800m,memory=800Mi`)
79+
- `--resource-requests`: Specifies resource requests as key-value pairs (e.g., `cpu=500m,memory=500Mi`)
80+
6381
The `clusteradm init` command installs the
6482
[registration-operator](https://github.com/open-cluster-management-io/ocm/tree/main/cmd/registration-operator)
6583
on the hub cluster, which is responsible for consistently installing

0 commit comments

Comments
 (0)