{"id":39746,"date":"2018-12-10T19:44:21","date_gmt":"2018-12-10T16:44:21","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=39746"},"modified":"2018-12-11T12:46:43","modified_gmt":"2018-12-11T09:46:43","slug":"enabling-high-availability-and-disaster-recovery-in-kubernetes","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/","title":{"rendered":"Enabling High Availability and Disaster Recovery in Kubernetes"},"content":{"rendered":"<p>Since its initial launch back in 2014, <a href=\"https:\/\/www.altoros.com\/blog\/tag\/kubernetes\/\">Kubernetes<\/a> has now grown and evolved to enjoy being the most popular choice when it comes to container orchestration systems, according to the <a href=\"https:\/\/www.cncf.io\/blog\/2018\/08\/29\/cncf-survey-use-of-cloud-native-technologies-in-production-has-grown-over-200-percent\/\" rel=\"noopener\" target=\"_blank\">survey<\/a> by the Cloud Native Computing Foundation. With this steady rise in popularity, many organizations will be interested in adopting the technology. However, they may experience some of the challenges the early adopters of Kubernetes first encountered.<\/p>\n<p>At a recent <a href=\"https:\/\/www.meetup.com\/Silicon-Valley-Cloud-Native-and-Kubernetes-Meetup\/events\/255662097\/\" rel=\"noopener\" target=\"_blank\">meetup<\/a> in Sunnyvale, <a href=\"https:\/\/www.linkedin.com\/in\/rushi-ns-6b195685\/\" rel=\"noopener\" target=\"_blank\">Rushi Ns<\/a>, Chief Architect at SAP, provided guidelines for building enterprise-ready Kubernetes cluster, while achieving high availability and disaster recovery across the selected Kubernetes distribution.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-1024x576.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-39760\" \/><\/a><small>Rushi Ns of SAP at the meetup in Sunnyvale<\/small><\/center><\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#A_variety_of_Kubernetes_distributions\" >A variety of Kubernetes distributions<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#Two_approaches_to_high_availability\" >Two approaches to high availability<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#Two_options_for_disaster_recovery\" >Two options for disaster recovery<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#Want_details_Watch_the_video\" >Want details? Watch the video!<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#About_the_expert\" >About the expert<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"A_variety_of_Kubernetes_distributions\"><\/span>A variety of Kubernetes distributions<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>According to Rushi, there are 30\u201340 Kubernetes distributions today. When deciding on which one to use, some key questions better be raised to narrow down the available choices. These questions include:<\/p>\n<ul>\n<li>What do my developers need?<\/li>\n<li>Do we need multi-cloud?<\/li>\n<li>Do we need an open-source or an enterprise-grade distribution?<\/li>\n<li>Do we need fully automated deployment?<\/li>\n<li>How do we get support?<\/li>\n<\/ul>\n<blockquote><p><em>&#8220;As an architect, I should be in a position to think about my distribution, fulfill my developers&#8217; requests, and provide support to my engineering team. When you go into production with Kubernetes, these are the elements you need.&#8221; \u2014Rushi Ns, SAP<\/em><\/p><\/blockquote>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-choosing-a-platform.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-choosing-a-platform-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-39762\" \/><\/a><small>Flowchart for choosing a platform (<a href=\"https:\/\/www.slideshare.net\/secret\/DnAWBxKhODWhws\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<blockquote><p><em>&#8220;You have to choose the right platform based on your organization&#8217;s use cases and your engineering team&#8217;s development experiences. For production-grade Kubernetes, high availability and disaster recovery should be in place.&#8221; \u2014Rushi Ns, SAP<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Two_approaches_to_high_availability\"><\/span>Two approaches to high availability<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To enable <b>high availability<\/b>, Rushi suggested two primary Kubernetes deployment models: <em>multi-cluster<\/em> and <em>leader election<\/em>. For a <em>multi-cluster<\/em> model, the following guidelines may come helpful:<\/p>\n<ul>\n<li>deploy masters and workers in a secondary data center<\/li>\n<li>configure the network with <a href=\"https:\/\/en.wikipedia.org\/wiki\/Link_aggregation#Link_Aggregation_Control_Protocol\" rel=\"noopener\" target=\"_blank\">LACP<\/a><\/li>\n<li>combine storage virtual machines with Kubernetes <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/persistent-volumes\/\" rel=\"noopener\" target=\"_blank\">Persistent Volumes<\/a><\/li>\n<li>employ <a href=\"https:\/\/kemptechnologies.com\/ca\/white-papers\/unfog-confusion-active-passive-activeactive-load-balancing\/\" rel=\"noopener\" target=\"_blank\">active-active<\/a> load balancing<\/li>\n<li>use <a href=\"https:\/\/www.jfrog.com\/confluence\/display\/JFROG\/High+Availability\" rel=\"noopener\" target=\"_blank\">artifactory high availability<\/a><\/li>\n<\/ul>\n<blockquote><p><em>&#8220;When you deploy Kubernetes multi-cluster, you can install one master on your on-premises cluster and another master anywhere, whether it&#8217;s on your data center or in the cloud.&#8221;<br \/>\n\u2014Rushi Ns, SAP<\/em><\/p><\/blockquote>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-network-topology.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-network-topology-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-39763\" \/><\/a><small>Kubernetes architecture with high availability (<a href=\"https:\/\/www.slideshare.net\/secret\/DnAWBxKhODWhws\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>On the other hand, with <em>leader election<\/em>, one master is replicated to achieve high availability.<\/p>\n<blockquote><p><em>&#8220;Another approach is by electing a leader. By nature, HAProxy in the Kubernetes API is the only load balancer. When you install three masters, HAProxy talks to each master and distributes the etcd configuration. If I elect one leader, I can replicate the master control plane to multiple data centers.&#8221; \u2014Rushi Ns, SAP<\/em><\/p><\/blockquote>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-network-topology.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-network-topology-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-39855\" \/><\/a><small>Example dual data center model with high availability (<a href=\"https:\/\/www.slideshare.net\/secret\/DnAWBxKhODWhws\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>For multi-cloud Kubernetes, <a href=\"https:\/\/github.com\/gardener\/gardener\" rel=\"noopener\" target=\"_blank\">Gardener<\/a>, which is an open-source tool for managing clusters on multiple cloud providers, can be used.<\/p>\n<blockquote><p><em>&#8220;Gardener is another tool that gives you a multi-cloud feature where you can manage your on-premises cluster and cloud cluster within a single control plane.&#8221; \u2014Rushi Ns, SAP<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Two_options_for_disaster_recovery\"><\/span>Two options for disaster recovery<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In terms of enabling <b>disaster recovery<\/b>, two methods may be employed\u2014<em>federation<\/em> and <em>etcd<\/em>. <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/cluster-administration\/federation\/\" rel=\"noopener\" target=\"_blank\">Federation<\/a> is a feature within Kubernetes which enables resource syncing across clusters.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-v2.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-v2-1024x576.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-39761\" \/><\/a><\/p>\n<blockquote><p><em>&#8220;You can federate your cluster to tune around on-premises to cloud, so that you can plan your workloads. <a href=\"https:\/\/github.com\/kubernetes-sigs\/kubefed\" rel=\"noopener\" target=\"_blank\">Federation v2<\/a> is very mature today.&#8221; \u2014Rushi Ns, SAP<\/em><\/p><\/blockquote>\n<p>Alternatively, an <em>etcd<\/em> cluster can be recovered from failure using <a href=\"https:\/\/github.com\/etcd-io\/etcd\/blob\/main\/Documentation\/op-guide\/recovery.md\" rel=\"noopener\" target=\"_blank\">snapshot and restore<\/a>. Snapshots can be taken via the command below.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">ETCDCTL_API=3 etcdctl --endpoints $ENDPOINT snapshot save snapshot.db<\/pre>\n<p>The snapshot can then be employed to initialize a new member of the cluster. The following command will create a new etcd member cluster.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nETCDCTL_API=3 etcdctl snapshot restore snapshot.db \\\r\n  --name m1 \\\r\n  --initial-cluster m1=http:\/\/host1:2380,m2=http:\/\/host2:2380,m3=http:\/\/host3:2380 \\\r\n  --initial-cluster-token etcd-cluster-1 \\\r\n  --initial-advertise-peer-urls http:\/\/host1:2380\r\n<\/pre>\n<p>Before concluding the session, Rushi shared a few more tips for Kubernetes deployments:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">Practice &#8220;infrastructure as code&#8221; with fully automated CI\/CD pipelines for easier cluster installs and upgrades.<\/li>\n<li style=\"margin-bottom: 6px;\">Prepare network and storage disaster recovery before clusters are installed.<\/li>\n<li style=\"margin-bottom: 6px;\">High availability and disaster recovery should be in place after clusters are installed.<\/li>\n<\/ul>\n<p>Finally, development teams should always be kept aware of the latest Kubernetes updates and progress.<\/li>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Want_details_Watch_the_video\"><\/span>Want details? Watch the video!<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"video-block\">\n<div class=\"video-block-wrap\">\n        <script charset=\"ISO-8859-1\" src=\"\/\/fast.wistia.com\/assets\/external\/E-v1.js\" async><\/script><\/p>\n<div class=\"wistia_embed wistia_async_n0mrdm7b2q\" style=\"height:320px;width:440px\"><\/div>\n<\/p><\/div>\n<div class=\"video-block-descr\">\n        <strong>Table of contents<\/strong><\/p>\n<ol style=\"margin-bottom: 10px;\">\n<li style=\"margin-bottom: 8px;\">What are the four pillars of Kubernetes? (<a href=\"#wistia_n0mrdm7b2q?time=42\">00&#8217;42&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 8px;\">What are the guidelines to choosing a Kubernetes distribution? (<a href=\"#wistia_n0mrdm7b2q?time=247\">4&#8217;07&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 8px;\">Some guidelines for a software-defined approach? (<a href=\"#wistia_n0mrdm7b2q?time=673\">11&#8217;13&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 8px;\">Achieving high availability with the dual data center model (<a href=\"#wistia_n0mrdm7b2q?time=920\">15&#8217;20&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 8px;\">Network topology of clusters with high availability (<a href=\"#wistia_n0mrdm7b2q?time=1097\">18&#8217;17&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 8px;\">Protecting data with disaster recovery solutions (<a href=\"#wistia_n0mrdm7b2q?time=1200\">20&#8217;00&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 8px;\">Questions and answers (<a href=\"#wistia_n0mrdm7b2q?time=1445\">24&#8217;05&#8221;<\/a>)<\/li>\n<ol>\n <\/div>\n<\/div>\n<p>&nbsp;<br \/>\n<small>Below, you will find the full presentation by Rushi.<\/small><\/p>\n<p><center><iframe loading=\"lazy\" src=\"https:\/\/www.slideshare.net\/slideshow\/embed_code\/key\/DnAWBxKhODWhws\" width=\"427\" height=\"356\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen> <\/iframe><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/netapp-builds-up-a-multi-cloud-kubernetes-as-a-service-platform\/\">NetApp Builds Up a Multi-Cloud Kubernetes-as-a-Service Platform<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/kubernetes-cluster-ops-options-for-configuration-management\/\">Kubernetes Cluster Ops: Options for Configuration Management<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/\">Managing Multi-Cluster Workloads with Google Kubernetes Engine<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_expert\"><\/span>About the expert<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div>\n<div style=\"float: right;\"><a href=\"https:\/\/www.linkedin.com\/in\/rushi-ns-6b195685\/\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Rushi-Ns-SAP-bio.png\" alt=\"\" width=\"110\" class=\"aligncenter size-full wp-image-39747\" \/><\/a><\/div>\n<div style=\"width: 600px;\"><small><a href=\"https:\/\/www.linkedin.com\/in\/rushi-ns-6b195685\/\" rel=\"noopener\" target=\"_blank\">Rushi Ns<\/a> is Chief Architect at SAP. His interests lie in the Internet of Things, machine learning, robotics, artificial intelligence, spatial engineering, and aerospace navigation.<\/small><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<hr>\n<p><center><small>This post was written by <a href=\"https:\/\/www.altoros.com\/blog\/author\/carlo\/\">Carlo Gutierrez<\/a> and edited <a href=\"https:\/\/www.altoros.com\/blog\/author\/sophie.turol\/\">Sophia Turol<\/a> and <a href=\"https:\/\/www.altoros.com\/blog\/author\/alex\/\">Alex Khizhniak<\/a>.<\/small><\/center><\/p>\n<p><center><small><strong>Want to become a writer<\/strong>? Drop us a line at <b>pr (@) altoros.com<\/b>!<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since its initial launch back in 2014, Kubernetes has now grown and evolved to enjoy being the most popular choice when it comes to container orchestration systems, according to the survey by the Cloud Native Computing Foundation. With this steady rise in popularity, many organizations will be interested in adopting [&#8230;]<\/p>\n","protected":false},"author":32,"featured_media":39892,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[873,912],"class_list":["post-39746","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-cloud-native","tag-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Enabling High Availability and Disaster Recovery in Kubernetes | Altoros<\/title>\n<meta name=\"description\" content=\"Learn how to achieve high availability for multi-cluster and leader election deployment models, as well as use federation and etcd for disaster recovery.\" \/>\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.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enabling High Availability and Disaster Recovery in Kubernetes | Altoros\" \/>\n<meta property=\"og:description\" content=\"Since its initial launch back in 2014, Kubernetes has now grown and evolved to enjoy being the most popular choice when it comes to container orchestration systems, according to the survey by the Cloud Native Computing Foundation. With this steady rise in popularity, many organizations will be interested in adopting [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-10T16:44:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-11T09:46:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-DR-v3.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Carlo Gutierrez\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Gutierrez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/\",\"name\":\"Enabling High Availability and Disaster Recovery in Kubernetes | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-DR-v3.gif\",\"datePublished\":\"2018-12-10T16:44:21+00:00\",\"dateModified\":\"2018-12-11T09:46:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-DR-v3.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-DR-v3.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enabling High Availability and Disaster Recovery in Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442\",\"name\":\"Carlo Gutierrez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg\",\"caption\":\"Carlo Gutierrez\"},\"description\":\"Carlo Gutierrez is a Technical Writer at Altoros. As part of the editorial team, his focus has been on emerging technologies such as Cloud Foundry, Kubernetes, blockchain, and the Internet of Things. Prior to Altoros, he primarily wrote about enterprise and consumer technology. Carlo has over 12 years of experience in the publishing industry. Previously, he served as an Editor for PC World Philippines and Questex Asia, as well as a Designer for Tropa Entertainment.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/carlo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Enabling High Availability and Disaster Recovery in Kubernetes | Altoros","description":"Learn how to achieve high availability for multi-cluster and leader election deployment models, as well as use federation and etcd for disaster recovery.","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.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/","og_locale":"en_US","og_type":"article","og_title":"Enabling High Availability and Disaster Recovery in Kubernetes | Altoros","og_description":"Since its initial launch back in 2014, Kubernetes has now grown and evolved to enjoy being the most popular choice when it comes to container orchestration systems, according to the survey by the Cloud Native Computing Foundation. With this steady rise in popularity, many organizations will be interested in adopting [...]","og_url":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/","og_site_name":"Altoros","article_published_time":"2018-12-10T16:44:21+00:00","article_modified_time":"2018-12-11T09:46:43+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-DR-v3.gif","type":"image\/gif"}],"author":"Carlo Gutierrez","twitter_misc":{"Written by":"Carlo Gutierrez","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/","url":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/","name":"Enabling High Availability and Disaster Recovery in Kubernetes | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-DR-v3.gif","datePublished":"2018-12-10T16:44:21+00:00","dateModified":"2018-12-11T09:46:43+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-DR-v3.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/12\/Kubernetes-Cloud-Native-Rush-Ns-Best-Practices-HA-DR-v3.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/enabling-high-availability-and-disaster-recovery-in-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Enabling High Availability and Disaster Recovery in Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442","name":"Carlo Gutierrez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","caption":"Carlo Gutierrez"},"description":"Carlo Gutierrez is a Technical Writer at Altoros. As part of the editorial team, his focus has been on emerging technologies such as Cloud Foundry, Kubernetes, blockchain, and the Internet of Things. Prior to Altoros, he primarily wrote about enterprise and consumer technology. Carlo has over 12 years of experience in the publishing industry. Previously, he served as an Editor for PC World Philippines and Questex Asia, as well as a Designer for Tropa Entertainment.","url":"https:\/\/www.altoros.com\/blog\/author\/carlo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/39746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=39746"}],"version-history":[{"count":91,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/39746\/revisions"}],"predecessor-version":[{"id":39948,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/39746\/revisions\/39948"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/39892"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=39746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=39746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=39746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}