{"id":11860,"date":"2019-03-17T16:09:25","date_gmt":"2019-03-17T16:09:25","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw92\/?p=11860"},"modified":"2019-03-17T16:30:54","modified_gmt":"2019-03-17T16:30:54","slug":"linux-today-7-pieces-of-contrarian-kubernetes-advice","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/03\/17\/linux-today-7-pieces-of-contrarian-kubernetes-advice\/","title":{"rendered":"Linux Today &#8211; 7 pieces of contrarian Kubernetes advice"},"content":{"rendered":"<div class=\"panel-pane pane-entity-field pane-node-field-basic-image-image no-title block\">\n<div class=\"block-inner clearfix\">\n<div class=\"block-content\">\n<div class=\"field field-name-field-basic-image-image field-type-image field-label-hidden view-mode-_custom_display\">\n<div class=\"field-items\">\n<figure class=\"clearfix field-item even\"><img loading=\"lazy\" decoding=\"async\" class=\"620x350 image-style-620x350\" title=\"Kubernetes\" src=\"https:\/\/enterprisersproject.com\/sites\/default\/files\/styles\/620x350\/public\/cio_kubernetes.png?itok=wDep5_PX\" alt=\"Kubernetes\" width=\"620\" height=\"350\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"panel-separator\"><\/div>\n<div class=\"panel-pane pane-entity-field pane-node-body no-title block\">\n<div class=\"block-inner clearfix\">\n<div class=\"block-content\">\n<div class=\"field field-name-body field-type-text-with-summary field-label-hidden view-mode-_custom_display\">\n<div class=\"field-items\">\n<div class=\"field-item even\">\n<p>You can find many great resources for\u00a0<a href=\"https:\/\/enterprisersproject.com\/article\/2019\/2\/kubernetes-12-ways-get-smarter\">getting smarter about Kubernetes<\/a>\u00a0out there. (Ahem, we\u2019ve written\u00a0<a href=\"https:\/\/enterprisersproject.com\/kubernetes-guide\">a few\u00a0<\/a>ourselves.)<\/p>\n<p>That\u2019s good news for IT teams and professionals looking to boost their knowledge and consider how\u00a0<a href=\"https:\/\/www.redhat.com\/en\/topics\/containers\/what-is-kubernetes?intcmp=701f2000000tjyaaaa&amp;extidcarryover=true&amp;sc_cid=70160000000h0axaaq\" target=\"_blank\" rel=\"noopener\">Kubernetes<\/a>\u00a0might solve problems in their organization. The excited chatter about Kubernetes has gotten so loud, however, that it can become difficult to make sense of it all. Moreover, it can be challenging to sort the actual business and technical benefits from the sales pitches.<\/p>\n<p><b>[ Need\u00a0to help others understand Kubernetes? Check out our related article,\u00a0<\/b><a href=\"https:\/\/enterprisersproject.com\/article\/2017\/10\/how-explain-kubernetes-plain-english?sc_cid=70160000000h0aXAAQ\"><b>How to explain Kubernetes in plain English.<\/b><\/a><b>\u00a0]<\/b><\/p>\n<p>So we asked several IT leaders and Kubernetes users to share some advice that goes against the grain.<\/p>\n<p>If you always take conventional wisdom \u2013 or straight-up hype \u2013 at face value, you\u2019re bound to be disappointed at some point. So consider these bits of contrarian thinking as another important dimension of your Kubernetes learning.<\/p>\n<h2>1. Don\u2019t treat Kubernetes as a silver bullet<\/h2>\n<p>Interest in Kubernetes is astronomical for good reason: It\u2019s a powerful tool when properly used. But if you treat Kubernetes as a cure-all for anything and everything that ails your applications and infrastructure, expect new challenges ahead.<\/p>\n<p>\u201cKubernetes is not a silver bullet for all solutions,\u201d Raghu Kishore Vempati, principal systems engineer at\u00a0<a href=\"https:\/\/www.aricent.com\/\" target=\"_blank\" rel=\"noopener\">Aricent<\/a>. \u201cUnderstand and use it carefully.\u201d<\/p>\n<p>Indeed, the spotlight on Kubernetes has grown so bright as to suggest that it\u2019s some kind of IT sorcery: Just put and everything in containers, deploy \u2019em to production, and let Kubernetes handle the rest while you plan your next vacation.<\/p>\n<p>Even if you\u2019re more realistic about it, it may be tempting to assume Kubernetes will automatically solve existing issues with, say, your application design. It won\u2019t. (Even Kubernetes\u2019 original\u00a0<a href=\"https:\/\/twitter.com\/jbeda\/status\/1102677296039616512\" target=\"_blank\" rel=\"noopener\">co-creators agree with this<\/a>.) Focus on what it\u2019s good at rather than trying to use it as a blanket solution.<\/p>\n<p>\u201c<a href=\"https:\/\/enterprisersproject.com\/article\/2018\/10\/container-trends-6-watch-it-leaders\">Containers<\/a>\u00a0and Kubernetes provide an opportunity to create solutions that previously would have required a lot of effort and code plumbing with higher costs,\u201d Vempati says. \u201cWhile Kubernetes can provide orchestration, it doesn\u2019t solve any of the inherent design problems or limitations of the applications hosted on it. In short, application overheads cannot be addressed using Kubernetes.\u201d<\/p>\n<p><strong>[ Related read:\u00a0<a href=\"https:\/\/enterprisersproject.com\/article\/2018\/11\/getting-started-kubernetes-5-misunderstandings-explained\">Getting started with Kubernetes: 5 misunderstandings, explained<\/a>.\u00a0]<\/strong><\/p>\n<h2>2. You don\u2019t have to immediately refactor everything for microservices<\/h2>\n<p><a href=\"https:\/\/enterprisersproject.com\/tags\/microservices\">Microservices<\/a>\u00a0and containers\u00a0<a href=\"https:\/\/enterprisersproject.com\/article\/2017\/8\/5-advantages-containers-writing-applications\">pair well together<\/a>, so it\u2019s reasonable to assume that Kubernetes and containerized microservices are a good match, too.<\/p>\n<p>\u201cKubernetes is ideal for new and refactored applications that don\u2019t carry the baggage \u2013 and requirements \u2013 of traditional and monolithic applications,\u201d says Ranga Rajagopalan, CTO and cofounder at\u00a0<a href=\"https:\/\/avinetworks.com\/\" target=\"_blank\" rel=\"noopener\">Avi Networks<\/a>.<\/p>\n<p>Just don\u2019t mistake the ideal scenario as the only scenario.<\/p>\n<p>\u201cThe conventional wisdom is to refactor or rewrite your monoliths before deploying them within a Kubernetes environment,\u201d Rajagopalan says. \u201cHowever, this can be a massive undertaking that risks putting your team in analysis paralysis.\u201d<\/p>\n<p>Rajagopalan notes that you can indeed run a monolith in a container and then begin to incrementally break off pieces of the application as microservices, rather than trying to do everything at once.<\/p>\n<p>\u201cThis can jumpstart your modernization efforts and deliver value well before the application has been completely refactored,\u201d Rajagopalan says. \u201cYou don\u2019t have to be a purist about microservices.\u201d<\/p>\n<p>Vempati concurs, noting that there might be some legacy applications that you never refactor because the costs outweigh the benefits.<\/p>\n<h2>3. Account for feature differences on public clouds<\/h2>\n<p>One of the overarching appeals of containers is greater portability among environments, especially as multi-cloud and hybrid cloud environments proliferate. Indeed, Vempati notes that it\u2019s a common scenario for a team to deploy Kubernetes clusters on public cloud platforms. But you can\u2019t always assume &#8220;vendor-neutral&#8221;\u00a0as a default.<\/p>\n<p>\u201cThe native Kubernetes capabilities on public clouds differ. It is important to understand the features and workflows carefully,\u201d Vempati advises. \u201cAll the key public cloud service providers provide native Kubernetes cluster services. While these are much similar, there will be certain features that are different. When designing the solution with an aim to keep it vendor-neutral, while still choosing one of the vendors, such differences must be taken into account.\u201d<\/p>\n<p>Vempati shares as an example that one public cloud provider will assign public (or external) IPs to nodes when a cluster is created with its Kubernetes service, while another does not. \u201cSo if there is any dynamic behavior of the apps to infer\/use external IP, it may work with [one platform] but not on [another],\u201d Vempati says.<\/p>\n<h2>4. It will take time\u00a0to get automation right<\/h2>\n<p>A basic selling point of Kubernetes and orchestration in general is that it makes manageable the operational burden of running production containers at scale, largely through\u00a0<a href=\"https:\/\/enterprisersproject.com\/tags\/automation\">automation<\/a>. So this is one of those times where it\u2019s best to be reminded that \u201cautomation\u201d is not a synonym of \u201ceasy,\u201d especially as you\u2019re setting it up. Expect some real effort to get it right, and you\u2019ll get a return on that investment over time.<\/p>\n<p>\u201cKubernetes is a wonderful platform for building highly scalable and elastic solutions,\u201d Vempati says. \u201cOne of the key [selling points] of this platform is that it very effectively supports continuous delivery of microservices hosted in containers for cloud scale.\u201d<\/p>\n<p>This sounds great to any IT team working in multi-cloud or hybrid cloud environments, especially as their cloud-native development increases. Just be ready to do some legwork to reap the benefits.<\/p>\n<p>\u201cTo support automated continuous delivery for any Kubernetes-based solution is not [as] simple as it may [first] appear,\u201d Vempati says. \u201cIt involves a lot of preparation, simulation of multiple scenarios based on the solution, and several iterations to achieve the [desired results.]\u201d<\/p>\n<p><a href=\"https:\/\/www.redhat.com\/en?intcmp=701f2000000tjyaAAA\" target=\"_blank\" rel=\"noopener\">Red Hat<\/a>\u00a0VP and CTO\u00a0<a href=\"https:\/\/enterprisersproject.com\/user\/chris-wright\">Chris Wright<\/a>\u00a0recently\u00a0<a href=\"https:\/\/enterprisersproject.com\/article\/2019\/3\/kubernetes-hybrid-cloud-whats-next\">wrote<\/a>\u00a0about four emerging tools that play into this need for simplification. Read also\u00a0<a href=\"https:\/\/enterprisersproject.com\/article\/2019\/3\/kubernetes-hybrid-cloud-whats-next\">What\u2019s next for Kubernetes and hybrid cloud<\/a>.<\/p>\n<h2>5. Be judicious in your use of persistent volumes<\/h2>\n<p>The original conventional wisdom that containers should be stateless has changed, especially as it has become easier to manage stateful applications such as databases.<\/p>\n<p><strong>[ Read also\u00a0<a href=\"https:\/\/enterprisersproject.com\/article\/2019\/2\/kubernetes-operators-plain-english\">How to explain Kubernetes Operators in plain English<\/a>.\u00a0]<\/strong><\/p>\n<p><a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/persistent-volumes\/\" target=\"_blank\" rel=\"noopener\">Persistent volumes<\/a>\u00a0are the Kubernetes abstraction that enables storage for stateful applications running in containers. In short, that\u2019s a good thing. But Vempati urges careful attention to avoid longer-term issues, especially if you\u2019re in the earlier phases of adoption.<\/p>\n<p>\u201cThe use of persistent volumes in Kubernetes for data-centric apps is a common scenario,\u201d Vempati says. \u201cUnderstand the storage primitives available so that using persistent volumes doesn\u2019t spike costs.\u201d<\/p>\n<p>Factors such as the type of storage you\u2019re using can lead to cost surprises, especially when PVs are created dynamically in Kubernetes. Vempati offers an example scenario:<\/p>\n<p>\u201cPersistent volumes and their claims can be dynamically created as part of a deployment for a pod. Verify the storage class to make sure that the right kind of storage is used,\u201d Vempati advises. \u201cSSDs on public cloud will have a higher cost associated with them, compared to a standard storage.\u201d<\/p>\n<h2>6. Don\u2019t evangelize Kubernetes by\u00a0shouting \u201cKubernetes!\u201d<\/h2>\n<p>If you\u2019re trying to\u00a0<a href=\"https:\/\/enterprisersproject.com\/article\/2017\/10\/how-make-case-kubernetes\">make the case for Kubernetes<\/a>\u00a0in your organization, it may be tempting to simply ride the surging wave of excitement around it.<\/p>\n<p>\u201cThe common wisdom out there is that simply mentioning Kubernetes is enough to gain someone\u2019s interest in how you are using it to solve a particular problem,\u201d says Glenn Sullivan, co-founder at\u00a0<a href=\"https:\/\/www.snaproute.com\/\" target=\"_blank\" rel=\"noopener\">SnapRoute<\/a>, which uses Kubernetes as part of its cloud-native networking software\u2019s underlying infrastructure. \u201cMy advice would be to spend less time pointing to Kubernetes as the answer and piggybacking on the buzz that surrounds the platform and focus more on the results of using Kubernetes. When you present Kubernetes as the solution for solving a problem, you will immediately elate some [people] and alienate others.\u201d<\/p>\n<p>One reason they might resist it or tune out is that they simply don\u2019t understand what Kubernetes is. You can explain it to them in plain terms, but Sullivan says the lightbulb moment \u2013 and subsequent buy-in \u2013 is more likely to occur when you show them the results.<\/p>\n<p>\u201cWe find it more advantageous to promote the [benefits] gained from using Kubernetes instead of presenting the integration into Kubernetes itself as the value-add,\u201d Sullivan says.<\/p>\n<h2>7. Kubernetes is not an island<\/h2>\n<p>Kubernetes is an important piece of the\u00a0<a href=\"https:\/\/www.redhat.com\/en\/topics\/cloud-native-apps?intcmp=701f2000000tjyaAAA\" target=\"_blank\" rel=\"noopener\">cloud-native<\/a>\u00a0puzzle, but it\u2019s only one piece. As\u00a0<a href=\"https:\/\/www.redhat.com\/en?intcmp=701f2000000tjyaAAA\" target=\"_blank\" rel=\"noopener\">Red Hat<\/a>\u00a0technology evangelist\u00a0<a href=\"https:\/\/enterprisersproject.com\/user\/gordon-haff\">Gordon Haff<\/a>\u00a0notes, \u201cThe power of the\u00a0<a href=\"https:\/\/github.com\/cncf\/landscape\" target=\"_blank\" rel=\"noopener\">open source cloud-native ecosystem<\/a>\u00a0comes only in part from individual projects such as Kubernetes. It derives, perhaps even more, from the breadth of complementary projects that come together to create a true cloud-native platform.\u201d<\/p>\n<p>This includes service meshes like \u00a0<a href=\"https:\/\/istio.io\/\" target=\"_blank\" rel=\"noopener\">Istio<\/a>, monitoring tools like\u00a0<a href=\"https:\/\/prometheus.io\/\" target=\"_blank\" rel=\"noopener\">Prometheus<\/a>, command-line tools like\u00a0<a href=\"https:\/\/developers.redhat.com\/articles\/podman-next-generation-linux-container-tools?intcmp=701f2000000tjyaAAA\" target=\"_blank\" rel=\"noopener\">Podman<\/a>, distributed tracing from the likes of\u00a0<a href=\"https:\/\/www.jaegertracing.io\/\" target=\"_blank\" rel=\"noopener\">Jaeger\u00a0<\/a>and\u00a0<a href=\"https:\/\/www.kiali.io\/\" target=\"_blank\" rel=\"noopener\">Kiali<\/a>, enterprise registries like\u00a0<a href=\"https:\/\/quay.io\/\" target=\"_blank\" rel=\"noopener\">Quay<\/a>, and inspection utilities like\u00a0<a href=\"https:\/\/github.com\/containers\/skopeo\" target=\"_blank\" rel=\"noopener\">Skopeo<\/a>, says Haff. And, of course,\u00a0<a href=\"https:\/\/www.redhat.com\/en\/topics\/linux?intcmp=701f2000000tjyaAAA\" target=\"_blank\" rel=\"noopener\">Linux<\/a>, which is the foundation for the containers orchestrated by Kubernetes.<\/p>\n<p><strong>[ Want to learn more about automation and building cloud-native apps? Get the guide:\u00a0<a href=\"https:\/\/www.redhat.com\/en\/engage\/principles-of-container-based-application-design-20180501?intcmp=701f2000000tjyaAAA\" target=\"_blank\" rel=\"noopener\">Principles of container-based application design<\/a>. ]<\/strong><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><a href=\"http:\/\/www.linuxtoday.com\/infrastructure\/7-pieces-of-contrarian-kubernetes-advice-190314084028.html\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>You can find many great resources for\u00a0getting smarter about Kubernetes\u00a0out there. (Ahem, we\u2019ve written\u00a0a few\u00a0ourselves.) That\u2019s good news for IT teams and professionals looking to boost their knowledge and consider how\u00a0Kubernetes\u00a0might solve problems in their organization. The excited chatter about Kubernetes has gotten so loud, however, that it can become difficult to make sense of &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/03\/17\/linux-today-7-pieces-of-contrarian-kubernetes-advice\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Linux Today &#8211; 7 pieces of contrarian Kubernetes advice&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11860","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/11860","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/comments?post=11860"}],"version-history":[{"count":2,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/11860\/revisions"}],"predecessor-version":[{"id":11862,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/11860\/revisions\/11862"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/media?parent=11860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/categories?post=11860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/tags?post=11860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}