allocation to customers
This problem is an instance of the more general assignment problem. In the assignment problem you have:


  The assigment problem has a number of agents and a number of tasks. Any agent can be assigned to perform any task, incurring some cost that may vary depending on the agent-task assignment. It is required to perform all tasks by assigning exactly one agent to each task and exactly one task to each agent in such a way that the total cost of the assignment is minimized.


In your description the agents are drivers and the tasks are "driving to the pickup location", the cost can be either the eta or the distance of the driver's location to the pickup location. 

There are a number of algorithms for solving this problem, one of the most famous is the Hungarian algorithm also known as Kuhn-Munkres algorithm.  There is an implementation of the algorithm in the scipy library (this is in Python), under the name of linear_sum_assignment, the documentation is here.