Openshift Overview at Bandwidth
Jonathan Seth Mainguy
Engineer @ Bandwidth
October 24th, 2018
What is OpenShift?
its a kubernetes distribution. Like RHEL is to GNU/Linux, Openshift is to kubernetes
What is kubernetes?
Kubernetes
is a portable, extensible open-source platform for managing containerized workloads and services
(its a Platform as a service for containers)
Whats a container?
According to Jeff Spahr -
It’s a process
Existing linux functionality is used to provide isolation
Namespaces
Mount
Network
IPC
UTS
PID
Selinux
cgroups
I like to think of it as a really minimal VM more or less. Its not a VM, but its easier for me to think of it as such. You can run a
all on a Centos Host.
Containers have been around for awhile, Zones were big on Solaris
Docker made it popular for everyone else.
The corporate overlords that run opensource stuff don't get along with the docker developers, so alternatives to docker have been built and are being pushed hard now.
So, openshift is a kubernetes distribution for running containers (mostly docker right now), similiar to how VMware or RHEVM are platforms for running VM's.
However, Kubernetes has some cool features in addition to those platforms. It can auto-scale, it can load balance
Here at BW we run our openshift clusters with three different types of nodes (the vm's / physical boxes that host kubernetes)
Master
Master
Master
Master
Infra
Compute
Compute
Kubelet
updates the node as specified by a container manifest, which is a YAML file that describes a pod. The kubelet uses a set of manifests to ensure that its containers are started and that they continue to run
Compute
Service Proxy
Each node also runs a simple network proxy that reflects the services defined in the API on that node. This allows the node to do simple TCP and UDP stream forwarding across a set of back ends.
Compute
So the compute nodes is where all your apps go when you create them. You care about the compute nodes.
You likely do not care about the Master or Infra nodes
Docker
Here is what a Dockerfile looks like, that can be used to build a docker container
Pods
A pod (as in a pod of whales) is a group of one or more containers (such as Docker containers), with shared storage/network, and a specification for how to run the containers
Openshift PVC
Physical Volume Claim - Ie, this is my physical volume, there are many like it, but I claim this one
Openshift Deployment
This is how I want my app to look
Openshift nodePort
ie, how do I get traffic from the world, to my pods (I want to connect and play)
Ez way to turn all those text files, into a minecraft server hosted on kubernetes with persistent storage so I don't lose my world if it crashes.
Live Demo of what you just saw
Questions?
Thank you