Serverless computing is leading the way to a simplified and general purpose programming model for the cloud. A key enabler behind serverless is efficient load balancing, which routes continuous workloads to appropriate backend resources. However, current load balancing algorithms implemented in Kubernetes native serverless platforms are simple heuristics without performance guarantee. Although policies such as Pod or JFIQ yield asymptotically optimal mean response time, the information they depend on are usually unavailable. In addition, dispatching jobs with strict deadlines, fractional workloads, and maximum parallelism bound to limited resources online is difficult because the resource allocation decisions for jobs are intertwined. To design an online load balancing algorithm without assumptions on distributions while maximizing the social welfare, we construct several pseudo-social welfare functions and cost functions, where the latter is to estimate the marginal cost for provisioning services to every newly arrived job based on present resource surplus. The proposed algorithm, named OnSocMax, works by following the solutions of several convex pseudo-social welfare maximization problems. It is proved to be α-competitive for some α at least 2. We also validate OnSocMax with simulations and the results show that it distinctly outperforms several handcrafted benchmarks.