컨테이너 2

컨테이너와 파드의 리눅스 네임스페이스

책을 읽다가 문득 궁금증이 생겼다. 컨테이너는 linux namespace와 cgroups를 이용해 다른 프로세스들과 격리되어 실행 된다. 그렇다면 쿠버네티스 파드는 어떻게 되는 걸까? 파드 안에는 여러 개의 컨테이너가 들어갈 수 있는데, 그 컨테이너들끼리 격리 돼있다면 사실상 파드의 의미가 없을 것이고, 격리가 돼있지 않다면 컨테이너의 의미가 없지 않나? 이런 생각이 들었다. 구글링을 해서 답을 알아낸 결과를 정리하고자 한다. 먼저, 컨테이너에서의 리눅스 네임스페이스는 아래 그림과 같은 구조이다. 리눅스 네임스페이스에는 총 6가지 종류가 있다. (그림에는 5가지만 표시) 1. IPC namespace (InterProcess Communication) - 말 그대로 프로세스간 통신을 가능케 해주는 네임..

공부/Kubernetes 2021.03.21

컨테이너의 이미지 개념 한 장 정리

컨테이너1은 OS+JAVA8+CODE2 조합의 이미지를, 컨테이너2는 OS+JAVA7+CODE1 조합의 이미지를 사용한다. 컨테이너는 이미지를 계층적으로 관리하기 때문에, 중복되는 이미지 레이어는 1개만 보관하고 있으면 된다. 이는 VM 이미지와의 큰 차이점이다. 이 이미지 레이어들도 결국엔 하나의 파일 시스템이다. 이 계층적 이미지들을 하나의 경로에 쌓아올리는 기술이 union mount이다. 컨테이너를 실행하게 되면, union mount를 통해 하나의 경로에 계층적으로 쌓인다. 그렇게 이미지 레이어가 다 쌓인 후에는, 그 위에 read/write 레이어가 씌워진다. 이 레이어는 이미지에 영향은 안주면서, 컨테이너가 write할 수 있도록 해준다. 하지만, 컨테이너 입장에서는 모든 레이어가 겹쳐 보이..

공부/Kubernetes 2021.03.12