  Collaborative edge computing (CEC) is an emerging paradigm enabling sharing
of the coupled data, computation, and networking resources among heterogeneous
geo-distributed edge nodes. Recently, there has been a trend to orchestrate and
schedule containerized application workloads in CEC, while Kubernetes has
become the de-facto standard broadly adopted by the industry and academia.
However, Kubernetes is not preferable for CEC because its design is not
dedicated to edge computing and neglects the unique features of edge
nativeness. More specifically, Kubernetes primarily ensures resource provision
of workloads while neglecting the performance requirements of edge-native
applications, such as throughput and latency. Furthermore, Kubernetes neglects
the inner dependencies of edge-native applications and fails to consider data
locality and networking resources, leading to inferior performance. In this
work, we design and develop ENTS, the first edge-native task scheduling system,
to manage the distributed edge resources and facilitate efficient task
scheduling to optimize the performance of edge-native applications. ENTS
extends Kubernetes with the unique ability to collaboratively schedule
computation and networking resources by comprehensively considering job profile
and resource status. We showcase the superior efficacy of ENTS with a case
study on data streaming applications. We mathematically formulate a joint task
allocation and flow scheduling problem that maximizes the job throughput. We
design two novel online scheduling algorithms to optimally decide the task
allocation, bandwidth allocation, and flow routing policies. The extensive
experiments on a real-world edge video analytics application show that ENTS
achieves 43\%-220\% higher average job throughput compared with the
state-of-the-art.
