Install Conductor on ARM-based clusters (Enterprise)
Conductor is compatible with ARM-based Kubernetes clusters, and in most cases, the Conductor agent should work out of the box at installation time. However, some managed platform providers and ops teams make use of taints and have a mix of ARM and x86 nodes, which can potentially impact the successful deployment of the agent.
In these cases, tolerations and potentially node selectors will need to be configured on the Conductor agent and Dapr control plane to allow for successful cluster scheduling.
ARM Tolerations
In some cases, i.e. in the case of Google Kubernetes Engine (GKE), ARM nodes are tainted with kubernetes.io/arch=arm64:NoSchedule
which prevents the Conductor and Dapr control plane resources from being successfully scheduled.
In order to compensate for this taint, the below tolerations should be added to the diagrid-agent
Deployment, the diagrid-agent-logs-collector
DaemonSet and the Dapr control plane resources.
- Add the following toleration to both the Agent Deployment and Logs Collector Daemonset in the agent advanced configuration section of the related cluster connection.
tolerations:
- key: "kubernetes.io/arch"
operator: "Equal"
value: "arm64"
effect: "NoSchedule"
For the Dapr control plane resources, add the tolerations to the Helm arguments in the global section as follows.
global:
tolerations:
- key: "kubernetes.io/arch"
operator: "Equal"
value: "arm64"
effect: "NoSchedule"