1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00

advanced node agent

Signed-off-by: Shruti Deshpande <shdeshpa@redhat.com>
This commit is contained in:
Shruti Deshpande
2025-09-01 14:16:54 +05:30
committed by openshift-cherrypick-robot
parent fc7dd34829
commit c618d2fa57
12 changed files with 261 additions and 6 deletions

View File

@@ -54,8 +54,12 @@ include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
include::modules/oadp-configuring-aws-md5sum.adoc[leveloffset=+1]
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1]
include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
include::modules/oadp-configuring-dpa-multiple-bsl.adoc[leveloffset=+1]
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]

View File

@@ -39,10 +39,14 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset
// include::modules/oadp-installing-dpa-1-2-and-earlier.adoc[leveloffset=+1]
include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1]
include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]
include::modules/oadp-about-disable-node-agent-dpa.adoc[leveloffset=+2]

View File

@@ -42,10 +42,14 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset
include::modules/oadp-gcp-wif-cloud-authentication.adoc[leveloffset=+1]
include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1]
include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]
include::modules/oadp-about-disable-node-agent-dpa.adoc[leveloffset=+2]

View File

@@ -26,8 +26,16 @@ include::modules/oadp-setting-resource-limits-and-requests.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1]
// include the module for client burst and qps config
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
// include module for load affinity setting
include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1]
// include module for load affinity guidelines
include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1]
// include module for loadConcurrency setting
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
// include module for repo maintenance setting
include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1]
// include module for velero load affinity setting
include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1]
// include module for image pull policy setting
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
// include the module for configuring multiple BSL

View File

@@ -49,10 +49,14 @@ include::modules/oadp-backup-single-vm.adoc[leveloffset=+1]
include::modules/oadp-restore-single-vm.adoc[leveloffset=+1]
include::modules/oadp-restore-single-vm-from-multiple-vm-backup.adoc[leveloffset=+1]
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1]
include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
include::modules/oadp-incremental-backup-support.adoc[leveloffset=+1]
[IMPORTANT]

View File

@@ -43,10 +43,14 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset
// include::modules/oadp-installing-dpa-1-2-and-earlier.adoc[leveloffset=+1]
include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1]
include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]
include::modules/oadp-about-disable-node-agent-dpa.adoc[leveloffset=+2]

View File

