The Dojo team is here again. Recently, we worked on a project called Cloud Foundry (CF) on Kubernetes (K8S) and we are thrilled to share with you how we did it.
Table of contents:
1. Why CF on K8S?
3. Demo Video
1.Why CF on K8S?
Putting CF on K8S is a good idea because of its ease of deployment, resource utilization, and flexibility.
The overall deployment of CF on K8S is simpler than other IaaS because creating and destroying containers is quicker than that of VMs. Therefore, we are saving a significant amount of time and resources when we deploy CF components, which involves more than ten VMs. Woah! 😮
Having CF on K8S helps utilize resources better. A traditional Diego Cell VM consumes more resources when NATS or Consul VMs are deployed as separate VMs because resources are assigned to each VM. For example, the NATS and Consul VMs each need 2GB of RAM on top of the Diego Cell using 5GB of RAM, but this not an efficient way of using resources as this is not scalable. Instead of deploying two VMs for NATS and Consul, we can deploy these as jobs using two containers sitting inside a node (or VM) that the Diego Cell has access to. Inside these nodes, the containers share the same resources that are allocated for the VMs.
We can pretend K8S is acting as an IaaS to put CF on top of. Knowing this, CF can be in any environment K8S is on because K8S can be deployed on top of any IaaS (including bare metal).
Figure 1: CF on K8S on GCP architecture
There is a Kubernetes cluster of nodes (or VMS) that reside in GCP. Inside of the Kubernetes cluster, there are CF components that are utilizing K8S nodes. The Diego Cells nodes are separate from the main CF components because it is difficult to run containers within a container (as Diego is also a container orchestrator).
Special thanks to the kubernetes bosh cpi team from SAP for helping us. Please check out their repo at kubernetes_cpi.
Hello readers! My name is Amanda and I am the Dojo’s newest member here in Cambridge. Words cannot describe how excited I am to be here! I am normally afraid of big changes, but I felt comfortable with this new beginning as I had a gut feeling this team would help me begin my career in this journey. It really helped my anxiety when Victor Fong gave everyone on the team a Lego Pokemon toy after he just returned from a trip. Here he is!
Once I met my team I jumped right into standup with literally no time being wasted to get my day started. Shortly after, I was paired to work on UI project. This exposure to code without needing documentation about it really blew my mind away. However, I get to see Ruby, HTML/CSS, git, and angular JS all in one day! Later, I got to rotate with my team to work on deploying Kubernetes. It can be challenging to understand what is going on, but that is because this is my first time really using things like Ruby or cloud technologies. My week with this new team finished with retro on Friday, which is when we all get together and talk about the good, okay, and bad things that happened during the week. I admitted in the bad category I felt ashamed for taking too longto learn, but I was reassured by the whole team these things take time and that I will get better.
So what have I learned?
Ask lots of questions. People want you to learn! There is no such thing as a stupid question. 🙂
Things will break. Sometimes it is an easy fix like adding a missing parenthesis. Sometimes it is a challenge that takes a day or two to figure out.
Ruby is a weird language. That is all I have to say about that.
DevOps is a really efficient way of rapidly delivering code.
Test Driven Development and pair programming made my first week feel almost seamless. I say “almost” because I have so much learning to do in order to get familiar with this kind of environment.
Tools such as Diego, Kubernetes, and Bosh can do many “things.” You might ask, “What kind of things?” And I could probably tell you they help manage deployment of containers and VMs.
Don’t be afraid to make mistakes. They’re something to be learned from.
Everyone has something to bring to the table. Share your ideas, even if you might be disagreeing with others.
Hopefully this gives you an idea of how much I learned during my first week, I am fortunate to be working with intelligent individuals who make up an amazing team. From my past experiences, I have never worked so closely with people as I have been since working here. No more contributing to one thing from the confinements of the cube of solitude and instead working with people on multiple project at a given moment. It is so easy to ask anyone what is going on because they are all familiar with the ongoing projects that are happening. Being able to pair with someone has definitely made my transition into this role feel easier. This team is passionate about what they do, and it really motivates me to do my best to get up to speed with their skills. At the time of this post, I have been working in this role two weeks now and the time feels like it elapsed in seconds. I wake up everyday to come to work feeling energized and thrilled to be at the office. Hopefully I can share something more technical next time!
Before I go, I should probably share a few things about me. My favourite hobbies include: gardening, 3D printing, video games, and reading. This year I have successfully grown various herbs, such as basil and parsley, and I am an avid succulent/cactus collector. I like to 3D print miniatures and tiles that get painted for D&D, which I play occasionally when I find a good group to play with. I have always been a PS2 girl at heart, but I have been playing PC games for the last 4 years now. Lastly, I like to read mostly sci-fi books and I am currently reading through Stephen King’s “The Dark Tower” series. This pretty much sums me up outside of work. So feel free to reach out if you ever want to talk about what I do for work or my hobbies! I would love to get to know more people in this community. 🙂
The opinions and interests expressed on Dell EMC employee blogs are the employees' own and do not necessarily represent Dell EMC's positions, strategies or views. Dell EMC makes no representation or warranties about employee blogs or the accuracy or reliability of such blogs. When you access employee blogs, even though they may contain the Dell EMC logo and content regarding Dell EMC products and services, employee blogs are independent of Dell EMC and Dell EMC does not control their content or operation. In addition, a link to a blog does not mean that EMC endorses that blog or has responsibility for its content or use.