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.
- The Kubernetes Authors. 2017. Federation. (2017). Retrieved July 14, 2017 from https://kubernetes.io/docs/concepts/cluster-administration/federation/Google Scholar
- The Kubernetes Authors. 2017. Ingress Resources | Kubernetes. (2017). Retrieved July 14, 2017 from https://kubernetes.io/docs/concepts/services-networking/ingress/Google Scholar
- The Kubernetes Authors. 2017. Kubernetes | Production-Grade Container Orchestration. (2017). Retrieved July 14, 2017 from https://kubernetes.io/Google Scholar
- 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 Scholar
- Alexandre Cassen. {n. d.}. Keepalived for Linux. ({n. d.}). Retrieved July 14, 2017 from http://www.keepalived.org/Google Scholar
- Inc CoreOS. {n. d.}. Backend. ({n. d.}). https://github.com/coreos/flannel/blob/master/Documentation/backends.mdGoogle Scholar
- Inc CoreOS. {n. d.}. etcd | etcd Cluster by CoreOS. ({n. d.}). https://coreos.com/etcdGoogle Scholar
- Inc CoreOS. {n. d.}. flannel. ({n. d.}). https://github.com/coreos/flannelGoogle Scholar
- Docker Inc. 2017. Use swarm mode routing mesh | Docker Documentation. (2017). https://docs.docker.com/engine/swarm/ingress/Google Scholar
- 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 Scholar
- Will Glozer. 2012. wrk - a HTTP benchmarking tool. (2012). Retrieved July 14, 2017 from https://github.com/wg/wrkGoogle Scholar
- HashiCorp. {n. d.}. Consul by HashiCorp. ({n. d.}). https://www.consul.io/Google Scholar
- Robert Hinden. 2004. Virtual router redundancy protocol (VRRP). (2004).Google Scholar
- NGINX Inc. 2017. NGINX Ingress Controller. (2017). Retrieved July 14, 2017 from https://github.com/nginxinc/kubernetes-ingressGoogle Scholar
- Van Jacobson, Craig Leres, and S McCanne. 1989. The tcpdump manual page. Lawrence Berkeley Laboratory, Berkeley, CA 143 (1989).Google Scholar
- ktaka ccmp. 2017. ktaka-ccmp/ipvs-ingress: Initial Release. (July 2017).Google Scholar
- Victor Marmol, Rohit Jnagal, and Tim Hockin. 2015. Networking in Containers and Container Clusters. Netdev (2015).Google Scholar
- 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 Scholar
- 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 Scholar
- John Moy. 1997. OSPF version 2. (1997).Google Scholar
- 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 Scholar
- 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 Scholar
- Andrey Sibiryov. 2015. GORB Go Routing and Balancing. (2015). Retrieved July 14, 2017 from https://github.com/kobolog/gorbGoogle Scholar
- Alan Sill. 2016. Standards Underlying Cloud Networking. IEEE Cloud Computing 3, 3 (2016), 76--80.Google Scholar
- 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 Scholar
- Wensong Zhang. 2000. Linux virtual server for scalable network services. Ottawa Linux Symposium (2000).Google Scholar
Index Terms
- A Portable Load Balancer for Kubernetes Cluster
Recommendations
Research on Kubernetes' Resource Scheduling Scheme
ICCNS '18: Proceedings of the 8th International Conference on Communication and Network SecurityCurrently, Google's open source container orchestration tool Kubernetes (K8s for short) has become the standard of fact for deploying containerized applications on a large scale in private, public, and hybrid cloud environments. By studying the ...
State machine replication in containers managed by Kubernetes
Computer virtualization brought fast resource provisioning to data centers and the deployment of pay-per-use cost models. The system virtualization provided by containers like Docker has improved this flexibility of resource provisioning. Applications ...
A bi-metric autoscaling approach for n-tier web applications on kubernetes
AbstractContainer-based virtualization techniques are becoming an alternative to traditional virtual machines, due to less overhead and better scaling. As one of the most widely used open-source container orchestration systems, Kubernetes provides a built-...
Comments