What would be the best architecture to configure a IDS for micro services, two things came into my mind instantly as following.
What are the pros or cons in following above methods, or are there anyother things to consider?
Generally you should not expose all your services to the internet. It is better to have Gateways as entry points (as you mentioned) to your services. Then you do not need to increase the complexity of the services.
Therefore my opinion is to go with the first answer you gave to your question and configure IDS at the entry point of the Microservice architecture. This way you detect anything triggering your services and keep the services focused on their service.
A good read for Microservices patterns is either Chris Richardsons microservices.io or Martin Fowler's blog articles on Microservices.