We are planning to create multiple clusters on a single server (single instance) with PostgreSQL V.10 to run multiple applications.
Planning to create a database cluster on a release 10 sounds already like a bad idea, as release 10 will be maintained till november. After November 2022, no more bug fixes for this release. You really should use a more recent release.
I don't know if it is a good idea to use a single machine to run n clusters but we are looking to minimize the cost of servers and other resources.
Please share your thoughts on this approach?
It would make things easier for you to use a single cluster, and as many databases as you want in this cluster.
How can we create multiple clusters under a single postgres version?
Mostly depends on your operating system, and on how you installed PostgreSQL in the first place. The usual answer would be to run initdb for each cluster.
How can we identify/allocate the resources to parameters like shared_buffers, effective_cache_size, work_mem etc in case of multiple clusters?
That's the hard part if you have many clusters. You will have to determine by yourself how much memory each cluster will need. If you use only one cluster (and many databases in it), you would use the usual formula to set these parameters.