Is it necessary to give only elasticsearch master nodes in kibana config

Elasticsearch and Kibana version: 7.3.1

I'm deploying Elasticsearch (3 nodes) and Kibana on docker.

node1: elasticsearch master(data) and kibana
node2: elasticsearch (data)
node3: elasticsearch (data)

our kibana config looks like this:

server.name: kibana
elasticsearch.hosts: [ "http://node1:9200" ]
elasticsearch.requestTimeout: 60000

with above setup Kibana won't start up with following error:

{"type":"log","@timestamp":"2021-06-10T08:51:41Z","tags":["error","elasticsearch","admin"],"pid":6,"message":"Request error, retrying\nGET http://node1:9200/_nodes?filter_path=nodes.*.version%2Cnodes.*.http.publish_address%2Cnodes.*.ip => connect EHOSTUNREACH xx.xx.xx.xx:9200"}
{"type":"log","@timestamp":"2021-06-10T08:51:42Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"Unable to revive connection: http://node1:9200/"}
{"type":"log","@timestamp":"2021-06-10T08:51:42Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"No living connections"}

When I do curl request from kibana container to master node, I get No route to host. But curl request to other elasticsearch node (on different VM works).

So as a workaround I'm planning to add all three nodes to elasticsearch.hosts in kibana.yaml. Is that okay? Or it needs to connect to master node specifically?