{"id":2482,"date":"2019-03-19T10:06:10","date_gmt":"2019-03-19T14:06:10","guid":{"rendered":"http:\/\/www.soul-repairs.com\/blog\/?p=2482"},"modified":"2019-02-28T17:29:29","modified_gmt":"2019-02-28T22:29:29","slug":"kubernetes-what-is-it-and-why-do-i-care","status":"publish","type":"post","link":"https:\/\/soul-repairs.com\/blog\/2019\/03\/19\/kubernetes-what-is-it-and-why-do-i-care\/","title":{"rendered":"Kubernetes: What is it, and why do I care?"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-2493 size-medium\" src=\"https:\/\/soul-repairs.com\/blog\/wp-content\/uploads\/2019\/02\/why-do-we-care-e1549502424945-300x233.jpg\" alt=\"\" width=\"300\" height=\"233\" srcset=\"https:\/\/soul-repairs.com\/blog\/wp-content\/uploads\/2019\/02\/why-do-we-care-e1549502424945-300x233.jpg 300w, https:\/\/soul-repairs.com\/blog\/wp-content\/uploads\/2019\/02\/why-do-we-care-e1549502424945-347x270.jpg 347w, https:\/\/soul-repairs.com\/blog\/wp-content\/uploads\/2019\/02\/why-do-we-care-e1549502424945.jpg 382w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>So you\u2019re a Java\/C++\/web developer and you&#8217;ve heard about all of these \u201ccloud native\u201d technologies, and containers, and you\u2019re wondering \u201cexcuse me, what is a Kubernetes please, and why do I care?\u201d<\/p>\n<p><span id=\"E77\">&#8230;or maybe you\u2019re a general technologist &#8211; idly curious enough to wonder what all the fuss is about but not super interested in digging into the guts of the thing.<\/span><\/p>\n<p>&#8230;or maybe you tend to understand technology more big-picture than detail and you wish someone would just <a href=\"https:\/\/en.wikipedia.org\/wiki\/TL;DR\" target=\"_blank\" rel=\"noopener noreferrer\">tl;dr<\/a>\u00a0it for you.<\/p>\n<p>Well&#8230;welcome to the first of our Technology TLDR posts!\u00a0<em>Kubernetes, you&#8217;re up.<\/em><\/p>\n<p><!--more--><\/p>\n<h2>Officially&#8230;<\/h2>\n<p>From the <a href=\"https:\/\/www.kubernetes.io\" target=\"_blank\" rel=\"noopener noreferrer\">Kubernetes<\/a> website\/documentation:<\/p>\n<blockquote>\n<p id=\"kubernetes-k8s-docs-concepts-overview-what-is-kubernetes-is-an-open-source-system-for-automating-deployment-scaling-and-management-of-containerized-applications\">Kubernetes is an <a href=\"https:\/\/opensource.com\/resources\/what-open-source\" target=\"_blank\" rel=\"noopener noreferrer\">open-source<\/a> system for automating deployment, scaling, and management of containerized applications.<\/p>\n<\/blockquote>\n<p id=\"E80\"><span id=\"E85\">You may also see it referred to as k8s &#8211; because of the 8 letters between the k and the s. <em>Yes, seriously.\u00a0<\/em>Go ahead, count the letters. <em>(Laine: I have to do this every time I see &#8220;k8s.&#8221; I think I&#8217;m suspicious that I counted wrong the first 15 times&#8230;)<\/em> We&#8217;ll wait.<\/span><\/p>\n<h2 id=\"E78\" class=\"qowt-stl-Heading2\"><span id=\"E79\">Translated: Kubernetes is a <em>Platform<\/em><\/span><\/h2>\n<p id=\"E80\"><span id=\"E81\">Just like the laptop\/desktop\/phone that you\u2019re looking at<\/span><span id=\"E83\">, and just like a<\/span><span id=\"E85\"> cluster\/group of Java web servers or virtual machines (or a mainframe!), a Kubernetes cluster (a running instance of the Kubernetes product) is a <strong>place to run applications\u00a0<\/strong>&#8211; specifically applications bundled within a <a href=\"https:\/\/www.techradar.com\/news\/what-is-container-technology\" target=\"_blank\" rel=\"noopener noreferrer\">container<\/a>.<\/span><\/p>\n<p><span id=\"E89\">If you write an application to run in a <a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker<\/a> container (or more recently <a href=\"https:\/\/cri-o.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">CRI-O<\/a>, or several others), you can deploy that container to a Kubernetes cluster, and with the right magic spell (&#8230;commands, Kubernetes uses the <a href=\"https:\/\/kubernetes.io\/docs\/reference\/kubectl\/overview\/\" target=\"_blank\" rel=\"noopener noreferrer\">kubectl<\/a>\u00a0command line interface), the application will start up, and run, and scale, and accept traffic, and <em>also connect to stuff<\/em>. <\/span><\/p>\n<p id=\"E90\"><span id=\"E91\">You can think of Kubernetes (and the technologies used at the same time to make Kubernetes a\u00a0complete working platform)\u00a0as a shiny new kind of <a href=\"https:\/\/soul-repairs.com\/blog\/2019\/02\/28\/why-containers\/\" target=\"_blank\" rel=\"noopener noreferrer\">virtualization<\/a>. With this virtualization, you don\u2019t have to worry about operating system config and setup, and you <em>also\u00a0<\/em>don\u2019t have to worry about allocating the necessary CPU and memory and storage to run the application(s).<\/span><\/p>\n<h2 id=\"E92\" class=\"qowt-stl-Heading2\"><span id=\"E93\">Well&#8230;Kubernetes is a <\/span><em><span id=\"E94\">Really Nice <\/span><\/em><span id=\"E95\">Platform<\/span><\/h2>\n<p id=\"E96\"><span id=\"E97\">Like we said, in the process of getting an application running on a Kubernetes cluster, you have to worry about a lot less <em>stuff<\/em>\u00a0than other platforms. Just write up a Docker<\/span><span id=\"E101\">\u00a0image, deploy it, set up <a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\" target=\"_blank\" rel=\"noopener noreferrer\">ingress routing<\/a>\u00a0(routing <em>into<\/em> the application,\u00a0a way to get to it) and <\/span><em><span id=\"E103\">TADA<\/span><\/em><span id=\"E105\"> you have <\/span><span id=\"E108\">a<\/span><span id=\"E111\">\u00a0fully-working application. <\/span><\/p>\n<p id=\"E112\"><span id=\"E113\">Usually, all of the setup and deployment can be fully automated, and the necessary resources from the cluster to run the application can be handed out on request as the application needs them. Without a platform like this, a VM typically needs to be set up as the alternate place to run the application, with resources specifically allocated ahead of time &#8211; unless there&#8217;s a mainframe, and that&#8217;s a whole <em>different<\/em> set of complications.\u00a0<\/span><\/p>\n<p><span id=\"E113\">So basically, you write your app and deploy it onto the cluster using service requests to the Kubernetes API (the kubectl commands), and your app is running on the platform in minutes. This is what&#8217;s meant by the term <a href=\"https:\/\/en.wikipedia.org\/wiki\/Platform_as_a_service\" target=\"_blank\" rel=\"noopener noreferrer\">Platform as a Service (PaaS)<\/a>\u00a0&#8211;\u00a0Kubernetes allows for developers\/devops people\/<em>choose your own implementation<\/em> to self-serve the <em>infrastructure<\/em>\u00a0(platform) necessary to run the <em>applications<\/em>.<\/span><\/p>\n<h2 id=\"E118\" class=\"qowt-stl-Heading2\"><span id=\"E119\">Kubernetes is the De Facto Cloud Standard<\/span><\/h2>\n<blockquote><p>Cloud: a bunch of servers organized and coordinated so you don\u2019t have to worry about which server is running your application, you just get a big pile of computer resources to use.<\/p><\/blockquote>\n<figure style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/www.reddit.com\/r\/ProgrammerHumor\/comments\/6cer5t\/what_are_clouds_made_of\/\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full\" src=\"https:\/\/i.redd.it\/l4bu591x5syy.jpg\" width=\"300\" height=\"205\" \/><\/a><figcaption class=\"wp-caption-text\">From r\/ProgrammerHumor<\/figcaption><\/figure>\n<p>A few years ago, there were many technologies competing to be the best at wrangling Linux servers into cloud technology. But none of them were as good as Kubernetes, and so open source contributors slowly stopped working on <em>those<\/em> and switched to contributing to Kubernetes.<\/p>\n<p>At this point, Kubernetes is the leader and standard, and all of the new nerd hotness\u00a0technology (<a href=\"https:\/\/istio.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Istio<\/a>, <a href=\"https:\/\/cloud.google.com\/knative\/\" target=\"_blank\" rel=\"noopener noreferrer\">Knative<\/a>, <a href=\"https:\/\/www.openshift.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">OpenShift<\/a>\u00a0[<a href=\"https:\/\/soul-repairs.com\/blog\/tag\/OpenShift\/\" target=\"_blank\" rel=\"noopener noreferrer\">tag<\/a>])\u00a0is being built on Kubernetes. If you know how to deploy to Kubernetes, you can work with just about any major cloud provider, and people keep finding amazing, easier ways to do so.<\/p>\n<p>So if you want to start taking advantage of simpler application builds and deployments with <a href=\"https:\/\/soul-repairs.com\/blog\/2019\/02\/28\/why-containers\/\" target=\"_blank\" rel=\"noopener noreferrer\">containers<\/a>, or you want to learn more about the current and future of platforms in IT, Kubernetes is where it&#8217;s at.<\/p>\n<h2>Affects on a Company<\/h2>\n<p><span id=\"E113\">We mentioned that a common alternative platform to run applications on is VM&#8217;s. If you&#8217;ve never waited for a VM to be set up from an infrastructure\/operations group, trust us when we say that it takes a <em>long time<\/em>. Probably at least a week, and reasonably up to a month depending on the size and agility of the enterprise.\u00a0<\/span><\/p>\n<p>This is just <em>one<\/em> example of how\u00a0bringing in\u00a0PaaS\u00a0technology like this can have a\u00a0<em>massive<\/em> affect on a company. <em>How<\/em> massive will depend on where the company was before it was brought in &#8211; if developers were mostly trusted, things were mostly self-service, and there wasn&#8217;t a lot of red tape\/check boxes\/oversight, the affect will be less &#8211; not <em>none<\/em>, but less. If, however, the company is on the\u00a0<em>other\u00a0<\/em>end of that spectrum, a self-service platform like this will speed up\u00a0<strong>basically everything IT does<\/strong>. This sounds awesome, and <em><strong>it\u00a0is awesome<\/strong><\/em>.<\/p>\n<p>It&#8217;s also a shock to the organization, a bit like the tortoise suddenly turning <em>into<\/em> the hare. It requires ownership, explanation, and <em>support<\/em>, and it requires modifications to the culture if the organization takes full advantage of the opportunities the technology offers.<\/p>\n<h2>TL;DR<\/h2>\n<p>Kubernetes is:<\/p>\n<ul>\n<li>a place (platform) where applications run<\/li>\n<li>a neat jump forward in virtualization technology<\/li>\n<li>the de facto standard for cloud-based containerization orchestration<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>So you\u2019re a Java\/C++\/web developer and you&#8217;ve heard about all of these \u201ccloud native\u201d technologies, and containers, and you\u2019re wondering \u201cexcuse me, what is a Kubernetes please, and why do I care?\u201d &#8230;or maybe you\u2019re a general technologist &#8211; idly curious enough to wonder what all the fuss is about but not super interested in &hellip; <\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/soul-repairs.com\/blog\/2019\/03\/19\/kubernetes-what-is-it-and-why-do-i-care\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4],"tags":[88,82,63,91,89,92,87,44,90,83],"wf_post_folders":[],"coauthors":[26,11],"class_list":["post-2482","post","type-post","status-publish","format-standard","hentry","category-technology","tag-cri-o","tag-docker","tag-glossary","tag-istio","tag-java","tag-knative","tag-kubernetes","tag-openshift","tag-paas","tag-technology-tldr"],"_links":{"self":[{"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/posts\/2482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/comments?post=2482"}],"version-history":[{"count":14,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/posts\/2482\/revisions"}],"predecessor-version":[{"id":2656,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/posts\/2482\/revisions\/2656"}],"wp:attachment":[{"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/media?parent=2482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/categories?post=2482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/tags?post=2482"},{"taxonomy":"wf_post_folders","embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/wf_post_folders?post=2482"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/coauthors?post=2482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}