{"id":3662,"date":"2018-09-26T15:40:54","date_gmt":"2018-09-26T21:40:54","guid":{"rendered":"http:\/\/benincosa.com\/?p=3662"},"modified":"2018-10-10T12:03:46","modified_gmt":"2018-10-10T18:03:46","slug":"kubernetes-onprem-storage","status":"publish","type":"post","link":"https:\/\/benincosa.com\/?p=3662","title":{"rendered":"Kubernetes OnPrem Storage"},"content":{"rendered":"<p>Lately I came across a few bare metal servers in our lab and decided I would test some of my ideas on setting up a bare metal kubernetes cluster on these nodes.\u00a0 I started thinking that if I were to do so I would need some persistent storage.\u00a0 There were a few options I could choose from:<\/p>\n<ul>\n<li>I could NFS mount to all the nodes a server that had a ton of disks in it.\u00a0 I could also find an old NetApp array or something else in here that may do the trick.<\/li>\n<li>I could use Cisco Hyperflex.\u00a0 The only problem was that HX requires VMware or Windows, both are not options for me as I refuse to pay their licensing costs.<\/li>\n<li>One project<a href=\"https:\/\/www.minio.io\/\" target=\"_blank\" rel=\"noopener noreferrer\"> minio<\/a> caught my eye as a great solution as I could get great object store on prem.\u00a0 It is already managed by kubernetes so it becomes native storage.\u00a0 I loved this idea.<\/li>\n<\/ul>\n<p>As I started thinking more about this I realized how great the <a href=\"https:\/\/kubernetes.io\/blog\/2018\/01\/introducing-container-storage-interface\/\" target=\"_blank\" rel=\"noopener noreferrer\">Kubernetes Storage Interface<\/a> idea is.\u00a0 Looking at Hyperflex, a lot of the heavy lifting done in the code is managing the nodes and installing the controllers.\u00a0 Much of this Kubernetes gives you for free.\u00a0 The future then of distributed storage that we&#8217;ve been getting from VMware with VSAN or HX, or Nutanix is looking more to me of a place that Kubernetes can dominate.<\/p>\n<p>Another project that holds great promise to me is <a href=\"https:\/\/rook.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Rook<\/a>.\u00a0 Rook uses the idea of <a href=\"https:\/\/coreos.com\/operators\/\" target=\"_blank\" rel=\"noopener noreferrer\">Kubernetes Operators<\/a> to set up distributed storage including Minio and Ceph.\u00a0 Operators become the expert in deploying and running these systems.<\/p>\n<p>Examine what containers have done for software development:\u00a0 A new way to easily distribute and run applications in consistent environments.\u00a0 Now consider, by extension that Kubernetes is using some of that goodness to deploy infrastructure.\u00a0 It used to be pretty complicated to setup and manage the lifecycle of databases, Kafka streams, or other services required by the applications.\u00a0 Now, though, Kubernetes is making this easier for us.<\/p>\n<p>I&#8217;ll be examining some of these ideas in some upcoming posts, but I&#8217;m pretty excited about what these new features enable us.<\/p>\n<p>Finally, I&#8217;d say:\u00a0 If you are a storage vendor or selling storage software, if you don&#8217;t have a kubernetes strategy, its time to start looking at it.\u00a0 Not only will it increase your time to market, but it will make the upgrading, lifecycle, and maintenance of your storage system for free.\u00a0 And I&#8217;m not talking about how Kubernetes can run on top of your storage, I&#8217;m talking about how your storage should be running inside Kubernetes.<\/p>\n<p>Update:\u00a0 Check out Rook \/ Ceph in action:<\/p>\n<p><iframe loading=\"lazy\" title=\"Cisco UCS Bare Metal Kubernetes with Rook and Ceph\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/yZI2ZN_-Bhc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lately I came across a few bare metal servers in our lab and decided I would test some of my ideas on setting up a bare metal kubernetes cluster on these nodes.\u00a0 I started thinking that if I were to do so I would need some persistent storage.\u00a0 There were a few options I could&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[478,797,151],"tags":[991,863,867,798,866,862,864,865],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3662"}],"collection":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3662"}],"version-history":[{"count":4,"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3662\/revisions"}],"predecessor-version":[{"id":3672,"href":"https:\/\/benincosa.com\/index.php?rest_route=\/wp\/v2\/posts\/3662\/revisions\/3672"}],"wp:attachment":[{"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benincosa.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}