Ep. 1: Containers, Rancher & Kubernetes
Description
Welcome to the inaugural episode of the All Things Devops Podcast. This is a brand new podcast from the BigBinary Team where we will discuss all things related to devops.
Today we have Rahul and Vishal with us and we will be discussing Rancher, Kubernetes and a couple of the programs and methods that we have been using at BigBinary.
Rahul currently handles all the big infrastructure at BigBinary, where over the past six months they have been shipping containers to production, using Kubernetes.
Like Rahul, Vishal also works at BigBinary and is currently assisting in developing an internet tool to deploy apps on Kubernetes with a single click.
Today we discuss everything from the process and challenges of integrating with Kubernetes, image building, segregating and labelling apps and the latest app building programs. Take a listen!
Key Points From This Episode:
- The setting up process to deploy apps on Kubernetes.
- Implementing with Rancher versus Kubernetes.
- Why choose Kubernetes?
- Alternatives to Kubernetes.
- Integrating existing development cycles with Kubernetes.
- Image building with Docker Cloud and Docker Hub.
- Base images and community image building.
- Cluster, AWS and Kops communication.
- Segregating apps on servers.
- The challenges faced setting up the infrastructure for Kubernetes.
- And much more!
Links Mentioned in This Episode:
- BigBinary Website
- BigBinary on Twitter
- Vipul on Twitter
- Vishal on Twitter
- Rahul on Twitter
- Kubernetes
- Rancher
- Docker Cloud
- Docker Con
- Google Cloud Shell
- Kubeadm
- React Native
Transcript
Please note the in the discussion Rahul mistakenly said “Katkoda” instead of “Stratoscale”.
[0:00:00 .8] VIPUL: Welcome to the inaugural episode of All Things DevOps Podcast. This is a brand new podcast from BigBinary team where we will discuss, well, all things related to DevOps.
[0:00:09 .8] VIPUL: Today we have Rahul and Vishal with us and we will be discussing all things about Kubernetes Rancher and how a couple of these things that we have been using at BigBinary. First off, I’m Vipul and I work with BigBinary and I’ll let Rahul and Vishal introduce themselves. Why don’t you go ahead Rahul.
[0:00:28 .6] RAHUL: Hi everyone. So it’s great to be at BigBinary’s podcast. I’m Rahul, currently handling all the infrastructure stuff at BigBinary. From last six months we are busy shipping containers to production and we are using Kubernetes for that. So we are busy in optimizing the planning flow with containers.
[0:00:49 .4] VIPUL: Awesome, how about you Vishal?
[0:00:51 .1] VISHAL: Yeah, thank you Vipul. My name is Vishal, I work at BigBinary and I primarily work as a Ruby on Rails Developer but for the past few months I’m working on Kubernetes. Right now we travel working on building down the internet tool to deploy apps on Kubernetes with a single click.
[0:01:13 .4] VIPUL: Awesome man, how did the whole containerization thing get started and when did you get started using containers, maybe Docker or other container-related technologies?
[0:01:24 .3] RAHUL: Yeah, so in one of our projects we have like software as a service kind of service. Whenever our client just onboards one new client, we have to create an application with other domain line. Traditionally it was being created on servers than easy to, it was automated using chef and civil and cloud formation. For each new client, for each new app, our client needed to boot up some servers, add all the configuration tools and that used to go to lab.
This was the traditional setup but when it come to resource management and other things, it was a bit of cumbersome and we are in search of something like related to, which can save on resources as well as the architectural way microservices run.
We came across containers, we tried out luckily first using Docker and that turned out to be really useful, but after trying those containers, we were like — we were not supposed to make a call on which orchestration tool to use it. After that, we explored some techniques like Docker data center, Docker swarm and Elastic container service from Amazon.
Some of them worked for us but some of them were having this feature but not having the other one and then tried Technologies like Rancher and Kubernetes. Rancher was good, we started off with it, but due to our scale and the features we wanted, we were not able to go complete with Rancher. Then we tried out Kubernetes and it seemed like there was something which was fitting our needs, which was giving scalability and the resource management things what we were looking for.
We started exploring Kubernetes from Kubernetes 1.2 and then only we started containerizing our app. So first thing we started was like segregating services in terms of micro services architecture. This is how we started to and decided to use Kubernetes and started containerizing the app.
[0:03:34 .4] VISHAL: I had a bit more add in I think, using Rancher long battle. That was for one of our other projects, which is Trinity. There we added Rancher because I myself was not too familiar with the whole setup of using Kubernetes at that time or maybe something extra bigger. I believe we started using Rancher because for me as was just work mostly on rails, doing something like Rancher was pretty straight forward, I could just provide it with a Docker machine.
The environment that we need is something for us, we were using images that have been provided by say CircleCI or we could just start using those images, we could just try to use those machine, provide them to Rancher and get started with it. I know that’s pretty straightforward setting those things up so that I, like myself not being a DevOps, so how exactly the containerization takes place and all of the orchestration for setting those things up was pretty straightforward that I did not need to do those things all by myself.
[0:04:38 .3] RAHUL: Exactly, the Rancher is made for the developers who don’t have much of ops background and want to learn their containerization and production, Rancher is the place you can choose. But for our other project case, we tried using Rancher but as we have different components like we had really used database system services like Redis and also needed robust service discovery.
With all that and implementing it with Rancher, we faced some challenges while using service discovery and with the Kubernetes, it just worked because Kubernetes offers some of the features which really fits into our needs. I would say like Rancher was a great fit but just for our other project, it was not and Native Kubernetes had all the features we were looking for. We started containerizing and automating the steps and that went well.
[0:05:39 .5] VIPUL: You did give a drag to Rancher on the same project you’re speaking about, right? How was that experience? Like, I believe Rancher also provided help or it does also does provide support for Kubernetes. So that didn’t work really well?
[0:05:54 .3] RAHUL: Yeah, one thing about Rancher is like we tried Rancher but on top of Rancher, instead using Cattle, we used Kubernetes. It started off well but when we started off using, we analyzed that one of the features of Kubernetes is still not ported to Rancher’s Kubernetes.
[0:06:15 .3] VIPUL: Which is what?
[0:06:16 .6] RAHUL: Which is not supported by Rancher. When Kubernetes 1.4 was out, Rancher was still supporting Kubernetes 1.3. We were not able to easily upgrade to Kubernetes 1.4 and use the features. Instead of that, we thought of using native Kubernetes and remove the barrier of franchise.
The only challenge we faced initially was like, we were not going to have the cool UI that Rancher offers.
[0:06:47 .2] VIPUL: That is quite interesting because for a person who doesn’t know much of DevOps, I feel that if I try to look at some things which Kubernetes provides, it’s really hard to see all of those things as a person who has - I mean, mostly not works on ops, it’s mostly just using the Kubernetes CLI if I’m not mistaken, right?
[0:07:06 .2] VISHAL: Yes. Kubernetes, working more on UI side to make it more user friendly. So since past two releases, there are so many improvements on the Kubernetes, native Kubernetes UI. If you use Rancher, a couple of months ago then probably if you now try to use Kubernetes that it will more, you know, handy, we did a 1.6 release.
[0:07:35 .2] RAHUL: Yeah, taking advantage of this thing, which is like Openshift, [inaudible] and tectonic from CoreOs came up with the cool UI that you can use Kubernetes but the UI was one folks like Openshift and [inaudible] gave us for the public.
That was one thing when we started off but now with the latest version, 1.7 and keeping an eye on future release of 1.8. That is what’s happening in Kubernetes, to stabilize the Kubernetes driver support. Yeah, I would say, if it comes to being