{"id":468990,"date":"2022-06-30T03:48:40","date_gmt":"2022-06-30T00:48:40","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/do-you-really-need-kubernetes-k8s\/"},"modified":"2022-06-30T03:48:40","modified_gmt":"2022-06-30T00:48:40","slug":"do-you-really-need-kubernetes-k8s","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/do-you-really-need-kubernetes-k8s\/","title":{"rendered":"#Do You Really Need Kubernetes (K8s)?"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a29bbc5bc22c\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" 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: #dd3333;color:#dd3333\" 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><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a29bbc5bc22c\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/do-you-really-need-kubernetes-k8s\/#%E2%80%9CDo_You_Really_Need_Kubernetes_K8s%E2%80%9D\" >&#8220;Do You Really Need Kubernetes (K8s)?&#8221;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/do-you-really-need-kubernetes-k8s\/#What_Kubernetes_Is_Great_At\" >What Kubernetes Is Great At<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/do-you-really-need-kubernetes-k8s\/#What_Kubernetes_Isnt_Great_At\" >What Kubernetes Isn\u2019t\u00a0Great At<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/do-you-really-need-kubernetes-k8s\/#What_Should_You_Use_Instead\" >What Should You Use Instead?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E2%80%9CDo_You_Really_Need_Kubernetes_K8s%E2%80%9D\"><\/span>&#8220;Do You Really Need Kubernetes (K8s)?&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<div>\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-10076\" data-pagespeed-no-defer=\"\" src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2021\/03\/620c8dee.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Illustration showing the Docker and Kubernetes logos\" width=\"1602\" height=\"902\"\/><\/p>\n<p>Kubernetes has a reputation for being complicated. While it\u2019s a fantastic piece of software, sometimes the benefits may not outweigh the added complexity, especially for small businesses managing simple deployments. Is plain old Docker good enough?<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"What_Kubernetes_Is_Great_At\"><\/span>What Kubernetes Is Great At<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kubernetes (K8s) is used with Docker very often in professional environments, and this can make it seem like it\u2019s an upgraded or more organized version of Docker. While this is true in some regards, it\u2019s not the exact purpose of K8s.<\/p>\n<p>Kubernetes is a \u201ccontainer orchestration system,\u201d and it\u2019s important to remember what that means.\u00a0The Kubernetes Control Plane handles all the details of \u201corchestrating\u201d which containers will run on which nodes. It separates the hardware from the software and lets your machines just run as worker nodes, which is ideally all they really should be.<\/p>\n<p>Kubernetes fantastic when you have a large, production deployment that needs to be able to scale, repair, and manage itself automatically. When you\u2019re managing hundreds of containers across many servers, having to deal with load balancing and moving containers from server to server can get annoying. K8s handles this for you with extra configuration options.<\/p>\n<figure style=\"width: 1067px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-10105\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2021\/03\/a34ae084.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Graphic showing Kubernetes cluster architecture\" width=\"1067\" height=\"513\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><figcaption class=\"wp-caption-text\">Graphic showing Kubernetes cluster architecture<\/figcaption><\/figure>\n<p>Kubernetes is also similar to\u00a0infrastructure as code (IaC), another useful concept. It lets you control your services using configuration files that can be tracked through Git. This can drastically improve your deployment processes by allowing it to be tracked along branches, tested, versioned, and rolled back if needed.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"What_Kubernetes_Isnt_Great_At\"><\/span>What Kubernetes Isn\u2019t\u00a0Great At<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The main downside of Kubernetes is that it\u2019s notoriously complicated. This might not be a huge problem if you\u2019re already familiar with it, but in any case, it adds extra time and complexity to getting your <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>lications up and running. It\u2019s a great tool to learn, and a good skill to have. But it works better with larger deployments, and if you\u2019re running only a few servers or a few containers, the extra effort of Kubernetes might not be worth it.<\/p>\n<p>Kubernetes is a middleman, but you can always go old-school and take the role of orchestrator yourself.\u00a0The nice thing about Docker is that it makes the process of creating and moving applications around easy with containerization. Creating a new server is relatively simple, and you could have a new EC2 instance from AWS running your container in a manner of minutes.<\/p>\n<p>Without Kubernetes, the only added problem you have is needing to run commands manually on your servers with the <code>docker<\/code>\u00a0CLI or <code>docker-compose<\/code>\u00a0API. If you need to add a new container, or move a container to another node, you\u2019ll need to run those commands again. This can be an issue if, for example, you experienced unexpectedly high traffic and needed to launch more instances automatically. K8s would solve that problem. But in many cases, your traffic may be relatively steady, or at least predicable on a week-to-week basis, especially for backend services that don\u2019t really need to auto-scale.<\/p>\n<p>Essentially, Docker itself already improves the process of running portable applications by a large amount. It\u2019s a huge improvement over having to install applications the old way. Kubernetes improves upon Docker a bit, and automates some tasks needed for big networks, but adds a lot of complexity.<\/p>\n<p>The value of it will depend on how much time it actually saves you. If this complexity is acceptable to you and ends up saving you time, you should use K8s, but if it doesn\u2019t, you shouldn\u2019t waste your time with it\u2014especially when you can always simply swap to it later on if need be.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"What_Should_You_Use_Instead\"><\/span>What Should You Use Instead?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>It\u2019s good to take a step back and look at what you\u2019re really considering Kubernetes for. If you want your network to auto-scale, manage your resources automatically, and launch pods on different servers based on configuration, Kubernetes is a great tool to learn. If you\u2019re concerned about the complexity, cloud providers like AWS do have <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/aws.amazon.com\/eks\/?tag=hotoge-20\">managed Kubernetes services like EKS<\/a>, which can handle some of the dirty work for you, especially when it comes to management and provisioning resources.<\/p>\n<p>However, if all you want is a way to manage your containers more easily, or auto-update containers, there are far simpler tools out there for the job. They might not be as fully featured as Kubernetes, but they\u2019ll be simpler and can save you time.<\/p>\n<p>If you want to auto-scale certain services, you\u2019ll almost always need to be talking to a cloud provider\u2019s API to provision new resources. Kubernetes can handle this for you for many platforms, but services like AWS, Azure, and GCP all have simple container services with auto-scaling features. AWS\u2019s ECS service can easily be set up to auto-scale to meet high demand.<\/p>\n<p><strong>RELATED:<\/strong> <strong><em>How to Get Started with Auto-Scaling Container Deployments on AWS ECS<\/em><\/strong><\/p>\n<p>If you need to auto-update containers whenever you push new versions to your Docker registry, you can use a <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/containrrr\/watchtower\">service like Watchtower<\/a>. It runs on a worker node as a Docker service itself, with the Docker socket exposed, and watches for changes. Once a new container is pushed, Watchtower will restart the container. This will save you time running restarts of containers, and is a good alternative to Kubernetes updates.<\/p>\n<pre>docker run --detach &#13;\n--name watchtower &#13;\n--volume \/var\/run\/docker.sock:\/var\/run\/docker.sock &#13;\ncontainrrr\/watchtower<\/pre>\n<p>If you want to be more organized in <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/general\/\" data-internallinksmanager029f6b8e52c=\"3\" title=\"General\" target=\"_blank\" rel=\"noopener\">general<\/a> with how you manage your containers, you should consider setting up a <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.portainer.io\/?hsLang=en\">Docker management GUI like Portainer<\/a>. Portainer is a web-based GUI for managing Docker deployments. It works with multiple worker nodes, much like Kubernetes, but it lets you handle the job of orchestration, setting up containers on the servers you want.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15997\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/03\/942fa876.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1283\" height=\"489\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Portainer is really easy to set up since it\u2019s packaged as a container itself. If you\u2019d like to learn more, you can read our guide to setting it up and working with it.<\/p>\n<p><strong>RELATED:<\/strong> <strong><em>How to Get Started With Portainer, a Web UI for Docker<\/em><\/strong><\/p>\n<\/div>\n<p><script>\n setTimeout(function(){\n  !function(f,b,e,v,n,t,s)\n  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n  n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n  n.queue=[];t=b.createElement(e);t.async=!0;\n  t.src=v;s=b.getElementsByTagName(e)[0];\n  s.parentNode.insertBefore(t,s) } (window, document,'script',\n  'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n   fbq('init', '335401813750447');\n   fbq('track', 'PageView');\n  },3000);\n<\/script><\/p>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.howtogeek.com\/devops\/do-you-really-need-kubernetes-k8s\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Do You Really Need Kubernetes (K8s)?&#8221; Kubernetes has a reputation for being complicated. While it\u2019s a fantastic piece of software, sometimes the benefits may not outweigh the added complexity, especially for small businesses managing simple deployments. Is plain old Docker good enough? What Kubernetes Is Great At Kubernetes (K8s) is used with Docker very often&#8230;<\/p>\n","protected":false},"author":1,"featured_media":468991,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2021\/03\/620c8dee.jpg?height=200p&trim=2,2,2,2","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-468990","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/468990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=468990"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/468990\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/468991"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=468990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=468990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=468990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}