Saturday, April 16, 2022

Docker to Kubernetes a nested flow of plumbing

If we need to explain the relationships and dependencies in between Docker image, Container, Pod and Kubernetes this is the simplistic view;

Docker Image --> Docker Container --> Pod --> Node --> Kubernetes Cluster

Explanation:

  1. Docker Image: This is the starting point. It's a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries, settings etc.. 

  2. Docker Container: A Docker container is a running instance of a Docker image.
    It's like a lightweight virtual machine that isolates the application and its dependencies from the host environment.

  3. Pod: A Pod is the smallest and simplest unit in the Kubernetes object model. It can contain one or more containers that are deployed together on the same host and share resources.
    Think of it as a wrapper around one or more containers.

  4. Node: A physical or virtual machine within the Kubernetes cluster. It's where your workloads run

  5. Kubernetes Cluster: A Kubernetes cluster is a set of nodes (machines) that run containerised applications. This is the highest level, representing the entire orchestrated system. It manages multiple worker machines (nodes). It manages and orchestrates the containers, ensuring they are running correctly and scaling them as needed.

In non-technical terms think of it like this:

  • Docker Image: A blueprint for a house.
  • Docker Container: A house built from that blueprint.
  • Pod: A plot of land that can hold one or more houses.
  • Kubernetes Cluster: An entire neighborhood with many plots of land (pods) and houses (containers).

This flow shows how these technologies build upon each other.
Docker provides the containerisation technology, while Kubernetes provides the orchestration and management layer for deploying and scaling those containers.

Key points to pay attention to;

  • Pods are NOT containers: They are a wrapper around containers, providing an isolation layer.
  • Docker is common, but not required: While Docker is often used to create the containers within pods, Kubernetes supports other container runtimes as well.
  • Focus on orchestration: Kubernetes is all about managing and scaling containers (and the pods they live in) across a cluster of machines.
  • No comments:

    Post a Comment