{"id":103482,"date":"2021-11-18T08:52:54","date_gmt":"2021-11-18T16:52:54","guid":{"rendered":"https:\/\/www.backblaze.com\/blog\/?p=103482"},"modified":"2022-07-14T13:55:14","modified_gmt":"2022-07-14T20:55:14","slug":"what-is-kubernetes","status":"publish","type":"post","link":"https:\/\/www.backblaze.com\/blog\/what-is-kubernetes\/","title":{"rendered":"What Is Kubernetes?"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-103483\" src=\"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg\" alt=\"\" width=\"1440\" height=\"820\" srcset=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg 1440w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes-300x171.jpg 300w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes-1024x583.jpg 1024w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes-768x437.jpg 768w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes-560x319.jpg 560w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/p>\n<p id=\"bzdropcap\">Do you remember when \u201cPok\u00e9mon Go\u201d came out in 2016? Suddenly it was everywhere. It was a world-wide obsession, with over 10 million downloads in its first week and 500 million downloads in six months. System load rapidly escalated to 50 times the anticipated demand. How could the game architecture support such out-of-control hypergrowth?<\/p>\n<p>The answer: At release time, Pok\u00e9mon Go was <a href=\"https:\/\/www.sdxcentral.com\/articles\/news\/google-dealt-pokemon-go-traffic-50-times-beyond-expectations\/2016\/09\/\" target=\"_blank\" rel=\"noopener\">\u201cThe largest Kubernetes deployment on Google Container Engine.\u201d<\/a> Kubernetes is a container orchestration tool that manages resources for dynamic web-scale applications, like \u201cPok\u00e9mon Go.\u201d<\/p>\n<p>In this post, we\u2019ll take a look at what Kubernetes does, how it works, and how it could be applicable in your environment.<\/p>\n<h2><strong>What Is Kubernetes?<\/strong><\/h2>\n<p>You may be familiar with <a href=\"\/blog\/what-are-containers\/\" target=\"_blank\" rel=\"noopener\">containers<\/a>. They\u2019re conceptually similar to lightweight virtual machines. Instead of simulating computer hardware and running an entire operating system (OS) on that simulated computer, the container runs applications under a parent OS with almost no overhead. Containers allow developers and system administrators to develop, test, and deploy software and applications much faster than VMs, and most applications today are built with them.<\/p>\n<p>But what happens if one of your containers goes down, or your ecommerce store experiences high demand, or if you release a viral sensation like \u201cPok\u00e9mon Go\u201d? You don\u2019t want your application to crash, and you definitely don\u2019t want your store to go down during the Christmas crush. Unfortunately, containers don\u2019t solve those problems. You could implement intelligence in your application to scale as needed, but that would make your application a lot more complex and expensive to implement. It would be simpler and faster if you could use a drop-in layer of management\u2014a \u201cfleet manager\u201d of sorts\u2014to coordinate your swarm of containers. That\u2019s Kubernetes.<\/p>\n<h2><strong>Kubernetes Architecture: How Does Kubernetes Work?<\/strong><\/h2>\n<p>Kubernetes implements a fairly straightforward hierarchy of components and concepts:<\/p>\n<ul>\n<li><strong>Containers:<\/strong> Virtualized environments where the application code runs.<\/li>\n<li><strong>Pods:<\/strong> \u201cLogical hosts\u201d that contain and manage containers, and potentially local storage.<\/li>\n<li><strong>Nodes:<\/strong> The physical or virtual compute resources that run the container code.<\/li>\n<li><strong>Cluster:<\/strong> A grouping of one or more nodes.<\/li>\n<li><strong>Control Plane:<\/strong> Manages the worker nodes and Pods in the cluster.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-103488\" src=\"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2021\/11\/diagram-kubernetes-v4.jpg\" alt=\"\" width=\"1440\" height=\"820\" srcset=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/diagram-kubernetes-v4.jpg 1440w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/diagram-kubernetes-v4-300x171.jpg 300w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/diagram-kubernetes-v4-1024x583.jpg 1024w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/diagram-kubernetes-v4-768x437.jpg 768w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/diagram-kubernetes-v4-560x319.jpg 560w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/p>\n<p>You have a few options to run Kubernetes. The <code>minikube<\/code> utility launches and runs a small single-node cluster locally for testing purposes. And you can control Kubernetes with any of several control interfaces: the <code>kubectl<\/code> command provides a command-line interface, and library APIs and REST endpoints provide programmable interfaces.<\/p>\n<h2><strong>What Does Kubernetes Do?<\/strong><\/h2>\n<p>Modern web-based applications are commonly implemented with \u201cmicroservices,\u201d each of which embodies one part of the desired application behavior. Kubernetes distributes the microservices across Pods. Pods can be used two ways\u2014to run a single container (the most common use case) or to run multiple containers (like a pod of peas or a pod of whales\u2014a more advanced use case). Kubernetes operates on the Pods, which act as a sort of wrapper around the container(s) rather than the containers themselves. As the microservices run, Kubernetes is responsible for managing the application\u2019s execution. Kubernetes \u201corchestrates\u201d the Pods, including:<\/p>\n<ul>\n<li><strong>Autoscaling:<\/strong> As more users connect to the application\u2019s website, Kubernetes can start up additional Pods to handle the load.<\/li>\n<li><strong>Self-healing:<\/strong> If the code in a Pod crashes, or if there is a hardware failure, Kubernetes will detect it and restart the code in a new Pod.<\/li>\n<li><strong>Parallel worker processes:<\/strong> Kubernetes distributes the Pods across multiple nodes to benefit from parallelism.<\/li>\n<li><strong>Load balancing:<\/strong> If one server gets overloaded, Kubernetes can balance the load by migrating Pods to other nodes.<\/li>\n<li><strong>Storage orchestration:<\/strong> Kubernetes lets you automatically mount persistent storage, say a local device or cloud-based object storage.<\/li>\n<\/ul>\n<p>The beauty of this model is that the applications don\u2019t have to know about the Kubernetes management. You don\u2019t have to write load-balancing functionality into every application, or autoscaling, or other orchestration logic. The applications just run simplified microservices in a simple environment, and Kubernetes handles all the management complexity.<\/p>\n<p>As an example: You write a small reusable application (say, a simple database) on a Debian Linux system. Then you could transfer that code to an Ubuntu system and run it, without any changes, in a Debian container. (Or, maybe you just download a database container from the Docker library.) Then you create a new application that calls the database application. When you wrote the original database on Debian, you might not have anticipated it would be used on an Ubuntu system. You might not have known that the database would be interacting with other application components. Fortunately, you didn\u2019t have to anticipate the new usage paradigm. Kubernetes and containers isolate your code from the messy details.<\/p>\n<p>Keep in mind, Kubernetes is not the only orchestration solution\u2014there\u2019s Docker Swarm, Hashicorp\u2019s Nomad, and others. <a href=\"\/blog\/bringing-connected-container-management-to-backblaze-cycle\/\" target=\"_blank\" rel=\"noopener\">Cycle.io<\/a>, for example, offers a simple container orchestration solution that focuses on ease for the most common container use cases.<\/p>\n<h2><strong>Implementing Kubernetes: External Storage Required<\/strong><\/h2>\n<p>Kubernetes spins up and spins down Pods as needed. Each Pod can host its own internal storage (as shown in the diagram above), but that\u2019s not often used. A Pod might get discarded because the load has dropped, or the process crashed, or for other reasons. The Pods (and their enclosed containers and volumes) are ephemeral, meaning that their state is lost when they are destroyed. But most applications are stateful. They couldn\u2019t function in a transitory environment like this. In order to work in a Kubernetes environment, the application must store its state information externally, outside the Pod. A new instance (a new Pod) must fetch the current state from the external storage when it starts up, and update the external storage as it executes.<\/p>\n<p>You can specify the external storage when you create the Pod, essentially mounting the external volume in the container. The container running in the Pod accesses the external storage transparently, like any other local storage. Unlike local storage, though, <a href=\"https:\/\/www.backblaze.com\/cloud-storage\" target=\"_blank\" rel=\"noopener\">cloud-based object storage is designed to scale almost infinitely<\/a> right alongside your Kubernetes deployment. That\u2019s what makes object storage an ideal match for applications running Kubernetes.<\/p>\n<p>When you start up a Pod, you can specify the location of the external storage. Any container in the Pod can then access the external storage like any other mounted file system.<\/p>\n<h2><strong>Kubernetes in Your Environment<\/strong><\/h2>\n<p>While there\u2019s no doubt a learning curve involved (Kubernetes has sometimes been described as \u201cnot for normal humans\u201d), container orchestrators like Kubernetes, Cycle.io, and others can greatly simplify the management of your applications. If you use a microservice model, or if you work with similar cloud-based architectures, a container orchestrator can help you prepare for success from day one by setting your application up to scale seamlessly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn what Kubernetes is, how it works, and how you can deploy it in your environment with cloud storage.<\/p>\n","protected":false},"author":159,"featured_media":103483,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[7],"tags":[468],"class_list":["post-103482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-storage","tag-b2cloud","entry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What Is Kubernetes, and How Might You Use It to Help Your Company?<\/title>\n<meta name=\"description\" content=\"Kubernetes was the key for Pok\u00e9mon Go scaling its servers to 50 times its anticipated demand. How does Kubernetes help a company rapidly scale its resources?\" \/>\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.backblaze.com\/blog\/what-is-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is Kubernetes, and How Might You Use It to Help Your Company?\" \/>\n<meta property=\"og:description\" content=\"Kubernetes was the key for Pok\u00e9mon Go scaling its servers to 50 times its anticipated demand. How does Kubernetes help a company rapidly scale its resources?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Backblaze Blog | Cloud Storage &amp; Cloud Backup\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/backblaze\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-18T16:52:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-14T20:55:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"820\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Molly Clancy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@backblaze\" \/>\n<meta name=\"twitter:site\" content=\"@backblaze\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Molly Clancy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What Is Kubernetes, and How Might You Use It to Help Your Company?","description":"Kubernetes was the key for Pok\u00e9mon Go scaling its servers to 50 times its anticipated demand. How does Kubernetes help a company rapidly scale its resources?","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.backblaze.com\/blog\/what-is-kubernetes\/","og_locale":"en_US","og_type":"article","og_title":"What Is Kubernetes, and How Might You Use It to Help Your Company?","og_description":"Kubernetes was the key for Pok\u00e9mon Go scaling its servers to 50 times its anticipated demand. How does Kubernetes help a company rapidly scale its resources?","og_url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/","og_site_name":"Backblaze Blog | Cloud Storage &amp; Cloud Backup","article_publisher":"https:\/\/www.facebook.com\/backblaze","article_published_time":"2021-11-18T16:52:54+00:00","article_modified_time":"2022-07-14T20:55:14+00:00","og_image":[{"width":1440,"height":820,"url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg","type":"image\/jpeg"}],"author":"Molly Clancy","twitter_card":"summary_large_image","twitter_creator":"@backblaze","twitter_site":"@backblaze","twitter_misc":{"Written by":"Molly Clancy","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/#article","isPartOf":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/"},"author":{"name":"Molly Clancy","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/a92e54b3011e599a575611dbbb443b5c"},"headline":"What Is Kubernetes?","datePublished":"2021-11-18T16:52:54+00:00","dateModified":"2022-07-14T20:55:14+00:00","mainEntityOfPage":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/"},"wordCount":1123,"commentCount":0,"publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"image":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg","keywords":["B2Cloud"],"articleSection":["Cloud Storage"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/","name":"What Is Kubernetes, and How Might You Use It to Help Your Company?","isPartOf":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg","datePublished":"2021-11-18T16:52:54+00:00","dateModified":"2022-07-14T20:55:14+00:00","description":"Kubernetes was the key for Pok\u00e9mon Go scaling its servers to 50 times its anticipated demand. How does Kubernetes help a company rapidly scale its resources?","breadcrumb":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/#primaryimage","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg","width":1440,"height":820},{"@type":"BreadcrumbList","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/what-is-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What Is Kubernetes?"}]},{"@type":"WebSite","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","name":"Backblaze Cloud Solutions Blog","description":"Cloud Storage &amp; Cloud Backup","publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization","name":"Backblaze","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Backblaze"},"image":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/backblaze","https:\/\/x.com\/backblaze","https:\/\/www.youtube.com\/user\/Backblaze","https:\/\/en.wikipedia.org\/wiki\/Backblaze"]},{"@type":"Person","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/a92e54b3011e599a575611dbbb443b5c","name":"Molly Clancy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/02\/ClancyMolly_Headshot_reduced-150x150.png","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/02\/ClancyMolly_Headshot_reduced-150x150.png","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/02\/ClancyMolly_Headshot_reduced-150x150.png","caption":"Molly Clancy"},"description":"Molly Clancy is a content writer who specializes in explaining tech concepts in an easy, approachable way. With more than 15 years of experience, she has a broad background in industries ranging from B2B tech to engineering to luxury travel. A deep curiosity drives her repeated success explaining what terms like OS kernel and preflight request mean so that anyone can understand them.","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/author\/molly\/"}]}},"jetpack_featured_media_url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/11\/container-ship-Kubernetes.jpg","_links":{"self":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/103482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/users\/159"}],"replies":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/comments?post=103482"}],"version-history":[{"count":0,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/103482\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media\/103483"}],"wp:attachment":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media?parent=103482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/categories?post=103482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/tags?post=103482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}