Additional Node DaemonSets Feature
September 12, 2023 ยท View on GitHub
In some situations, it is desirable to create multiple node DaemonSets of the EBS CSI Driver. For example, when specifying .node.volumeAttachLimit, the limit may differ by node instance type or role.
The EBS CSI Driver Helm chart supports the creation of additional DaemonSets via the .additionalDaemonSets parameter. Node configuration from the values supplied to .node are taken as a default, with the values supplied in the .additionalDaemonSets configuration as overrides. An additional Linux (and Windows, if enabled) DaemonSet will be rendered for each entry in additionalDaemonSets.
WARNING: The EBS CSI Driver does not support running multiple node pods on the same node. If you use this feature, ensure that all nodes are targeted by no more than one DaemonSets.
Example
For example, the following configuration would produce three DaemonSets:
node:
nodeSelector:
node.kubernetes.io/instance-type: c5.large
volumeAttachLimit: 25
resources:
limits:
memory: 512Mi
additionalDaemonSets:
big:
nodeSelector:
node.kubernetes.io/instance-type: m7i.48xlarge
volumeAttachLimit: 100
small:
nodeSelector:
node.kubernetes.io/instance-type: t3.medium
volumeAttachLimit: 5
resources:
limits:
memory: 128Mi
The DaemonSets would be configured as follows:
ebs-csi-node(the defaultDaemonSet)
Runs onc5.largeinstances with a volume limit of 25 and 512Mi memory limit.ebs-csi-node-big
Runs onm7i.48xlargeinstances with a volume limit of 100 and 512Mi memory limit.
Note how the volume limit is inherited from the.nodeconfiguration because this config does not specify them. This way,.nodecan be used to set defaults for all theDaemonSets.ebs-csi-node-small
Runs ont3.mediuminstances with a volume limit of 5 and 128Mi memory limit.