Can all the nodes maintain all the shards?

Each node maintains as many shards as it is able to; if a shard becomes too heavy for the node, it will automatically drop that shard. The more shards a node services, the more likely it is to get fees.