what is the difference between them?
Kubernetes and Docker
Kubernetes and Docker are both tools used to manage containerized applications. The primary difference is that Docker is a platform for running and managing individual containers, whereas Kubernetes is a platform for managing and orchestrating a cluster of containers. Kubernetes provides additional features such as service discovery, auto–scaling, and automated rollouts and rollbacks. In addition, Kubernetes is designed to run across multiple hosts, while Docker is designed to run on a single host.
What is a containerized application?
A containerized application is an application that has been packaged in a container, such as a Docker container, which is an isolated and self–contained environment that contains all the necessary code, libraries, and configurations for running an application. Containerized applications are able to run on any platform, regardless of operating system, and can be easily moved to different environments.
The logical parts of Kubernetes
- Master Node: It is the control plane for the cluster and is responsible for orchestrating the nodes in the cluster.
- Worker Nodes: The individual machines, whether physical or virtual, that run containerized applications.
- Pods: The smallest deployable units in Kubernetes, which contain one or more containers.
- Services: An abstraction that defines a logical set of Pods and a policy to access them.
- Controllers: The logic that drives the desired state of the system and manages the replication and scaling of Pods.
- ConfigMaps: A mechanism to decouple configuration artifacts from image content to keep containers agnostic of environment-specific configurations.
- etcd: This is a distributed key-value store that stores the cluster state.
- Secrets: An object type that allows you to store and manage sensitive information, such as passwords or API keys.
- Volumes: A way to store data outside of the container’s file system that allows for data persistence and sharing between containers.