{"id":3140,"date":"2016-10-27T17:18:21","date_gmt":"2016-10-27T21:18:21","guid":{"rendered":"https:\/\/www.globo.tech\/learning-center\/?p=3140"},"modified":"2017-11-24T18:10:46","modified_gmt":"2017-11-24T23:10:46","slug":"ha-load-balancing-keepalived-ubuntu-14","status":"publish","type":"post","link":"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/","title":{"rendered":"How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14"},"content":{"rendered":"<h1>How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14<\/h1>\n<p>Load balancing is a way to distribute workloads across multiple computing resources such that large, resource-intensive tasks may be safely and reliable completed with more efficiency and speed than if just one machine were to perform the tasks.<\/p>\n<p>Keepalived is a free and open source load balancing solution for Linux systems. This guide will go over the installation process for Keepalived on Ubuntu 14.04 and how you can use it for load balancing on your Linux clusters.<\/p>\n<h2>Getting Started<\/h2>\n<p>Before you begin to follow the steps in this guide, make sure that you meet these requirements:<br \/>\n\u2022 Two servers (<a href=\"https:\/\/www.globo.tech\/cloud-server-pricing\" target=\"_blank\"><b>Cloud Server<\/b><\/a> or <a href=\"http:\/\/www.globo.tech\/dedicated-server-hosting\" target=\"_blank\"><b>Dedicated Server<\/b><\/a>), each running a fresh installation of Ubuntu 14.04. We will call these servers LB1 and LB2 below<br \/>\n\u2022 Both servers connected to the same LAN<br \/>\n\u2022 Root access to both servers<\/p>\n<p>For the purposes of this guide, we&#8217;ll be working with a public network of 173.209.49.66\/29 and a class A private network, or LAN, of 10.119.0.0\/24.<\/p>\n<h2>Tutorial<\/h2>\n<p>For your reference, here are the servers, or load balancers, we&#8217;ll be working with, along with their respective public and private IP addresses. Where necessary, remember to replace with the IP addresses for your own servers.<\/p>\n<p>LB1<br \/>\nPublic:173.209.49.66<br \/>\nPrivate:10.119.0.1<\/p>\n<p>LB2<br \/>\nPublic:173.209.49.67<br \/>\nPrivate:10.119.0.2<\/p>\n<p>The load balancers will make use of a &#8220;floating IP&#8221;, and we&#8217;ll configure active and passive redundancy as well.<\/p>\n<p>Floating<br \/>\nPublic:173.209.49.70<br \/>\nPrivate:10.119.0.10<\/p>\n<p>The first task is to ensure that the systems of both servers are fully up to date.<\/p>\n<p><code>apt-get update<br \/>\napt-get -y upgrade<\/code><\/p>\n<p>If it&#8217;s installed, disable Ubuntu&#8217;s default firewall.<\/p>\n<p><code>ufw disable<\/code><\/p>\n<p>The next step is to install Keepalived and all necessary dependencies.<\/p>\n<p><code>apt-get install linux-headers-$(uname -r) keepalived<\/code><\/p>\n<p>Use this command to activate Keepalived on boot. We&#8217;ll also enable the ipvsadm kernel module.<\/p>\n<p><code>update-rc.d keepalived defaults<br \/>\nmodprobe ip_vs<\/code><\/p>\n<p>Now we&#8217;ll have to configure Keepalived for our setup.<\/p>\n<p><code>echo \"\" > \/etc\/keepalived\/keepalived.conf<br \/>\nnano \/etc\/keepalived\/keepalived.conf<\/code><\/p>\n<p>Here&#8217;s the alterations for the LB1 server.<\/p>\n<p><code class=\"gris\">vrrp_instance VI_LOCAL {<br \/>\n        interface eth1<br \/>\n        state MASTER<br \/>\n        virtual_router_id 51<br \/>\n        priority 101<br \/>\n        virtual_ipaddress {<br \/>\n                10.119.0.10<br \/>\n        }<br \/>\n        track_interface {<br \/>\n                eth0<br \/>\n                eth1<br \/>\n        }<br \/>\n}<br \/>\nvrrp_instance VI_PUB {<br \/>\n        interface eth0<br \/>\n        state MASTER<br \/>\n        virtual_router_id 52<br \/>\n        priority 101<br \/>\n        virtual_ipaddress {<br \/>\n                173.209.49.70<br \/>\n        }<br \/>\n        track_interface {<br \/>\n                eth0<br \/>\n                eth1<br \/>\n        }<br \/>\n}<br \/>\nvirtual_server 173.209.49.70 443 {<br \/>\n        delay_loop 4<br \/>\n        lb_algo sh      # source hash<br \/>\n        lb_kind NAT<br \/>\n        protocol TCP<br \/>\n        real_server 10.119.0.100 443 {<br \/>\n                weight 1<br \/>\n                TCP_CHECK {<br \/>\n                        connect_timeout 15<br \/>\n                        nb_get_retry 3<br \/>\n                        delay_before_retry 2<br \/>\n                }<br \/>\n        }<br \/>\n        real_server 10.119.0.101 443 {<br \/>\n                weight 1<br \/>\n                TCP_CHECK {<br \/>\n                        connect_timeout 15<br \/>\n                        nb_get_retry 3<br \/>\n                        delay_before_retry 2<br \/>\n                }<br \/>\n        }<br \/>\n}<br \/>\nvirtual_server 173.209.49.70 80 {<br \/>\n        delay_loop 4<br \/>\n        lb_algo wrr      # weighted round robin<br \/>\n        lb_kind NAT<br \/>\n        protocol TCP<br \/>\n        real_server 10.119.0.100 80 {<br \/>\n                weight 1<br \/>\n                TCP_CHECK {<br \/>\n                        connect_timeout 15<br \/>\n                        nb_get_retry 3<br \/>\n                        delay_before_retry 2<br \/>\n                }<br \/>\n        }<br \/>\n        real_server 10.119.0.101 80 {<br \/>\n                weight 1<br \/>\n                TCP_CHECK {<br \/>\n                        connect_timeout 15<br \/>\n                        nb_get_retry 3<br \/>\n                        delay_before_retry 2<br \/>\n                }<br \/>\n        }<br \/>\n}<\/code><\/p>\n<p>And these alterations will be applied to the LB2 server.<\/p>\n<p><code class=\"gris\">vrrp_instance VI_LOCAL {<br \/>\n        interface eth1<br \/>\n        state BACKUP<br \/>\n        virtual_router_id 51<br \/>\n        priority 100<br \/>\n        virtual_ipaddress {<br \/>\n                10.119.0.10<br \/>\n        }<br \/>\n        track_interface {<br \/>\n                eth0<br \/>\n                eth1<br \/>\n        }<br \/>\n}<br \/>\nvrrp_instance VI_PUB {<br \/>\n        interface eth0<br \/>\n        state BACKUP<br \/>\n        virtual_router_id 52<br \/>\n        priority 100<br \/>\n        virtual_ipaddress {<br \/>\n                173.209.49.70<br \/>\n        }<br \/>\n        track_interface {<br \/>\n                eth0<br \/>\n                eth1<br \/>\n        }<br \/>\n}<br \/>\nvirtual_server 173.209.49.70 443 {<br \/>\n        delay_loop 4<br \/>\n        lb_algo sh      # source hash<br \/>\n        lb_kind NAT<br \/>\n        protocol TCP<br \/>\n        real_server 10.119.0.100 443 {<br \/>\n                weight 1<br \/>\n                TCP_CHECK {<br \/>\n                        connect_timeout 15<br \/>\n                        nb_get_retry 3<br \/>\n                        delay_before_retry 2<br \/>\n                }<br \/>\n        }<br \/>\n        real_server 10.119.0.101 443 {<br \/>\n                weight 1<br \/>\n                TCP_CHECK {<br \/>\n                        connect_timeout 15<br \/>\n                        nb_get_retry 3<br \/>\n                        delay_before_retry 2<br \/>\n                }<br \/>\n        }<br \/>\n}<br \/>\nvirtual_server 173.209.49.70 80 {<br \/>\n        delay_loop 4<br \/>\n        lb_algo wrr      # weighted round robin<br \/>\n        lb_kind NAT<br \/>\n        protocol TCP<br \/>\n        real_server 10.119.0.100 80 {<br \/>\n                weight 1<br \/>\n                TCP_CHECK {<br \/>\n                        connect_timeout 15<br \/>\n                        nb_get_retry 3<br \/>\n                        delay_before_retry 2<br \/>\n                }<br \/>\n        }<br \/>\n        real_server 10.119.0.101 80 {<br \/>\n                weight 1<br \/>\n                TCP_CHECK {<br \/>\n                        connect_timeout 15<br \/>\n                        nb_get_retry 3<br \/>\n                        delay_before_retry 2<br \/>\n                }<br \/>\n        }<br \/>\n}<\/code><\/p>\n<p>The &#8220;virtual_router_id&#8221; setting must be unique for each of the defined VRRP instances, and it should also be unique within your VLAN. Make sure you&#8217;re not using the same ID on any two clusters connected via the same physical switch or VLAN. Naturally, this ID needs to match on both LB1 and LB2 for the same VRRP instance. Valid values are from 0 to 255.<\/p>\n<p>Now, enable nf_conntrack and we can proceed to sysctl configuration.<\/p>\n<p><code>modprobe nf_conntrack<br \/>\nnano \/etc\/sysctl.conf<\/code><\/p>\n<p>Alter the configuration so it matches the below:<\/p>\n<p><code class=\"gris\">net.ipv4.ip_forward = 1<br \/>\nnet.ipv4.ip_nonlocal_bind = 1<br \/>\nnet.nf_conntrack_max = 1000000<\/code><\/p>\n<p>Now, apply the changes.<br \/>\n<code>sysctl -p<\/code><\/p>\n<p>Finally, we can start up Keepalived.<\/p>\n<p><code>service keepalived start<\/code><\/p>\n<p>Let&#8217;s verify that Keepalived is running in the expected manner. First we should verify that both of the floating IPs are assigned to the first keepalived instance.<\/p>\n<p>Using the command ip addr show, you can see if the IPs are present:<\/p>\n<p><code>root@lb1:\/etc# ip addr show<\/code><\/p>\n<p><code class=\"gris\">1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1<br \/>\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br \/>\n    inet 127.0.0.1\/8 scope host lo<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 ::1\/128 scope host<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000<br \/>\n    link\/ether 00:50:56:8e:e4:2f brd ff:ff:ff:ff:ff:ff<br \/>\n    inet 173.209.49.66\/29 brd 173.209.49.71 scope global eth0<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet 173.209.49.70\/32 scope global eth0<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 fe80::250:56ff:fe8e:e42f\/64 scope link<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000<br \/>\n    link\/ether 00:50:56:8e:ea:2d brd ff:ff:ff:ff:ff:ff<br \/>\n    inet 10.119.0.1\/24 brd 10.119.0.255 scope global eth1<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet 10.119.0.10\/32 scope global eth1<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 fe80::250:56ff:fe8e:ea2d\/64 scope link<br \/>\n       valid_lft forever preferred_lft forever<\/code><\/p>\n<p>If everything&#8217;s been set up correctly, you&#8217;ll see 173.209.49.70 and 10.119.0.10 on LB1. If you shut down keepalived on LB1, those same IP addresses will appear on the second server.<\/p>\n<p><code>root@lb1:\/etc# systemctl stop keepalived<\/code><\/p>\n<p>After shutting down keepalived on LB1, go on the second server and see if it indeed has those IP addresses assigned:<\/p>\n<p><code>root@lb2:~# ip addr show<\/code><\/p>\n<p><code class=\"gris\">1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1<br \/>\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br \/>\n    inet 127.0.0.1\/8 scope host lo<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 ::1\/128 scope host<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000<br \/>\n    link\/ether 00:50:56:8e:ae:b8 brd ff:ff:ff:ff:ff:ff<br \/>\n    inet 173.209.49.67\/29 brd 173.209.49.71 scope global eth0<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet 173.209.49.70\/32 scope global eth0<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 fe80::250:56ff:fe8e:aeb8\/64 scope link<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000<br \/>\n    link\/ether 00:50:56:8e:ed:ba brd ff:ff:ff:ff:ff:ff<br \/>\n    inet 10.119.0.2\/24 brd 10.119.0.255 scope global eth1<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet 10.119.0.10\/32 scope global eth1<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 fe80::250:56ff:fe8e:edba\/64 scope link<br \/>\n       valid_lft forever preferred_lft forever<\/code><\/p>\n<p>Finally, make sure that the backends are well specified within keepalived&#8217;s config:<\/p>\n<p><code>root@lb1:\/etc# ipvsadm<\/code><\/p>\n<p><code class=\"gris\">IP Virtual Server version 1.2.1 (size=4096)<br \/>\nProt LocalAddress:Port Scheduler Flags<br \/>\n  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn<br \/>\nTCP  173.209.49.70:http wrr<br \/>\n  -> 10.119.0.100:http            Masq    1      0          0<br \/>\n  -> 10.119.0.101:http            Masq    1      0          0<br \/>\nTCP  173.209.49.70:https sh<br \/>\n  -> 10.119.0.100:https           Masq    1      0          0<br \/>\n  -> 10.119.0.101:https           Masq    1      0          0<\/code><\/p>\n<h2>Conclusion<\/h2>\n<p>Now that you&#8217;ve completed this guide, you should be able to set up Keepalived on your own clusters. Keepalived is scalable, so you can try it out on clusters of any size. If you found this article helpful, feel free to share it with your friends and let us know in the comments below! <\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14 Load balancing is a way to distribute workloads across multiple computing resources such that large, resource-intensive tasks may be safely and reliable completed with more efficiency and speed than if just one machine were to perform the tasks. Keepalived is a free and<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[75],"tags":[],"class_list":["post-3140","post","type-post","status-publish","format-standard","hentry","category-ha-clustering","operating_system-ubuntu-14-04"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14 - Globo.Tech<\/title>\n<meta name=\"description\" content=\"This tutorial will show you how to achieve High Availability Load Balancing with Keepalived on your Ubuntu 14 server. Read now !\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14 - Globo.Tech\" \/>\n<meta property=\"og:description\" content=\"This tutorial will show you how to achieve High Availability Load Balancing with Keepalived on your Ubuntu 14 server. Read now !\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/\" \/>\n<meta property=\"og:site_name\" content=\"Globo.Tech\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-27T21:18:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-24T23:10:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.globo.tech\/learning-center\/wp-content\/uploads\/2016\/09\/GloboTech-Logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"963\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"GloboTech Communications\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"GloboTech Communications\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/\",\"url\":\"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/\",\"name\":\"How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14 - Globo.Tech\",\"isPartOf\":{\"@id\":\"https:\/\/www.globo.tech\/learning-center\/#website\"},\"datePublished\":\"2016-10-27T21:18:21+00:00\",\"dateModified\":\"2017-11-24T23:10:46+00:00\",\"author\":{\"@id\":\"https:\/\/www.globo.tech\/learning-center\/#\/schema\/person\/e17784b37f4a4f49b7bc611847912e87\"},\"description\":\"This tutorial will show you how to achieve High Availability Load Balancing with Keepalived on your Ubuntu 14 server. Read now !\",\"breadcrumb\":{\"@id\":\"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.globo.tech\/learning-center\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.globo.tech\/learning-center\/#website\",\"url\":\"https:\/\/www.globo.tech\/learning-center\/\",\"name\":\"Globo.Tech\",\"description\":\"Welcome to the Official Globo.Tech Learning Center\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.globo.tech\/learning-center\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.globo.tech\/learning-center\/#\/schema\/person\/e17784b37f4a4f49b7bc611847912e87\",\"name\":\"GloboTech Communications\",\"sameAs\":[\"http:\/\/www.gtcomm.net\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14 - Globo.Tech","description":"This tutorial will show you how to achieve High Availability Load Balancing with Keepalived on your Ubuntu 14 server. Read now !","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/","og_locale":"en_US","og_type":"article","og_title":"How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14 - Globo.Tech","og_description":"This tutorial will show you how to achieve High Availability Load Balancing with Keepalived on your Ubuntu 14 server. Read now !","og_url":"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/","og_site_name":"Globo.Tech","article_published_time":"2016-10-27T21:18:21+00:00","article_modified_time":"2017-11-24T23:10:46+00:00","og_image":[{"width":1920,"height":963,"url":"https:\/\/www.globo.tech\/learning-center\/wp-content\/uploads\/2016\/09\/GloboTech-Logo.png","type":"image\/png"}],"author":"GloboTech Communications","twitter_misc":{"Written by":"GloboTech Communications","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/","url":"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/","name":"How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14 - Globo.Tech","isPartOf":{"@id":"https:\/\/www.globo.tech\/learning-center\/#website"},"datePublished":"2016-10-27T21:18:21+00:00","dateModified":"2017-11-24T23:10:46+00:00","author":{"@id":"https:\/\/www.globo.tech\/learning-center\/#\/schema\/person\/e17784b37f4a4f49b7bc611847912e87"},"description":"This tutorial will show you how to achieve High Availability Load Balancing with Keepalived on your Ubuntu 14 server. Read now !","breadcrumb":{"@id":"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.globo.tech\/learning-center\/ha-load-balancing-keepalived-ubuntu-14\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.globo.tech\/learning-center\/"},{"@type":"ListItem","position":2,"name":"How to Achieve High Availability Load Balancing with Keepalived on Ubuntu 14"}]},{"@type":"WebSite","@id":"https:\/\/www.globo.tech\/learning-center\/#website","url":"https:\/\/www.globo.tech\/learning-center\/","name":"Globo.Tech","description":"Welcome to the Official Globo.Tech Learning Center","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.globo.tech\/learning-center\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.globo.tech\/learning-center\/#\/schema\/person\/e17784b37f4a4f49b7bc611847912e87","name":"GloboTech Communications","sameAs":["http:\/\/www.gtcomm.net"]}]}},"_links":{"self":[{"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/posts\/3140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/comments?post=3140"}],"version-history":[{"count":3,"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/posts\/3140\/revisions"}],"predecessor-version":[{"id":3907,"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/posts\/3140\/revisions\/3907"}],"wp:attachment":[{"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/media?parent=3140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/categories?post=3140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.globo.tech\/learning-center\/wp-json\/wp\/v2\/tags?post=3140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}