@@ -48,10 +48,14 @@ include::modules/oadp-using-ca-certificates-with-velero-command.adoc[leveloffset
// include::modules/oadp-installing-dpa-1-2-and-earlier.adoc[leveloffset=+1]
include::modules/oadp-installing-dpa-1-3.adoc[leveloffset=+1]
include::modules/oadp-configuring-client-burst-qps.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-node-agent-load-affinity-guidelines.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-load-concurrency.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agent-non-root.adoc[leveloffset=+1]
include::modules/oadp-configuring-repository-maintenance.adoc[leveloffset=+1]
include::modules/oadp-configuring-velero-load-affinity.adoc[leveloffset=+1]
include::modules/oadp-configuring-imagepullpolicy.adoc[leveloffset=+1]
include::modules/oadp-configuring-node-agents.adoc[leveloffset=+2]
include::modules/oadp-creating-object-bucket-claim.adoc[leveloffset=+2]
include::modules/oadp-enabling-csi-dpa.adoc[leveloffset=+2]
include::modules/oadp-about-disable-node-agent-dpa.adoc[leveloffset=+2]

View File

@@ -0,0 +1,63 @@
// Module included in the following assemblies:
//
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc
:_mod-docs-content-type: PROCEDURE
[id="oadp-configuring-node-agent-load-affinity_{context}"]
= Configuring node agent load affinity
[role="_abstract"]
You can schedule the node agent pods on specific nodes by using the `spec.podConfig.nodeSelector` object of the `DataProtectionApplication` (DPA) custom resource (CR).
See the following example in which you can schedule the node agent pods on nodes with the label `label.io/role: cpu-1` and `other-label.io/other-role: cpu-2`.
[source,yaml]
----
...
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
----
You can add more restrictions on the node agent pods scheduling by using the `nodeagent.loadAffinity` object in the DPA spec.
.Prerequisites
* You must be logged in as a user with `cluster-admin` privileges.
* You have installed the {oadp-short} Operator.
* You have configured the DPA CR.
.Procedure
* Configure the DPA spec `nodegent.loadAffinity` object as shown in the following example.
+
In the example, you ensure that the node agent pods are scheduled only on nodes with the label `label.io/role: cpu-1` and the label `label.io/hostname` matching with either `node1` or `node2`.
+
[source,yaml]
----
...
spec:
configuration:
nodeAgent:
enable: true
loadAffinity: # <1>
- nodeSelector:
matchLabels:
label.io/role: cpu-1
matchExpressions: # <2>
- key: label.io/hostname
operator: In
values:
- node1
- node2
...
----
<1> Configure the `loadAffinity` object by adding the `matchLabels` and `matchExpressions` objects.
<2> Configure the `matchExpressions` object to add restrictions on the node agent pods scheduling.

View File

@@ -36,6 +36,7 @@ $ oc label node/<node_name> label.io/instance-type='large'
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadConcurrency:
globalConfig: 1 # <1>
perNodeConfig:

View File

@@ -0,0 +1,68 @@
// Module included in the following assemblies:
//
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc
:_mod-docs-content-type: PROCEDURE
[id="oadp-configuring-repository-maintenance_{context}"]
= Configuring repository maintenance
[role="_abstract"]
{oadp-short} repository maintenance is a background job, you can configure it independently of the node agent pods. This means that you can schedule the repository maintenance pod on a node where the node agent is or is not running.
You can use the repository maintenance job affinity configurations in the `DataProtectionApplication` (DPA) custom resource (CR) only if you use Kopia as the backup repository.
You have the option to configure the load affinity at the global level affecting all repositories. Or you can configure the load affinity for each repository. You can also use a combination of global and per-repository configuration.
.Prerequisites
* You must be logged in as a user with `cluster-admin` privileges.
* You have installed the {oadp-short} Operator.
* You have configured the DPA CR.
.Procedure
* Configure the `loadAffinity` object in the DPA spec by using either one or both of the following methods:
** Global configuration: Configure load affinity for all repositories as shown in the following example:
+
[source,yaml]
----
...
spec:
configuration:
repositoryMaintenance: # <1>
global: # <2>
podResources:
cpuRequest: "100m"
cpuLimit: "200m"
memoryRequest: "100Mi"
memoryLimit: "200Mi"
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
----
<1> Configure the `repositoryMaintenance` object as shown in the example.
<2> Use the `global` object to configure load affinity for all repositories.
** Per-repository configuration: Configure load affinity per repository as shown in the following example:
+
[source,yaml]
----
...
spec:
configuration:
repositoryMaintenance:
myrepositoryname: # <1>
loadAffinity:
- nodeSelector:
matchLabels:
label.io/cpu: 'yes'
----
<1> Configure the `repositoryMaintenance` object for each repository.

View File

@@ -0,0 +1,57 @@
// Module included in the following assemblies:
//
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc
:_mod-docs-content-type: PROCEDURE
[id="oadp-configuring-velero-load-affinity_{context}"]
= Configuring Velero load affinity
[role="_abstract"]
With each {oadp-short} deployment, there is one Velero pod and its main purpose is to schedule Velero workloads. To schedule the Velero pod, you can use the `velero.podConfig.nodeSelector` and the `velero.loadAffinity` objects in the `DataProtectionApplication` (DPA) custom resource (CR) spec.
Use the `podConfig.nodeSelector` object to assign the Velero pod to specific nodes. You can also configure the `velero.loadAffinity` object for pod-level affinity and anti-affinity.
The OpenShift scheduler applies the rules and performs the scheduling of the Velero pod deployment.
.Prerequisites
* You must be logged in as a user with `cluster-admin` privileges.
* You have installed the {oadp-short} Operator.
* You have configured the DPA CR.
.Procedure
* Configure the `velero.podConfig.nodeSelector` and the `velero.loadAffinity` objects in the DPA spec as shown in the following examples:
** `velero.podConfig.nodeSelector` object configuration:
+
[source,yaml]
----
...
spec:
configuration:
velero:
podConfig:
nodeSelector:
some-label.io/custom-node-role: backup-core
----
** `velero.loadAffinity` object configuration:
+
[source,yaml]
----
...
spec:
configuration:
velero:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
----

View File

@@ -0,0 +1,34 @@
// Module included in the following assemblies:
//
// * backup_and_restore/application_backup_and_restore/installing/installing-oadp-aws.adoc
:_mod-docs-content-type: CONCEPT
[id="oadp-node-agent-load-affinity-guidelines_{context}"]
= Node agent load affinity guidelines
[role="_abstract"]
Use the following guidelines to configure the node agent `loadAffinity` object in the `DataProtectionApplication` (DPA) custom resource (CR).
* Use the `spec.nodeagent.podConfig.nodeSelector` object for simple node matching.
* Use the `loadAffinity.nodeSelector` object without the `podConfig.nodeSelector` object for more complex scenarios.
* You can use both `podConfig.nodeSelector` and `loadAffinity.nodeSelector` objects, but the `loadAffinity` object must be equal or more restrictive as compared to the `podConfig` object. In this scenario, the `podConfig.nodeSelector` labels must be a subset of the labels used in the `loadAffinity.nodeSelector` object.
* You cannot use the `matchExpressions` and `matchLabels` fields if you have configured both `podConfig.nodeSelector` and `loadAffinity.nodeSelector` objects in the DPA.
* See the following example to configure both `podConfig.nodeSelector` and `loadAffinity.nodeSelector` objects in the DPA.
+
[source,yaml]
----
...
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadAffinity:
- nodeSelector:
matchLabels:
label.io/location: 'US'
label.io/gpu: 'no'
podConfig:
nodeSelector:
label.io/gpu: 'no'
----