In official document, the default replicas of argo-server and workflow-controller is set to 1. Should it be set to 3 in the production environment for high availability?
According to Argo's scaling documentation, the Argo Workflows controller cannot be horizontally scaled. In other words, you should only have one replica.
You can have multiple Argo installations (called "instances" in their documentation) if you're okay splitting your work up that way. You can also vertically scale the single controller replica to better handle large workflows or high numbers of workflows.
UPDATE: the latest version of argo-workflows supports multiple replicas for the controller with leader election which improves availability (reference: https://blog.argoproj.io/argo-workflows-v3-0-4d0b69f15a6e)