{"id":34496,"date":"2018-07-09T19:06:35","date_gmt":"2018-07-09T16:06:35","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=34496"},"modified":"2018-07-16T14:26:55","modified_gmt":"2018-07-16T11:26:55","slug":"managing-multi-cluster-workloads-with-google-kubernetes-engine","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/","title":{"rendered":"Managing Multi-Cluster Workloads with Google Kubernetes Engine"},"content":{"rendered":"<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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#The_challenges_of_workload_management\" >The challenges of workload management<\/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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#Multi-cluster_ingress\" >Multi-cluster ingress<\/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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#Regional_persistent_disks\" >Regional persistent disks<\/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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#GPUs_as_a_service\" >GPUs as a service<\/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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#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-6\" href=\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#Related_slides\" >Related slides<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#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-8\" href=\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#About_the_expert\" >About the expert<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"The_challenges_of_workload_management\"><\/span>The challenges of workload management<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>When deploying application on Kubernetes, users have to rely on the <a href=\"https:\/\/www.altoros.com\/visuals\/kubernetes-kubectl-cli-cheat-sheet\/\">kubectl<\/a> command-line tool. While this isn&#8217;t a problem in itself, a more in-depth understanding of the tool is necessary when dealing with <b>stateful workloads<\/b> and workloads that <b>require hardware acceleration<\/b>, as well as enabling <b>low latency<\/b> across multiple clusters.<\/p>\n<p>Some of the native features available through <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/\" rel=\"noopener\" target=\"_blank\">Google Kubernetes Engine<\/a> (GKE)\u2014a distribution of the open-source Kubernetes on Google Cloud Platform\u2014may come helpful when addressing these types of tasks. At a recent <a href=\"https:\/\/www.eventbrite.com\/e\/meetup-in-sv-deploying-kubernetes-with-kubespray-registration-46567366246#\" rel=\"noopener\" target=\"_blank\">Kubernetes meetup<\/a> in Sunnyvale, <a href=\"https:\/\/www.linkedin.com\/in\/anthony-bushong-7309014a\/\" rel=\"noopener\" target=\"_blank\">Anthony Bushong<\/a> of Google drew the audience&#8217;s attention to those distinct features of GKE, which aim at facilitating cluster management:<\/p>\n<ul>\n<li>global presence with multi-cluster ingress<\/li>\n<li>GPUs as a service with GPU node pools<\/li>\n<li>high availability for stateful workloads with regional persistent disks<\/li>\n<\/ul>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-Anthony-Bushong-v2.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-Anthony-Bushong-v2.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-34551\" \/><\/a><\/center><\/p>\n<blockquote><p><em>&#8220;In a Google Kubernetes Engine cluster, we actually fully abstract the management of the control plane for you. We want users to focus on deploying applications and not on managing infrastructure just to have a functioning cluster.&#8221; \u2014Anthony Bushong, Google<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Multi-cluster_ingress\"><\/span>Multi-cluster ingress<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For workloads running on multiple clusters located across the world, latency can be an issue if routing is not properly configured. GKE makes use of <a href=\"https:\/\/github.com\/GoogleCloudPlatform\/k8s-multicluster-ingress\" rel=\"noopener\" target=\"_blank\">kubemci<\/a>\u2014a tool designed to configure <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress\/\" rel=\"noopener\" target=\"_blank\">Kubernetes ingress<\/a> to load-balance traffic across multiple clusters. With <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">kubemci<\/code>, it is possible to route users to the clusters regionally closest to them\u2014thus, achieving low latency. In case of a failover, the traffic is routed to the next closest cluster.<\/p>\n<p>In the following diagram, three different users from San Francisco, Manila, and Paris are directed to a single global virtual IP (VIP) address. This global VIP address, in turn, routes each of those users to the closest cluster in their respective regions.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-Global-presence-with-multi-cluster-ingress-v2.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-Global-presence-with-multi-cluster-ingress-v2.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-34566\" \/><\/a><small>Google Kubernetes Engine sets up a global ingress point (<a href=\"https:\/\/www.slideshare.net\/secret\/viSHdynVo5kv60\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>Currently, <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">kubemci<\/code> is available in beta and covers a specific scope of production-grade tasks. For instance, one may update the deployed multi-cluster ingress, delete it, remove clusters from it, or get its status. For details, you may check out the <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/multi-cluster-ingress\" rel=\"noopener\" target=\"_blank\">official guide<\/a>. This way, <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">kubemci<\/code> seems to be rather a temporary solution, which may be later replaced by an implementation, which uses <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">kubectl<\/code>.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-Anthony-Bushong.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-Anthony-Bushong.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-34500\" \/><\/a><\/p>\n<blockquote><p><em>&#8220;Kubemci automically configures the load balancer to have your different clusters across the world as back ends.&#8221; \u2014Anthony Bushong, Google<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Regional_persistent_disks\"><\/span>Regional persistent disks<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Users who run stateful workloads require high availability and failover across multiple zones. Stateful workloads are often dependent on a persistent volume. In case of a node failure, it cannot be moved to a different node when using zonal persistent disks.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-zonal-persistent-disks.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-zonal-persistent-disks.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-34529\" \/><\/a><small>Stateful workloads cannot be moved in a zonal storage configuration (<a href=\"https:\/\/www.slideshare.net\/secret\/viSHdynVo5kv60\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>To achieve stability, one may employ regional persistent disks. With the <a href=\"https:\/\/cloud.google.com\/compute\/docs\/disks\/regional-persistent-disk#force_attach\" rel=\"noopener\" target=\"_blank\">force-attach<\/a> command, you can trigger a failover of a workload running on a regional persistent disk to a VM instance in a different zone.<\/p>\n<blockquote><p><em>&#8220;Google Kubernetes Engine now supports the concept of regional persistent disks. If a failure occurs in zone A, workloads can be migrated to zone B and they&#8217;ll still be able to find their persistent volume.&#8221; \u2014Anthony Bushong, Google<\/em><\/p><\/blockquote>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-regional-persistent-disks-v2.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-regional-persistent-disks-v2.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-34567\" \/><\/a><small>With regional persistent disks, workloads can be moved in case of a failure (<a href=\"https:\/\/www.slideshare.net\/secret\/viSHdynVo5kv60\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"GPUs_as_a_service\"><\/span>GPUs as a service<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Compute-intensive workloads require a decent number of processors unless you want to compromise on performance. Within GKE, one may employ node pools <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/gpus\" rel=\"noopener\" target=\"_blank\">equipped<\/a> with NVIDIA Tesla GPUs. To get access to GPUs, users can request for them through <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">kubectl<\/code> and specify a limit in the manifest.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-GPUs-as-a-service.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-GPUs-as-a-service.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-34520\" \/><\/a><small>A single GPU is specified in the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">gpu-pod<\/code> manifest (<a href=\"https:\/\/www.slideshare.net\/secret\/viSHdynVo5kv60\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>This feature also supports multiple GPU types per cluster by including a node selector parameter in the manifest.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-GPUs-as-a-service-node-selector.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-GPUs-as-a-service-node-selector.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-34525\" \/><\/a><small>P100 and V100 GPU pools have a unique identifier (<a href=\"https:\/\/www.slideshare.net\/secret\/viSHdynVo5kv60\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>Autoscaling of clusters is also available, so one may scale down idle GPU nodes. However, one can&#8217;t add GPUs to the already existing node pools, and GPU nodes can&#8217;t be live migrated once any maintenance is taking place.<\/p>\n<blockquote><p><em>&#8220;Whether you&#8217;re running GPUs on premises or in the cloud, they&#8217;re expensive, so we want to maximize our use of them.&#8221; \u2014Anthony Bushong, Google<\/em><\/p><\/blockquote>\n<p>Google claims this feature is fit for addressing such compute-intensive tasks as <a href=\"https:\/\/www.altoros.com\/blog\/using-machine-learning-and-tensorflow-to-recognize-traffic-signs\/\" rel=\"noopener\" target=\"_blank\">image recognition<\/a>, <a href=\"https:\/\/www.altoros.com\/blog\/how-tensorflow-can-help-to-perform-natural-language-processing-tasks\/\" rel=\"noopener\" target=\"_blank\">natural language processing<\/a>, video transcoding, etc.<\/p>\n<p>While there is an increasing amount of options when it comes to <a href=\"https:\/\/www.altoros.com\/blog\/a-multitude-of-kubernetes-deployment-tools-kubespray-kops-and-kubeadm\/\">deploying Kubernetes<\/a>, managing clusters can still be complicated. GKE is taking steps towards abstracting cluster management to help users focus on deploying and running applications.<\/p>\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<table width=\"100%\">\n<tbody>\n<tr>\n<td class=\"video-display-mobile\">\n<div style=\"float: right; width: 45%; padding-left: 15px; font-size: 14px;\">\n<p><strong>Table of contents<\/strong><\/p>\n<ol>\n<li style=\"margin-bottom: 18px;\">What is Kubernetes? (<a href=\"#wistia_614fr9ewkj?time=122\">2&#8217;02&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 18px;\">What is Google Kubernetes Engine? (<a href=\"#wistia_614fr9ewkj?time=675\">11&#8217;15&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 18px;\">Demo: Multi-cluster ingress (<a href=\"#wistia_614fr9ewkj?time=980\">16&#8217;20&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 18px;\">Demo: GPUs as a service (<a href=\"#wistia_614fr9ewkj?time=1220\">20&#8217;20&#8221;<\/a>)<\/li>\n<li style=\"margin-bottom: 18px;\">Demo: Regional persistent disks (<a href=\"#wistia_614fr9ewkj?time=1780\">29&#8217;40&#8221;<\/a>)<\/li>\n<\/ol>\n<\/div>\n<p><script charset=\"ISO-8859-1\" src=\"\/\/fast.wistia.com\/assets\/external\/E-v1.js\" async><\/script><\/p>\n<div class=\"wistia_embed wistia_async_614fr9ewkj\" style=\"height:320px;width:440px\">&nbsp;<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Related_slides\"><\/span>Related slides<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><center><iframe loading=\"lazy\" src=\"\/\/www.slideshare.net\/slideshow\/embed_code\/key\/viSHdynVo5kv60\" width=\"595\" height=\"485\" 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\/a-multitude-of-kubernetes-deployment-tools-kubespray-kops-and-kubeadm\/\">A Multitude of Kubernetes Deployment Tools: Kubespray, kops, and kubeadm<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/not-only-for-cloud-foundry-kubo-enables-kubernetes-deployments-with-bosh\/\">Kubo Enables Kubernetes Environments Managed by Cloud Foundry\u2019s BOSH<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/deploying-services-to-cloud-foundry-is-easier-with-kubernetes\/\">Deploying Services to Cloud Foundry Using Kubernetes: Less BOSH, More Freedom<\/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\/anthony-bushong-7309014a\/\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Anthony-Bushong-google-bio.png\" alt=\"\" width=\"120\" class=\"aligncenter size-full wp-image-34544\" \/><\/a><\/div>\n<div style=\"width: 600px;\"><small><a href=\"https:\/\/www.linkedin.com\/in\/anthony-bushong-7309014a\/\" rel=\"noopener\" target=\"_blank\">Anthony Bushong<\/a> is a Solutions Engineer at Google with a focus on application development and Kubernetes. He has been working with customers to get up and running on Google Kubernetes Engine since Kubernetes v1.3. Previously, Anthony served as a Cloud Implementation and Database Engineer at Oracle.<\/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> with assistance from <a href=\"https:\/\/www.altoros.com\/blog\/author\/sophie.turol\/\">Sophie Turol<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The challenges of workload management<\/p>\n<p>When deploying application on Kubernetes, users have to rely on the kubectl command-line tool. While this isn&#8217;t a problem in itself, a more in-depth understanding of the tool is necessary when dealing with stateful workloads and workloads that require hardware acceleration, as well as enabling low [&#8230;]<\/p>\n","protected":false},"author":32,"featured_media":34569,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[873,912,206],"class_list":["post-34496","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-and-opinion","tag-cloud-native","tag-kubernetes","tag-oss-cloud-foundry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Managing Multi-Cluster Workloads with Google Kubernetes Engine | Altoros<\/title>\n<meta name=\"description\" content=\"Learn about the ways to achieve low latency across clusters distributed globally, enable high availability for stateful workloads, or treat compute-intensive tasks.\" \/>\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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Managing Multi-Cluster Workloads with Google Kubernetes Engine | Altoros\" \/>\n<meta property=\"og:description\" content=\"The challenges of workload management When deploying application on Kubernetes, users have to rely on the kubectl command-line tool. While this isn&#8217;t a problem in itself, a more in-depth understanding of the tool is necessary when dealing with stateful workloads and workloads that require hardware acceleration, as well as enabling low [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-09T16:06:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-07-16T11:26:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-mult-cluster-ingress-GPU-service-regional-persistent-disks.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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/\",\"name\":\"Managing Multi-Cluster Workloads with Google Kubernetes Engine | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-mult-cluster-ingress-GPU-service-regional-persistent-disks.gif\",\"datePublished\":\"2018-07-09T16:06:35+00:00\",\"dateModified\":\"2018-07-16T11:26:55+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-mult-cluster-ingress-GPU-service-regional-persistent-disks.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-mult-cluster-ingress-GPU-service-regional-persistent-disks.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing Multi-Cluster Workloads with Google Kubernetes Engine\"}]},{\"@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":"Managing Multi-Cluster Workloads with Google Kubernetes Engine | Altoros","description":"Learn about the ways to achieve low latency across clusters distributed globally, enable high availability for stateful workloads, or treat compute-intensive tasks.","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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/","og_locale":"en_US","og_type":"article","og_title":"Managing Multi-Cluster Workloads with Google Kubernetes Engine | Altoros","og_description":"The challenges of workload management When deploying application on Kubernetes, users have to rely on the kubectl command-line tool. While this isn&#8217;t a problem in itself, a more in-depth understanding of the tool is necessary when dealing with stateful workloads and workloads that require hardware acceleration, as well as enabling low [...]","og_url":"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/","og_site_name":"Altoros","article_published_time":"2018-07-09T16:06:35+00:00","article_modified_time":"2018-07-16T11:26:55+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-mult-cluster-ingress-GPU-service-regional-persistent-disks.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\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/","url":"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/","name":"Managing Multi-Cluster Workloads with Google Kubernetes Engine | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-mult-cluster-ingress-GPU-service-regional-persistent-disks.gif","datePublished":"2018-07-09T16:06:35+00:00","dateModified":"2018-07-16T11:26:55+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-mult-cluster-ingress-GPU-service-regional-persistent-disks.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/07\/Google-Kubernetes-Engine-mult-cluster-ingress-GPU-service-regional-persistent-disks.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/managing-multi-cluster-workloads-with-google-kubernetes-engine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Managing Multi-Cluster Workloads with Google Kubernetes Engine"}]},{"@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\/34496","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=34496"}],"version-history":[{"count":85,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/34496\/revisions"}],"predecessor-version":[{"id":48148,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/34496\/revisions\/48148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/34569"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=34496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=34496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=34496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}