skip to main content
10.1145/3149457.3149473acmotherconferencesArticle/Chapter ViewAbstractPublication PageshpcasiaConference Proceedingsconference-collections
research-article

A Portable Load Balancer for Kubernetes Cluster

Authors Info & Claims
Published:28 January 2018Publication History

ABSTRACT

Linux containers have become very popular these days due to their lightweight nature and portability. Numerous web services are now deployed as clusters of containers. Kubernetes is a popular container management system that enables users to deploy such web services easily, and hence, it facilitates web service migration to the other side of the world. However, since Kubernetes relies on external load balancers provided by cloud providers, it is difficult to use in environments where there are no supported load balancers. This is particularly true for on-premise data centers, or for all but the largest cloud providers. In this paper, we proposed a portable load balancer that was usable in any environment, and hence facilitated web services migration. We implemented a containerized software load balancer that is run by Kubernetes as a part of container cluster, using Linux kernel's Internet Protocol Virtual Server(IPVS). Then we compared the performance of our proposed load balancer with existing iptables Destination Network Address Translation (DNAT) and the Nginx load balancers. During our experiments, we also clarified the importance of two network conditions to derive the best performance: the first was the choice of the overlay network operation mode, and the second was distributing packet processing to multiple cores. The results indicated that our proposed IPVS load balancer improved portability of web services without sacrificing the performance.

References

  1. The Kubernetes Authors. 2017. Federation. (2017). Retrieved July 14, 2017 from https://kubernetes.io/docs/concepts/cluster-administration/federation/Google ScholarGoogle Scholar
  2. The Kubernetes Authors. 2017. Ingress Resources | Kubernetes. (2017). Retrieved July 14, 2017 from https://kubernetes.io/docs/concepts/services-networking/ingress/Google ScholarGoogle Scholar
  3. The Kubernetes Authors. 2017. Kubernetes | Production-Grade Container Orchestration. (2017). Retrieved July 14, 2017 from https://kubernetes.io/Google ScholarGoogle Scholar
  4. Bert Hubert, Gregory Maxwell, Remco van Mook, Martijn van Oosterhout, Paul B Schroeder, and Jasper Spaans. 2002. Linux Advanced Routing & Traffic Control HOWTO. (2002), 11. Netfilter & iproute -- marking packets pages. http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/index.htmlGoogle ScholarGoogle Scholar
  5. Alexandre Cassen. {n. d.}. Keepalived for Linux. ({n. d.}). Retrieved July 14, 2017 from http://www.keepalived.org/Google ScholarGoogle Scholar
  6. Inc CoreOS. {n. d.}. Backend. ({n. d.}). https://github.com/coreos/flannel/blob/master/Documentation/backends.mdGoogle ScholarGoogle Scholar
  7. Inc CoreOS. {n. d.}. etcd | etcd Cluster by CoreOS. ({n. d.}). https://coreos.com/etcdGoogle ScholarGoogle Scholar
  8. Inc CoreOS. {n. d.}. flannel. ({n. d.}). https://github.com/coreos/flannelGoogle ScholarGoogle Scholar
  9. Docker Inc. 2017. Use swarm mode routing mesh | Docker Documentation. (2017). https://docs.docker.com/engine/swarm/ingress/Google ScholarGoogle Scholar
  10. Docker Core Engineering. 2016. Docker 1.12: Now with Built-in Orchestration! - Docker Blog. (2016). Retrieved July 14, 2017 from https://blog.docker.com/2016/06/docker-1-12-built-in-orchestration/Google ScholarGoogle Scholar
  11. Will Glozer. 2012. wrk - a HTTP benchmarking tool. (2012). Retrieved July 14, 2017 from https://github.com/wg/wrkGoogle ScholarGoogle Scholar
  12. HashiCorp. {n. d.}. Consul by HashiCorp. ({n. d.}). https://www.consul.io/Google ScholarGoogle Scholar
  13. Robert Hinden. 2004. Virtual router redundancy protocol (VRRP). (2004).Google ScholarGoogle Scholar
  14. NGINX Inc. 2017. NGINX Ingress Controller. (2017). Retrieved July 14, 2017 from https://github.com/nginxinc/kubernetes-ingressGoogle ScholarGoogle Scholar
  15. Van Jacobson, Craig Leres, and S McCanne. 1989. The tcpdump manual page. Lawrence Berkeley Laboratory, Berkeley, CA 143 (1989).Google ScholarGoogle Scholar
  16. ktaka ccmp. 2017. ktaka-ccmp/ipvs-ingress: Initial Release. (July 2017).Google ScholarGoogle Scholar
  17. Victor Marmol, Rohit Jnagal, and Tim Hockin. 2015. Networking in Containers and Container Clusters. Netdev (2015).Google ScholarGoogle Scholar
  18. Martin A. Brown. 2007. Guide to IP Layer Network Administration with Linux. (2007), 5.5. Destination NAT with netfilter (DNAT) pages. http://linux-ip.net/html/index.htmlGoogle ScholarGoogle Scholar
  19. Tero Marttila. 2016-10-27. Design and Implementation of the clusterf Load Balancer for Docker Clusters. Master's Thesis, Aalto University. http://urn.fi/URN:NBN:fi:aalto-201611025433Google ScholarGoogle Scholar
  20. John Moy. 1997. OSPF version 2. (1997).Google ScholarGoogle Scholar
  21. Michael Pleshakov. 2016. NGINX and NGINX Plus Ingress Controllers for Kubernetes Load Balancing. (Dec. 2016). Retrieved July 14, 2017 from https://www.nginx.com/blog/nginx-plus-ingress-controller-kubernetes-load-balancing/Google ScholarGoogle Scholar
  22. Bowei Du Prashanth B, Mike Danese. 2016. kube-keepalived-vip. (2016). Retrieved July 14, 2017 from https://github.com/kubernetes/contrib/tree/master/keepalived-vipGoogle ScholarGoogle Scholar
  23. Andrey Sibiryov. 2015. GORB Go Routing and Balancing. (2015). Retrieved July 14, 2017 from https://github.com/kobolog/gorbGoogle ScholarGoogle Scholar
  24. Alan Sill. 2016. Standards Underlying Cloud Networking. IEEE Cloud Computing 3, 3 (2016), 76--80.Google ScholarGoogle Scholar
  25. Tom Herbert and Willem de Bruijn. {n. d.}. Scaling in the Linux Networking Stack. ({n. d.}). https://www.kernel.org/doc/Documentation/networking/scaling.txtGoogle ScholarGoogle Scholar
  26. Wensong Zhang. 2000. Linux virtual server for scalable network services. Ottawa Linux Symposium (2000).Google ScholarGoogle Scholar

Index Terms

  1. A Portable Load Balancer for Kubernetes Cluster

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Other conferences
          HPCAsia '18: Proceedings of the International Conference on High Performance Computing in Asia-Pacific Region
          January 2018
          322 pages
          ISBN:9781450353724
          DOI:10.1145/3149457

          Copyright © 2018 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 28 January 2018

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed limited

          Acceptance Rates

          HPCAsia '18 Paper Acceptance Rate30of67submissions,45%Overall Acceptance Rate69of143submissions,48%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader