Kubernetes is a production grade container orchestration system and one of the most popular open source projects released by Google. {code} by Dell EMC is focused on bringing a common storage interface. Kubernetes boasts a unique architecture and fresh perspective on running containerized applications used by companies like SoundCloud and The New York Times. Learn all about Kubernetes and see how {code} by Dell EMC is integrating REX-Ray to provide stateful application support to pods of containers.
Add talking points to each point
OSS projects: Docker, Mesos, Kubernetes, Cloud Foundry
Let’s suppose in the not too distant past, we set out to deploy the server half of a client server system. What did this look like?
Maybe an assembly of apps like this.
Some apps need to talk to each other, some don’t, but the easy way was to put everything on a single host.
Result: it works but..
The apps share a bunch of libraries – no isolation
If memory runs out, who caused it?
Other security and isolation issues
Container technology would let you repeat the monolith
It doesn’t stop you from recreating history – but containers let you do better…
Containers are “lighter weight” than a VM,
The OS kernel is shared. Run time images are single app,
Bundled with ONLY the libraries needed
At VERSION of choice
In an N-tier architecture, each layer can be scaled independently.
Let’s suppose that the usage pattern for this application exhibits variable load based on time of day, day of week, or discrete occurrences of events. How quickly can we scale out a component is VALUEABLE
Small Image size and shared OS kernel makes this work
You could use Puppet, Chef, or another DevOps tools to compose VMs, but with a Docker image app dependency list is documented in the Dockerfile specService or App level granularity means updates are flexible, and dev test environments that match production are easier to achieve .
AVOID VENDOR LOCK-IN
GOAL: Apps not forced
to know where they are running
To know concepts that are cloud provider specific
But WARNING when you do this at scale, use of containers hasn’t solved all the issues – and can even introduce new issues you didn’t have before, or at least didn’t have before at the same scale
This is no different from VMs - Managing a data center at scale isn’t feasible without a lot of automation
Users (admin+developers) use API or CLI to interact with master
This ends up manipulating state in etcd store
Scheduler figures out what is available and where to run things
Controllers maintain desired state
May also talk to network load balancers or storage appliances
Kubelets run on every node, listens to and talks to API server to control state on its node
Pod should be a small group of closely related containers
Pods aren’t meant to be persistent. This means that when they are restarted they can get a new IP address.
These leads to a problem that services are meant to solve
Shared access across multiple containers: Use if you need to allow multiple containers to read and write to volume. Log volume is a common use case.
Administrator defined gold, silver, bronze storage classes
Developer/User defines a pod requesting a class of storage for a persistent volume
Upon initail deployment, a persistent volume is created automatically for use by the pod
First, a few things about the team that has made this possible.
The Dell EMC {code} team is a team made up of open source software engineers and developer advocates, focused on making EMC a well-known name within the open source community.
We will focus on one of their projects, REX-Ray, in this presentation.