\documentclass[10pt]{article}

\usepackage{fullpage}
\usepackage{setspace}
\usepackage{parskip}
\usepackage{titlesec}
\usepackage[section]{placeins}
\usepackage{xcolor}
\usepackage{breakcites}
\usepackage{lineno}
\usepackage{hyphenat}





\PassOptionsToPackage{hyphens}{url}
\usepackage[colorlinks = true,
            linkcolor = blue,
            urlcolor  = blue,
            citecolor = blue,
            anchorcolor = blue]{hyperref}
\usepackage{etoolbox}
\makeatletter
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{%
  \errmessage{\noexpand\@combinedblfloats could not be patched}%
}%
\makeatother


\usepackage{natbib}




\renewenvironment{abstract}
  {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize}
  {\bigskip}

\titlespacing{\section}{0pt}{*3}{*1}
\titlespacing{\subsection}{0pt}{*2}{*0.5}
\titlespacing{\subsubsection}{0pt}{*1.5}{0pt}


\usepackage{authblk}


\usepackage{graphicx}
\usepackage[space]{grffile}
\usepackage{latexsym}
\usepackage{textcomp}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs,array,multirow}
\usepackage{amsfonts,amsmath,amssymb}
\providecommand\citet{\cite}
\providecommand\citep{\cite}
\providecommand\citealt{\cite}
% You can conditionalize code for latexml or normal latex using this.
\newif\iflatexml\latexmlfalse
\providecommand{\tightlist}{\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}%

\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}}

\usepackage[utf8]{inputenc}
\usepackage[ngerman,english]{babel}



\usepackage{float}








\begin{document}

\title{DRS: A Deep Reinforcement Learning enhanced Kubernetes Scheduler for
Microservice-based System}



\author[1]{Zhaolong Jian}%
\author[1]{Xueshuo Xie}%
\author[1]{Yaozheng Fang}%
\author[1]{Yibing Jiang}%
\author[1]{Tao Li}%
\author[1]{Ye Lu}%
\affil[1]{Nankai University College of Computer Science}%


\vspace{-1em}



  
  \date{May 29, 2024}


\begingroup
\let\center\flushleft
\let\endcenter\endflushleft
\maketitle
\endgroup





\selectlanguage{english}
\begin{abstract}
Recently, Kubernetes is widely used to manage and schedule the resources
of microservices in cloud-native distributed applications, as the most
famous container orchestration framework. However, Kubernetes
preferentially schedules microservices to nodes with rich and balanced
CPU and memory resources on a single node. The native scheduler of
Kubernetes, called Kube-scheduler, may cause resource fragmentation and
decrease resource utilization. In this paper, we propose a deep
reinforcement learning enhanced Kubernetes scheduler named DRS. To
improve resource utilization and reduce load imbalance, we first present
the Kubernetes scheduling problem as a Markov decision process and
elaborately designed the \emph{state}, \emph{action}, and \emph{reward}.
Then, we design and implement DRS mointor to perceive six metrics about
resource utilization to construct a comprehensive global resource view.
Finally, DRS can automatically learn the scheduling policy through
interaction with the Kubernetes cluster, without relying on expert
knowledge about workload and cluster status. We implement a prototype of
DRS in a Kubernetes cluster with five nodes and evaluate its
performance. Experimental results highlight that DRS overcomes the
shortcomings of Kube-scheduler and achieve the expected scheduling
target with three workloads. Compared with Kube-scheduler, DRS brings an
improvement of 27.29\% in resource utilization and reduce the load
imbalance by 2 \emph{.}90\selectlanguage{ngerman}× on average, with only 3.27\% CPU overhead and
0.648\% communication latency.%
\end{abstract}\selectlanguage{ngerman}%



\sloppy




\selectlanguage{english}
\FloatBarrier
\end{document}

