Docker, Kubernetes
Docker
: containerization platform and runtime
- provides an efficient way to package and distribute containerized applications
- declaratively package an application, its dependencies, and configuration together into immutable container images
by writing a Dockerfile and then running the appropriate commands to build the image using the Docker server
- container images can be deployed and run on any platform that supports containers, such as Kubernetes, Docker Swarm, Mesos, or HashiCorp Nomad
- uses client-server architecture
- Problems: Coordinating and scheduling containers across multiple servers/clusters, upgrading or deploying applications with zero downtime, and monitoring the health of containers, running and managing containers at scale
=> need to orchestrate containers => Kubernetes
* container
- doesn’t depend on their own operating system
- Docker containers are one process per container
Kubernetes
: platform for running and managing containers from container runtimes(Docker, containerd, CRI-O, and any implementation of the Kubernetes CRI (Container Runtime Interface))
- orchestrates clusters of machines to work together and schedules multiple containers to run on those machines based on their available resources
- Containers are grouped together, through declarative definition, into pods(basic unit of Kubernetes)
- enable communications between container
- deploy application through declarative YAML files
- automatically scaling services to your desired state: scaling pods vertically or horizontally
- load balancing across containers within the cluster
- security and access control across your services: offer authentication and security
- Automated operations
- kubectl: API. command line tool
- Infrastructure abstraction
- auto health monitoring, restarts failed containers
- multi-platform deployment: deploying an application to run on multiple OS platforms
- service discovery
- automated rollouts and rollbacks
- configuration management
- resource allocation
- isolation
- not a complete PaaS
https://www.atlassian.com/microservices/microservices-architecture/kubernetes-vs-docker
를 내맘대로 요약함