Notes on RedHat OpenShift 3

September 30, 2017   

Overview

Docker is the container format used by OpenShift v3

OpenShift uses Kubernetes as a docker orchestrator

The OpenShift “stack” (top to bottom):

  • UX - OpenShift console and CLI
  • Containerized Services - xPaaS, Docker Hub + Marketplace
  • Orchestration - Kubernetes
  • Container API - Docker
  • Container host - Linux (RHEL or Atomic)

Definitions

Docker image
A file system image for running an process/application
Docker Container
A running instance of a docker image
Pod
Kubernetes object that groups related containers that need to share network file system or memory for placement on a node. You can run multiple instances of a pod
Replication Controller
Kubernetes Object that ensures N instances of a give pod are running at all times
Service
Kubernetes object that provides load balanced access to multiple pods. Services are only available INSIDE OpenShift, not user facing.
Route
An OpenShift route is a way to expose a service by giving it an externally-reachable hostname like www.example.com

Key Concepts

A single pod gets an IP address and can run multiple docker containers.

All containers in a pod share pod ports, no conflicts allowed and IP address

A pod an run one or more containers

OpenShift also has the idea of a service.

A physical host will run one or more pods

A service load balances multiple instances of a single pod

All containers in a POD start and stop at the same time.

Question: Can PODS span hosts? I don’t think so…

Services have a label such as “web”

Developers interact with the Web Console, CLI and service Layer. Users see the Routing Layer

You Expose you application via “route”

There’s three application deployment options:

  1. A docker Image created outside of OpenShift
  2. A source based image created with the s2i tool inside OpenShift
  3. Totally Custom