This is one of the most common Senior OpenShift Architect interview questions. Interviewers are looking for your understanding of what happens from the moment a server powers on until an application pod is running.
A strong answer should cover Ignition → RHCOS → kubelet → CRI-O → Control Plane → Scheduler → CNI → Pod.
Complete OpenShift Boot Sequence
Power ON │ ▼BIOS / UEFI │ ▼Boot Loader (GRUB) │ ▼RHCOS Kernel │ ▼systemd starts services │ ▼Ignition (first boot only) │ ▼Machine Config Daemon │ ▼CRI-O + kubelet start │ ▼kubelet registers with API Server │ ▼Node becomes Ready │ ▼Operators reconcile cluster │ ▼Scheduler assigns Pods │ ▼CRI-O pulls images │ ▼OVN configures networking │ ▼Pod starts
Step 1 — Server Power On
The physical server or VM starts.
The sequence begins with:
- BIOS/UEFI
- CPU initialization
- Memory initialization
- Disk detection
- NIC initialization
After POST (Power-On Self Test), the firmware loads the bootloader.
Step 2 — Bootloader (GRUB)
GRUB loads:
- Linux kernel
- initramfs
For OpenShift this is:
Red Hat CoreOS (RHCOS)
The kernel initializes:
- CPU scheduler
- Memory manager
- Filesystems
- Drivers
- Network interfaces
Step 3 — systemd Starts
After the kernel mounts the root filesystem:
systemd becomes PID 1.
It starts services such as:
- NetworkManager
- CRI-O
- kubelet
- chronyd
- sshd
- Machine Config Daemon
Step 4 — Ignition (First Boot Only)
One of OpenShift’s biggest differences from a standard Kubernetes deployment is Ignition.
On the first boot:
The node downloads its Ignition configuration.
The configuration contains:
- SSH keys
- kubelet configuration
- certificates
- hostname
- networking
- systemd units
- MachineConfig references
Once applied, Ignition is not run again. Ongoing node configuration is handled by the Machine Config Operator (MCO) and Machine Config Daemon (MCD).
Step 5 — Machine Config Operator
Now the Machine Config Daemon starts.
It checks:
Desired configuration↓Current configuration↓Need changes?↓Apply configuration↓Reboot (if required)
It configures:
- kernel arguments
- sysctl
- kubelet config
- registries.conf
- CA certificates
- chrony
- SSH configuration
Step 6 — CRI-O Starts
OpenShift uses CRI-O as its container runtime.
CRI-O:
- starts container runtime
- communicates with kubelet
- manages OCI containers
- uses runc (or crun) underneath
At this point there are still no application pods.
Step 7 — kubelet Starts
kubelet is the node agent.
Its responsibilities include:
- registering the node
- monitoring pods
- starting containers
- reporting status
- managing volumes
The kubelet loads:
- client certificates
- kubeconfig
- bootstrap configuration
Step 8 — TLS Bootstrap
The kubelet authenticates to the API Server.
kubelet │ │ CSR ▼API Server │ ▼Machine Approver │ ▼Certificate Approved
After approval:
The node receives a client certificate.
Step 9 — Node Registration
The kubelet creates a Node object in the Kubernetes API.
Example:
oc get nodes
Initially:
NotReady
because networking is not yet configured.
Step 10 — Operators Start Reconciling
This is where OpenShift differs significantly from upstream Kubernetes.
Cluster Operators begin reconciling the desired state.
Examples:
- Authentication Operator
- Ingress Operator
- DNS Operator
- Image Registry Operator
- Monitoring Operator
- Network Operator
- Machine Config Operator
The Cluster Version Operator (CVO) ensures the correct versions of all platform components are deployed.
Step 11 — OVN-Kubernetes Configures Networking
The Cluster Network Operator deploys OVN-Kubernetes.
Each node starts:
ovnkube-nodeOVSOVN Controller
OVN creates:
- virtual switches
- logical routers
- GENEVE tunnels
- routing tables
- pod interfaces
Now the node becomes:
Ready
because networking is available.
Step 12 — Scheduler Assigns Pods
The scheduler watches for pods without a node assignment.
Example:
spec: nodeName: null
The scheduler evaluates:
- CPU
- Memory
- Taints
- Tolerations
- Affinity
- Anti-affinity
- Node selectors
- Topology spread constraints
Then writes:
nodeName: worker-2
into the Pod specification.
Step 13 — kubelet Receives the Pod
The kubelet on the assigned node watches the API server and detects the new Pod.
Example:
Pod Assigned↓kubelet notices↓Start Pod
Step 14 — Image Pull
kubelet asks CRI-O to start the container.
CRI-O:
Check local cache↓Image exists?↓Yes → Run↓No↓Pull image↓Verify digest↓Store image
The image is pulled from:
- Quay
- OpenShift Image Registry
- Docker Hub
- Harbor
- Artifactory
- another OCI-compatible registry
Step 15 — Pod Sandbox Creation
CRI-O creates:
- network namespace
- PID namespace
- IPC namespace
- mount namespace
- cgroups
- SELinux labels
- seccomp profile
This forms the pod sandbox.
Step 16 — OVN Creates the Pod Network
OVN:
- allocates an IP address
- creates the veth pair
- connects the pod to Open vSwitch
- updates routing
- applies NetworkPolicies
- configures GENEVE encapsulation for cross-node traffic
Now the pod can communicate with:
- Services
- Other pods
- External networks (subject to policy)
Step 17 — Volume Mounts
kubelet mounts:
- Secrets
- ConfigMaps
- PVCs
- CSI volumes
- projected volumes
- service account token
Step 18 — Container Starts
CRI-O executes:
runc create↓runc start
The container process starts.
Step 19 — Health Checks
kubelet begins running probes:
- Startup probe (if configured)
- Liveness probe
- Readiness probe
Only after the readiness probe succeeds does the pod receive traffic through a Service.
Step 20 — Service Endpoints Updated
The EndpointSlice controller updates the Service.
Pod Ready↓EndpointSlice updated↓kube-proxy / OVN↓Service updated↓Traffic flows
At this stage:
- The application is reachable inside the cluster via a Service.
- If exposed with an OpenShift Route or Kubernetes Ingress, external clients can also reach it.
End-to-End Flow (Interview Summary)
Power On │BIOS/UEFI │GRUB │Linux Kernel │systemd │Ignition (first boot) │Machine Config Daemon │CRI-O │kubelet │TLS Bootstrap │API Server │Node Registered │OVN Networking │Node Ready │Scheduler │kubelet │CRI-O Pull Image │Pod Sandbox │Network Setup │Volume Mounts │Container Starts │Readiness Probe │Service Endpoints │Application Running
Interview Tip
For a senior architect role, emphasize these OpenShift-specific differentiators from upstream Kubernetes:
- RHCOS provides an immutable, container-focused operating system.
- Ignition performs one-time provisioning on first boot.
- The Machine Config Operator (MCO) manages ongoing node configuration and orchestrates safe reboots when required.
- The Cluster Version Operator (CVO) coordinates platform upgrades and lifecycle management.
- Cluster Operators continuously reconcile core platform components such as networking, ingress, authentication, DNS, and monitoring.
- OVN-Kubernetes provides the default software-defined networking, using GENEVE tunnels, logical switches, and logical routers for pod connectivity.
- Security Context Constraints (SCCs) enforce pod security policies before workloads are admitted.
This level of detail demonstrates not only Kubernetes knowledge but also a solid understanding of the OpenShift platform lifecycle and architecture, which is exactly what interviewers expect from a senior OpenShift engineer or architect.