Kubernetes is just like a tool to help your managing docker containers.
쿠버네티스는 도커의 컨테이너들을 관리를 도와주는 툴이다.
It is all about automation.
자동화가 키워드임.
For example, if you have a lot of backend services, if you want to scale up like create a lot more backend services to handle a lot of requests, you will have to do that manually.
예를 들어, 현재 내가 백엔드 서버를 많이 가지고 있는데, 더 많은 요청을 처리하기 위해서 백엔드 서버를 조금 더 생성해서 규모를 확장하고 싶다면, 이 모든 것들을 직접 처리해야한다.
But with Kubernetes(K8S), all you need is to update one configuration file for different services, or even there might be some K8S UI to use, so bascially K8S w ill do the rest for users.
하지만, 쿠버네티스는 다양한 서비스들을 위해 단 하나의 구성 파일만 업데이트하면 된다.
혹은 쿠버네티스의 UI를 사용하면 되기 때문에, 이전에 직접 처리해야하던 것들을 쿠버네티스가 대신 해주는 것과 같다.
thsee two key factors are very important to understand what Kubernetes is.
Container
Docker is like a lightweight, standalone, and executalbe package for software.
도커는 조금 더 가볍고, 독립적이며, 소프트웨어를 위한 실행 패키지다.
it contains everything a program needs to run, including the code, runtime, libraries, and system tools.
코드, 런타임, 라이브러리, 시스템 툴들을 포함하여 프로그램을 실행하는데 필요한 모든것들을 담고 있다.
Think of it as a shipping container for software, which ensures it will run the same way, regardless of where you deply it.
배에 화물을 실을 때, 선적용 컨테이너들을 생각해보면 된다. 이 컨테이너들은 어디에 배치되었는지 상관 없이 동일한 방식으로 실행된다.
Docker ables to run each component in a seperate container with its own
libraries and its own dependencies, all in the same VM and the OS, but within separate environments or containers.
We just had to build the Docker configurartion once, and all our developers could now get started with a simple Docker run command.
Docker는 각 컴포넌트를 동일한 VM 및 OS 내에서 별도의 환경 또는 컨테이너 안에서 자체 라이브러리와 종속성으로 실행할 수 있다. 우리는 Docker 설정을 한 번만 구축하면, 모든 개발자가 간단한 Docker run 명령어로 시작할 수 있게 된다.
Think of a namespace as a virtual room within the Kubernetes house.
Each room(namespace) allows you to organize different sets of your containers (workloads) separately, so they don't interfere with each other, making management and security easier.
(namespace를 K8S 집에 있는 가상의 방이라 생각해보자.
각각의 방에서 컨테이너(workload)들을 서로 다르게 구성할 수 있다.
그렇게하면, 서로 간섭하지 않기 때문에, 관리하고 보안하기 더 쉬워진다.
그래서 namespace는 가상의 공간이라 생각하면 된다.)
Pod is the smallest deployable unit that can run and manage a container or multiple containers.
Pod는 하나의 컨테이너 혹은 여러개의 컨테이너를 작동시키고 관리할 수 있는 배포 가능한 최소 단위다.
Think of it as a single apartment in the K8S house, where one or more containers(Docker file + other codes<FE, BE, DB ...>) live together, sharing storage and network resources. It’s the basic building block of Kubernetes.
Pod를 쿠버네티스의 각 아파트라고 생각해보자.
그럼 하나 혹은 두 개 이상의 컨테이너들이 있을 것이다. 이 컨테이너들은 파드 아파트에서 같이 생활하면서, storage와 네트워크 리소스들을 서로 공유하게 된다.
이것이 바로 쿠버네티스의 기본적인 구성요소다.
여전히 모르겠는 k8s....