[쿠버네티스 인 액션] 나홀로 스터디 - 1장, 2장

클라우드 스터디에 지원했는데 떨어져서 스터디를 혼자 진행하기로 했다.

그래서 스터디에서 진행하려고 했던 콘텐츠를 해보려고 한다.

주 1회씩 모이는 거였으니까 주 1회 한 번씩 공부한 내용 블로깅 하기.

올해는 불이 좀 늦게 붙어서 늦게 시작한 만큼 4개월 동안 쉬지 않고 쿠버네티스 인 액션 책을 진행해보는 게 목표다.

일 주일에 한 챕터씩 하면 딱 4개월이다.

나 홀로 스터디 시작 ! 어디까지 혼자 할 수 있나 보자

 

1장

컨테이너 격리를 가능하게 하는 메커니즘에는 Linux의 namespace와 cgroups(컨트롤 그룹)이 있다.

리눅스의 네임스페이스 기능은 동작하는 프로세스가 프로세스에 할당된 네임스페이스만 보도록 하는 기술이다.

이것을 활용한 것이 쿠버네티스의 네임스페이스 기능이고.

컨테이너가 가벼운 이유는 호스트 위에 CPU의 가상화를 사용하지 않고 모두 동일한 커널을 사용하여 시스템 콜을 수행하기 때문이다. 그 때문에 컨테이너는 자체 시스템 서비스를 실행시키지 않아도 된다. 다만, 모두 동일한 시스템 콜을 사용하여 모두 동일한 커널을 호출하므로 보안 상 위험할 수 있다. 또 커널을 공유하기 때문에 컨테이너 이미지의 커널 모듈과 컨테이너가 실행되는 커널 모듈이 다를 경우 문제가 발생할 수 있다.

cgroups(컨트롤 그룹) 기술은 프로세스의 리소스를 제한하는 기능을 한다.

 

 

2장

파드는 컨테이너의 그룹이고, 동일 파드 내의 컨테이너들은 같은 워커 노드에서 같은 리눅스 네임스페이스로 컨테이너가 실행된다. 각 파드는 자체 IP, 호스트 이름, 프로세스 등이 있는 논리적으로 분리된 머신으로 볼 수 있다.

 

 

Linux의 네임스페이스를 사용하는 논리적 공간 분리가 드디어 이해됐다. 저번에 파이썬 가상환경이 어떻게 동작하는지 찾아본 게 도움이 됐다.

컨테이너는 가볍고 논리적으로 공간 분리가 된다고 인지만 할 뿐이었는데, 이제 조금 알겠다.

지금까지 쿠버네티스의 이해가 어려웠던 건 파드가 아니라 컨테이너를 가상 머신 하나라고 생각했다.

처음 봤을 때와 지금 다시 보는 쿠버네티스는 느낌이 조금 다르다. 그 때는 이해되지 않았던 것들이 조금씩 보인다.