{"id":53933,"date":"2021-09-06T11:15:29","date_gmt":"2021-09-06T05:45:29","guid":{"rendered":"https:\/\/tothenewco.pro\/blog\/?p=53933"},"modified":"2021-09-06T11:15:29","modified_gmt":"2021-09-06T05:45:29","slug":"keycloak-high-availability-setup-in-kubernetes","status":"publish","type":"post","link":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/","title":{"rendered":"Keycloak High Availability Setup in Kubernetes"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p><strong>Keycloak<\/strong> is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes.<\/p>\n<h2>Keycloak Cluster Setup<\/h2>\n<p>First of all we should know that for a Keycloak cluster, all keycloak instances should use same database. Totally there are 3 solutions for clustering, and all of the solutions are based on the discovery protocols of JGroups.<br \/>\n1. PING<br \/>\n2. TCPPING<br \/>\n3. JDBC_PING<\/p>\n<p>Keycloak uses <strong>Infinispan<\/strong> cache and Infinispan use <strong>JGroups<\/strong> to discover nodes. We will be focusing on JDBC_PING in this blog.<\/p>\n<h3>JDBC_PING<\/h3>\n<p>JDBC_PING uses TCP protocol with 7600 port which is similar as TCPPING, but the difference between them is, TCPPING requires you to configure the IP and port of all instances, but for JDBC_PING you just need to configure the IP and port of current instance.<\/p>\n<p>This is because in JDBC_PING solution each instance inserts its own information into the database and the instances discover peers by the ping data read from database.<br \/>\nIf you don&#8217;t set the JGROUPS_DISCOVERY_EXTERNAL_IP env, the pod ip will be used, that means on Kubernetes you can simply set JGROUPS_DISCOVERY_PROTOCOL=JDBC_PING and then your Keycloak cluster is good to go.<\/p>\n<p>You have to add JDBC_PING.cli to \/opt\/jboss\/tools\/cli\/jgroups\/discovery\/ directory. You can find it from <a href=\"https:\/\/raw.githubusercontent.com\/fit2anything\/keycloak-cluster-setup-and-configuration\/master\/src\/JDBC_PING.cli\">JDBC_PING.cli<\/a><\/p>\n<div>\n<blockquote>\n<div>&#8211; name: JGROUPS_DISCOVERY_PROTOCOL<br \/>\n<span style=\"font-size: 1rem;\">value: JDBC_PING<\/span><\/div>\n<\/blockquote>\n<\/div>\n<h2>Possible Issues<\/h2>\n<p>You may face a very common issue of Cluster nodes taking a long time to start or not being stable. <strong>JGROUPSPING<\/strong> table is often the culprit behind this.<\/p>\n<p>The cluster state is managed through a JGROUPSPING table. Each time a node is created, it must know its own IP address in order to be able to add it to this table and join the cluster. In the database, you will find stale JGroup node entries in the JGROUPSPING table and they start to accumulate. When a new node starts, it tries to contact the other addresses in the table and waits for their response one by one. This often results in a timeout and prohibits the node from being stable.<\/p>\n<h2>Resolution<\/h2>\n<p>Add the following command in <strong>JGROUPS_DISCOVERY_PROPERTIES:<\/strong><br \/>\n<strong>remove_old_coords_on_view_change=&#8221;true&#8221;,remove_all_data_on_view_change=&#8221;true&#8221;<\/strong><\/p>\n<blockquote>\n<div>\n<div>&#8211; name: JGROUPS_DISCOVERY_PROPERTIES<\/div>\n<div>value: &#8216;dns_query=keycloak-app,remove_old_coords_on_view_change=&#8221;true&#8221;,remove_all_data_on_view_change=&#8221;true&#8221;&#8216;<\/div>\n<\/div>\n<\/blockquote>\n<p>This configuration handles the case when all IP addresses present into the JGROUPSPING table belong to unhealthy nodes. When a new node starts, if the node cannot contact the other addresses, it cleans the table on its own.<\/p>\n<div class=\"ap-custom-wrapper\"><\/div><!--ap-custom-wrapper-->","protected":false},"excerpt":{"rendered":"<p>Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all [&hellip;]<\/p>\n","protected":false},"author":1401,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":50,"footnotes":""},"categories":[1174,2348],"tags":[248,4889,4888,3965],"class_list":["post-53933","post","type-post","status-publish","format-standard","hentry","category-aws-2","category-devops-technology","tag-aws","tag-ha","tag-keycloak","tag-kubernetes"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Satyam Singh\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#article\",\"name\":\"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog\",\"headline\":\"Keycloak High Availability Setup in Kubernetes\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/satyam-singh\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2021-09-06T11:15:29+05:30\",\"dateModified\":\"2021-09-06T11:15:29+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#webpage\"},\"articleSection\":\"AWS, DevOps, aws, HA, keycloak, kubernetes\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/aws-2\\\/#listItem\",\"name\":\"AWS\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/aws-2\\\/#listItem\",\"position\":2,\"name\":\"AWS\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/aws-2\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#listItem\",\"name\":\"Keycloak High Availability Setup in Kubernetes\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#listItem\",\"position\":3,\"name\":\"Keycloak High Availability Setup in Kubernetes\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/aws-2\\\/#listItem\",\"name\":\"AWS\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/satyam-singh\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/satyam-singh\\\/\",\"name\":\"Satyam Singh\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#authorImage\",\"url\":\"https:\\\/\\\/newersworld-sf-static.tothenew.net\\\/prod\\\/profilePicFolder\\\/25bc2af5-3b7d-4533-9c0f-8a54f1c4ba23_2293-Satyam-Singh-PROFILEPICTURE.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Satyam Singh\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/\",\"name\":\"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog\",\"description\":\"Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/keycloak-high-availability-setup-in-kubernetes\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/satyam-singh\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/satyam-singh\\\/#author\"},\"datePublished\":\"2021-09-06T11:15:29+05:30\",\"dateModified\":\"2021-09-06T11:15:29+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog","description":"Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all","canonical_url":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#article","name":"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog","headline":"Keycloak High Availability Setup in Kubernetes","author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/satyam-singh\/#author"},"publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"},"datePublished":"2021-09-06T11:15:29+05:30","dateModified":"2021-09-06T11:15:29+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#webpage"},"isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#webpage"},"articleSection":"AWS, DevOps, aws, HA, keycloak, kubernetes"},{"@type":"BreadcrumbList","@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/tothenewco.pro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/aws-2\/#listItem","name":"AWS"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/aws-2\/#listItem","position":2,"name":"AWS","item":"https:\/\/tothenewco.pro\/blog\/category\/aws-2\/","nextItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#listItem","name":"Keycloak High Availability Setup in Kubernetes"},"previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#listItem","position":3,"name":"Keycloak High Availability Setup in Kubernetes","previousItem":{"@type":"ListItem","@id":"https:\/\/tothenewco.pro\/blog\/category\/aws-2\/#listItem","name":"AWS"}}]},{"@type":"Organization","@id":"https:\/\/tothenewco.pro\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/tothenewco.pro\/blog\/"},{"@type":"Person","@id":"https:\/\/tothenewco.pro\/blog\/author\/satyam-singh\/#author","url":"https:\/\/tothenewco.pro\/blog\/author\/satyam-singh\/","name":"Satyam Singh","image":{"@type":"ImageObject","@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#authorImage","url":"https:\/\/newersworld-sf-static.tothenew.net\/prod\/profilePicFolder\/25bc2af5-3b7d-4533-9c0f-8a54f1c4ba23_2293-Satyam-Singh-PROFILEPICTURE.jpeg","width":96,"height":96,"caption":"Satyam Singh"}},{"@type":"WebPage","@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#webpage","url":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/","name":"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog","description":"Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/tothenewco.pro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/#breadcrumblist"},"author":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/satyam-singh\/#author"},"creator":{"@id":"https:\/\/tothenewco.pro\/blog\/author\/satyam-singh\/#author"},"datePublished":"2021-09-06T11:15:29+05:30","dateModified":"2021-09-06T11:15:29+05:30"},{"@type":"WebSite","@id":"https:\/\/tothenewco.pro\/blog\/#website","url":"https:\/\/tothenewco.pro\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/tothenewco.pro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog","og:description":"Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all","og:url":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/","og:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Keycloak High Availability Setup in Kubernetes | TO THE NEW Blog","twitter:description":"Introduction Keycloak is an authentication framework that gives application users federation and single sign-on (SSO) capabilities. In this blog we will discuss the key concepts that you should have in mind while deploying a Keycloak Cluster on top of Kubernetes. Keycloak Cluster Setup First of all we should know that for a Keycloak cluster, all","twitter:image":"https:\/\/tothenewco.pro\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"53933","title":null,"description":null,"keywords":[],"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":{"id":"#aioseo-article-65e06440af1d7","slug":"article","graphName":"Article","label":"Article","properties":{"type":"BlogPosting","name":"#post_title","headline":"#post_title","description":"#post_excerpt","image":"","keywords":"","author":{"name":"#author_name","url":"#author_url"},"dates":{"include":true,"datePublished":"","dateModified":""}}},"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"}}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":{"locations":{"business":{"name":"","businessType":"","image":"","areaServed":"","urls":{"website":"","aboutPage":"","contactPage":""},"address":{"streetLine1":"","streetLine2":"","zipCode":"","city":"","state":"","country":"","addressFormat":"#streetLineOne\n#streetLineTwo\n#city, #state #zipCode"},"contact":{"email":"","phone":"","phoneFormatted":"","fax":"","faxFormatted":""},"ids":{"vat":"","tax":"","chamberOfCommerce":""},"payment":{"priceRange":"","currenciesAccepted":"","methods":""}}},"openingHours":{"useDefaults":true,"show":true,"alwaysOpen":false,"use24hFormat":false,"timezone":"","labels":{"closed":"","alwaysOpen":""},"days":{"monday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"tuesday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"wednesday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"thursday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"friday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"saturday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"sunday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"}}}},"limit_modified_date":false,"created":"2021-09-06 05:29:23","updated":"2024-02-29 11:02:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/tothenewco.pro\/blog\/category\/aws-2\/\" title=\"AWS\">AWS<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tKeycloak High Availability Setup in Kubernetes\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/tothenewco.pro\/blog"},{"label":"AWS","link":"https:\/\/tothenewco.pro\/blog\/category\/aws-2\/"},{"label":"Keycloak High Availability Setup in Kubernetes","link":"https:\/\/tothenewco.pro\/blog\/keycloak-high-availability-setup-in-kubernetes\/"}],"_links":{"self":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/53933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/users\/1401"}],"replies":[{"embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/comments?post=53933"}],"version-history":[{"count":2,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/53933\/revisions"}],"predecessor-version":[{"id":53940,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/posts\/53933\/revisions\/53940"}],"wp:attachment":[{"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/media?parent=53933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/categories?post=53933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tothenewco.pro\/blog\/wp-json\/wp\/v2\/tags?post=53933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}