Kubernetes is initially hard to understand. Every website tells us it's a container orchestrator, but what does it actually do? Well, nothing makes things easier to understand than actually using this software yourself. Get access to a Kubernetes environment in seconds! No need to install anything. You just click a button and you get one ready-made, easily accessible from your browser. Enter kubectl commands, experiment, and see for yourself what this orchestrator is all about.
Kubernetes makes it easy to run thousands of containers across hundreds of servers. It takes care of distributing every container where it should be. It makes sure failed containers are replaced automatically. It even ensures that the cluster nodes that fail also get replaced (if extra servers are already available). It auto-heals and keeps things running the way you instructed it to do. It's an automation tool that orchestrates stuff for you; makes sure things go according to plan. And since it mainly works with containers, these are some reasons why it's called a container orchestrator.
Although Kubernetes supervises the lifecycle of containers, it's not actually the one downloading container images, starting and stopping them, and so on. It delegates these tasks to another tool called a container runtime. And Kubernetes is modular, so administrators can pick any container runtime they want (if it supports the CRI -- Container Runtime Interface).
CRI-O is one of many compatible container runtimes for Kubernetes and can be considered an alternative to Docker's containerd runtime. CRI-O development is led by RedHat and it supports OCI-compliant container images so you can use it with any standard container registry.
CRI-O runtime puts emphasis on security and low resource overhead.