Skip to content

Commit 7e6e064

Browse files
authored
Merge pull request #1574 from dankova22/resource-docs
Update documentation on resources and timeouts
2 parents 66c2106 + 0a62d58 commit 7e6e064

File tree

4 files changed

+21
-0
lines changed

4 files changed

+21
-0
lines changed

charts/aws-efs-csi-driver/templates/controller-deployment.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,12 @@ spec:
137137
{{- if hasKey .Values.controller "leaderElectionLeaseDuration" }}
138138
- --leader-election-lease-duration={{ .Values.controller.leaderElectionLeaseDuration }}
139139
{{- end }}
140+
{{- if hasKey .Values.controller "workerThreads" }}
141+
- --worker-threads={{ .Values.controller.workerThreads }}
142+
{{- end }}
143+
{{- if hasKey .Values.controller "timeout" }}
144+
- --timeout={{ .Values.controller.timeout }}
145+
{{- end }}
140146
{{- range .Values.sidecars.csiProvisioner.additionalArgs }}
141147
- {{ . }}
142148
{{- end }}

charts/aws-efs-csi-driver/values.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ controller:
124124
privileged: true
125125
leaderElectionRenewDeadline: 10s
126126
leaderElectionLeaseDuration: 15s
127+
# Timeout for Create/DeleteVolume calls to Controller. We recommend increasing for high concurrency workloads
128+
timeout: 15s
129+
# Number of concurrent threads controller will handle at once.
130+
workerThreads: 100
127131
# TSCs without the label selector stanza
128132
#
129133
# Example:

deploy/kubernetes/base/controller-deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ spec:
7777
- --feature-gates=Topology=true
7878
- --extra-create-metadata
7979
- --leader-election
80+
- --worker-threads=100
81+
- --timeout=15s
8082
env:
8183
- name: ADDRESS
8284
value: /var/lib/csi/sockets/pluginproxy/csi.sock

docs/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,15 @@ Before following the examples, you need to:
421421
* [Mount subpath](../examples/kubernetes/volume_path/README.md)
422422
* [Use Access Points](../examples/kubernetes/access_points/README.md)
423423

424+
## Resource limits
425+
The controller container has different memory / CPU requirements based on the workload scale, concurrency, and configurations. When configuring your controller with `delete-access-point-root-dir=true`, we recommend setting higher resource limits if your workload requires many concurrent volume deletions. For example, for a workload that requires 100 concurrent PVC deletions, we recommend setting a minimum CPU limit of 3000m and a minimum memory limit of 2.5 GiB.
426+
427+
Alternatively, if you would prefer not to allocate these resources to your controller container, we advise lowering concurrency by lowering the `--worker-threads` argument of the [external-provisioner](https://github.com/kubernetes-csi/external-provisioner).
428+
429+
## Timeouts
430+
For most highly concurrent workloads, we recommend increasing the default timeout argument set in the [external-provisioner](https://github.com/kubernetes-csi/external-provisioner) from 15 seconds to 60 seconds. This will avoid provisioning failures due to throttling and resource contention in the controller container.
431+
432+
424433
## Using botocore to retrieve mount target ip address when dns name cannot be resolved
425434
* Amazon EFS CSI driver supports using botocore to retrieve mount target ip address when dns name cannot be resolved, e.g., when user is mounting a file system in another VPC, botocore comes preinstalled on efs-csi-driver which can solve this DNS issue.
426435
* IAM policy prerequisites to use this feature :

0 commit comments

Comments
 (0)