Skip to content

Instantly share code, notes, and snippets.

@digilink
Last active July 31, 2025 20:01
Show Gist options
  • Select an option

  • Save digilink/b4dd92adabb1aea24f5a68ce6587a4b4 to your computer and use it in GitHub Desktop.

Select an option

Save digilink/b4dd92adabb1aea24f5a68ce6587a4b4 to your computer and use it in GitHub Desktop.
OpenShift block diagram
graph TD
    subgraph "User Interaction"
        direction LR
        A[Developer] -- "Deploys code" --> B(CLI / Web Console)
        C[End User] -- "Accesses App" --> D[Router/Ingress]
    end

    subgraph "Control Plane (The Brains)"
        direction TB
        E[API Server] -- "Manages & Validates" --> F[etcd Database]
        G[Scheduler] -- "Assigns Pods to Nodes" --> H[Worker Nodes]
        I[Controller Managers] -- "Maintains Desired State" --> H
    end

    subgraph "Worker Nodes (The Brawn)"
        direction TB
        H -- "Runs Applications" --> J(Container Runtime)
        J -- "Contains" --> K[Pods]
        K -- "Houses" --> L[App Container]
        K -- "Houses" --> M[App Container 2]
    end

    B -- "Sends Instructions" --> E
    D -- "Routes Traffic" --> K

    style A fill:#ffffff,stroke:#000,stroke-width:2px
    style C fill:#ffffff,stroke:#000,stroke-width:2px
    style B fill:#ffffff,stroke:#000,stroke-width:2px
    style D fill:#ffffff,stroke:#000,stroke-width:2px

    style E fill:#ffffff,stroke:#000,stroke-width:2px
    style F fill:#ffffff,stroke:#000,stroke-width:2px
    style G fill:#ffffff,stroke:#000,stroke-width:2px
    style I fill:#ffffff,stroke:#000,stroke-width:2px

    style H fill:#ffffff,stroke:#000,stroke-width:2px
    style J fill:#ffffff,stroke:#000,stroke-width:2px
    style K fill:#ffffff,stroke:#000,stroke-width:2px
    style L fill:#ffffff,stroke:#000,stroke-width:1px
    style M fill:#ffffff,stroke:#000,stroke-width:1px
Loading

Understanding the OpenShift Cluster

Think of an OpenShift cluster as a highly efficient and automated factory for running your applications.


1. User Interaction

  • Developer: This is the person who writes the application code. They interact with the cluster using tools like a Command-Line Interface (CLI) or a Web Console to package their code and tell OpenShift how to run it.

  • End User: This is the customer or person who uses the final application (e.g., through a website or mobile app). They don't see the cluster; they just access the running application.

  • Router / Ingress: This acts like the main entrance or reception desk for the factory. It directs incoming traffic from end users to the correct application running inside the cluster.


2. The Control Plane (The "Brains" of the Operation)

The Control Plane is the management team of the factory. It doesn't do the physical work of running applications, but it makes all the decisions and ensures everything runs smoothly. It's typically made up of "master" or "control" nodes.

  • API Server: The central point of contact. All instructions from developers and all internal communications go through the API Server. It validates these requests and processes them. It's like the main office that receives all orders and paperwork.

  • etcd Database: A simple, reliable database that stores the "desired state" of the entire cluster. This means it keeps a record of how many applications should be running, what resources they need, and all configuration details. It's the factory's "master blueprint."

  • Scheduler: When a developer wants to run a new application, the Scheduler's job is to find the best "Worker Node" to place it on, based on available resources like CPU and memory. It's like the factory floor manager who assigns a new job to the most suitable workstation.

  • Controller Managers: These are a set of controllers that act as tireless supervisors. They constantly watch the cluster to make sure the current state (what's actually happening) matches the desired state stored in etcd. If an application crashes, a controller notices and automatically starts a new one to match the blueprint.


3. Worker Nodes (The "Brawn" of the Operation)

Worker Nodes are the factory floor where the actual work happens. They are the machines (physical or virtual) that run the applications.

  • Worker Node: A server with CPU, memory, and storage resources dedicated to running applications. A cluster will have multiple Worker Nodes to handle the workload and provide redundancy.

  • Container Runtime: A program running on each Worker Node (like Docker or CRI-O) that is responsible for managing the lifecycle of containers. Think of it as the local operating system for the applications on that specific machine.

  • Pod: This is the smallest and most basic unit that OpenShift can manage. A Pod is like a small, isolated "workspace" on a Worker Node.

  • App Container: Inside each Pod is at least one container. The container holds your actual application code and all its dependencies. By "containerizing" the app, you ensure it runs the same way no matter which Worker Node it's on. A Pod can house multiple containers that need to work closely together.


Simple Analogy: A Pizza Restaurant

  • Control Plane: The kitchen manager and ordering system.

    • API Server: The cashier who takes your order.
    • etcd: The order ticket system that remembers every pizza order.
    • Scheduler: The manager deciding which oven is free to cook the next pizza.
    • Controllers: The head chef who ensures every pizza is made exactly as ordered. If a pizza gets burnt, they order a new one to be made.
  • Worker Nodes: The ovens and the cooks.

    • Pod: A single pizza box.
    • Container: The pizza itself inside the box.
  • Developer: The person who created the pizza recipe.

  • End User: The hungry customer who orders and eats the pizza.

This simplified view omits many details but covers the fundamental relationship between the core components of an OpenShift cluster.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment