ML is disabled for a few reasons:
- One of them is that it is not fully supported by the platform. For example, I do not recommend to create clusters with enabled ML using a topology with 2 availability zones (you should use either 1 or 3 AZ) because in this particular case we create a thin tiebreaker node to support the cluster's quorum. ML job can end up on that node and that can cause its failure.
- Another reason is that we want a user to make a conscious choice. For example, we highly recommend having a dedicated cluster with enabled ML because machine learning process is quite greedy for resources.
Also, we have a great blog post about planning ML for production: Sizing for Machine Learning with Elasticsearch