Bitcoin Core (the most common type of node) has 3 methods of discovering peers. First it consults an internal database of peers it knows about. For a new node, this will be empty. Then it will consult a set of servers called DNS seeders. The DNS seeders give out the IP addresses of nodes that a node can connect to. The node will connect to these nodes only temporarily to gather the IP addresses of other nodes it can also connect to. It will then connect to those nodes. Lastly, if the previous two were unavailable, the node will consult a built in list of seed nodes. It does the same thing with these seed nodes that it did with nodes returned by the DNS seeders.
Thanks for explanation achow101. Does it mean that DNS seeders (primary and built in) are set of "hardcoded" servers which are basically critical point of bitcoin core and if those servers won't be available whole blockchain will stop functioning (as eventually nodes won't be able to discover each other)?