cleanUrl: /k8s/container-execute-using-pod
disqus: true

k8s 를 다룬다고 하면 가장 중요한 개념이 pod 인것 같다. pod 의 구성을 어떻게 할 것인지, 그 pod 를 어떻게 사용해야 하는지에 대한 고민은 아무리 강조해도 지나치지 않다. 그러한 고민을 위해 필수적으로 알고있어야 하는 지식을 다룬다.

3.1 파드 소개

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8d71bb13-fabd-4ef3-a3bc-1b04d4c41ecc/Screen_Shot_2021-05-09_at_10.27.39.png

All containers of a pod run on the same node. A pod never spans two nodes.

3.1.1 파드가 필요한 이유

docker container 가 있는데 왜 파드가 필요할까? 그냥 컨테이너로 하면 안되는건가? 운영에 필요한 여러 프로세스를 하나의 도커 컨테이너로 사용하면 안되는걸까?

container의 목적은 단일 프로세스를 실행하는 것으로 설계 되었다.

각 프로세스를 자체의 개별 컨테이너로 실행해야 한다 이것이 docker, k8s 를 사용하는 방법이다.

3.1.2 파드 이해하기

그렇다면 앞의 질문대로 운영에 필요한 여러 프로세스(컨테이너)를 관리할 상위 구조가 필요하게 된다. 이것이 pod 이다.

그렇다면 하나의 독립적인 운영을 파드로 묶는 것도 가능해지고 모두 함께 실행하도록 관리할 수도 있다.

동일한 환경을 제공하되 격리된 환경이 되는 것 이다.

같은 파드에서 container 간 부분 격리

하나의 그룹으로 묶인 컨테이너들을 1개의 파드로 인식한다면 k8s 파드 안에 있는 모든 container 가 자체 namespace 가 아닌 독일한 리눅스 namespace를 공유하도록 docker 를 설정한다

왜냐하면 운영을 위해 공유해야 하는 리소스가 있기 때문에 굳이 완전한 격리가 아닌 더 느슨한 격리로 나눈다