IT/DevOps

Docker, Kubernetes

kykyky 2023. 5. 5. 23:57

 

 


 

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

를 내맘대로 요약함