Posts

Showing posts from March, 2025

ctr | nerdctl | crictl

The Open Container Initiative (OCI) is a project under the Linux Foundation that aims to create open standards for container formats and runtimes. It was established in June 2015 by Docker, CoreOS, and other leaders in the container industry OCI has developed three key specifications: Runtime Specification (runtime-spec) : Defines how to run a container's filesystem bundle. Image Specification (image-spec) : Standardizes the format for container images. Distribution Specification (distribution-spec) : Provides an API protocol for distributing container content  The initiative also includes tools like runc , which is a reference implementation of the runtime-spec ctr, nerdctl, and crictl: Understanding Their Roles in the Container Ecosystem When working with containers, there are several tools available for interacting with container runtimes like containerd and Kubernetes. ctr , nerdctl , and crictl are three such tools, each serving different purposes within the container life...

Containerd

  Working with Containerd Containerd is a high-level container runtime that provides the basic functionalities required to run and manage containers. It is more lightweight and low-level compared to Docker and is often used by container orchestration systems like Kubernetes. Containerd is capable of handling tasks like image pulling, container execution, and managing the container lifecycle, but it doesn't include higher-level features like orchestration or image building. If you're looking to work with containerd , the main interaction is through its gRPC API , although there are CLI tools that provide a more user-friendly way to interact with it. Basic Concepts of Containerd Containerd Daemon : The containerd daemon ( containerd.service or containerd process) is the core service that runs on your machine and handles container management tasks like running containers and pulling images. Containers : Containerd handles the lifecycle of containers, including crea...

Kubernetes Architecture

  Kubernetes architecture is a system designed to manage containerized applications across clusters of machines. It provides a framework to run distributed systems resiliently, with scaling, failover, and deployment patterns. Here's an overview of the key components and concepts involved in Kubernetes architecture: Key Components of Kubernetes Architecture Cluster : A Kubernetes cluster is made up of a control plane and a set of worker nodes (also known as the node pool ). Control Plane : Manages the overall cluster and makes global decisions about the cluster, such as scheduling, scaling, and networking. Worker Nodes : These are the machines (virtual or physical) where the containers are actually run. Control Plane Components : The control plane is responsible for maintaining the overall state of the cluster and making decisions about the cluster (like scheduling, networking, etc.). The main components are: API Server ( kube-apiserver ): The API server is the ent...