1. 쿠버네티스와 같은 시스템이 필요한 이유
- 조금 뻔한 내용이 많아서 패스
2. 컨테이너 기술 소개
1) 리눅스 컨테이너 기술
- 동일한 호스트 시스템에서 여러 개의 서비스를 실행할 수 있으며 동시에 서로 다른 환경을 만들어줄 뿐만 아니라
- 가상머신과 유사하게 서로 격리하지만 오버헤드가 훨씬 적음
2) 컨테이너와 가상머신 비교
[가상머신]
- 호스트에 가상머신 3개를 실행하면, 3개는 각각 완전히 분리된 운영체제가 실행되고 동일한 베어메탈 하드웨어를 공유한다.
- 가상머신 아래에는 물리적 하드웨어 리소스를 각 가상머신 내부의 운영체제에서 사용할 수 있는 더 작은 리소스로 나누는 호스트OS와 하이퍼바이저가 있음.
ㄴ 해당 가상머신 내에서 실행되는 애플리케이션의 가상머신의 게스트 OS 커널에 대한 시스템 콜을 수행하면, 커널은 하이퍼바이저로 호스트의 물리적 CPU에서 x86명령을 수행한다.
- 자체 시스템 서비스를 사용하게 때문에 부팅이 필요하다.
[컨테이너]
- 호스트 os에서 실행되는 동일한 커널에서 시스템 콜을 수행한다.
- 이 커널은 호스트의 cpu에서 x86명령을 수행하는 유일한 커널이다.
- 컨테이너 실행하면 즉시 시작된다.
조금 어려운 내용이라 아래 유투브 내용을 참고했다.
쿠버네티스TV
컨테이너 기술과 가상화 기술의 차이점 (youtube.com)
3) 컨테이너 격리를 가능하게 하는 2가지 매커니즘 소개
📍 리눅스 네임스페이스 : 각 프로세스가 시스템(파일, 프로세스, 네트워크 인터페이스, 호스트 이름 등)에 대한 독립된 뷰만 볼 수 있도록 함
ㄴ 프로세스는 하나의 네임스페이스에만 속하는 것이 아니라 여러 네임스페이스에 속할 수 있음.
📍 리눅스 컨트롤 그룹 : 프로세스가 사용할 수 있는 리소스(CPU, 메모리, 네트워크 대역폭 등)의 양을 제한한다.
네임스페이스에 대해 자세히 설명한 유투부를 찾았다.
컨테이너 생성 단계 분석 1편 - 리눅스 namespace (youtube.com)
sudo docker run --rm -it -name="abcd" ubuntu:latest /bin/bash
ps -ef | grep docker
pstree -p
컨테이너 안에서 sleep 10000을 실행하면, (13:32)
3) 도커 컨테이너 플랫폼 소개
- 도커 : 애플리케이션을 패키징, 배포, 실행하기 위한 플랫폼.
- 도커의 3가지 주요 개념
📍 이미지 : 애플리케이션과 해당 환경을 패키지화한 것.
ㄴ 애플리케이션에서 사용될 수 있는 파일시스템과 이미지가 실행될 때 실행돼야 하는 실행파일 경로와 같은 메타데이터 포한
📍 레지스토리 : 도커 이미지를 저장하고 다른 사람이나 컴퓨터 간에 해당 이미지 공유할 수 있는 저장소
📍 컨테이너 : 도커 기반 컨테이너 이미지에서 생성된 일반적인 리눅스 컨테이너
ㄴ 실행 중인 컨테이너는 도커를 실행하는 호스트에서 실행되는 프로세스이지만, 호스트와 호스트에서 실행중인 다른 프로세스와는 격리돼 있음
ㄴ 리소스 사용이 제한되어 있으므로 할당된 리소스만 액세스하고 사용 가능함
- 이미지 레이어의 이해
1) 모든 도커 이미지는 다른 이미지 위에 빌드되며 두 개의 다른 이미지는 기본 이미지로 동일한 부모 이미지를 사용할 수 있음.
2) 동일한 기본 레이어를 기반으로 한 두 개의 이미지에서 생성한 두 개의 컨테이너는 동일한 파일을 읽을 수 있지만 그 중 하나가 해당 파일을 덮어쓰면 다른 컨테이너는 해당 변경 사항을 볼 수 없다.
ㄴ 컨텐이너 이미지 레이어가 읽기 전용이기 때문임.
Use the OverlayFS storage driver
Learn how to optimize your use of OverlayFS driver.
docs.docker.com
그룹스터디 링크
리눅스 컨테이너와 쿠버네티스
쿠버네티스 등장 이유모놀리식 애플리케이션에서 마이크로서비스로의 전환하며 구성요소가 쪼개지기 시작배포 가능한 구성 요소의 수와 데이터센터 규모의 증가로 전체 시스템을 원활히 구성
jibsakim.tistory.com
'스터디 > [쿠버네티스 인 액션] (2024.8)' 카테고리의 다른 글
[쿠버네티스 인 액션] 3장. 파드 : 쿠버네티스에서 컨테이너 실행 - 파드 소개, 컨테이너의 적절한 구성 w.율곡선생, devops with sina., techworld with nana. (4) | 2024.08.28 |
---|---|
[쿠버네티스 인 액션] 2장. 도커와 쿠버네티스 첫걸음 - 쿠버네티스에 첫 애플리케이션 실행 (0) | 2024.08.25 |
[쿠버네티스 인 액션] 2장. 도커와 쿠버네티스 첫걸음 - 쿠버네티스 클러스터 설치 (0) | 2024.08.24 |
[쿠버네티스 인 액션] 2장. 도커와 쿠버네티스 첫걸음 - docker 이미지, node.js 애플리케이션 실행 (0) | 2024.08.22 |
[쿠버네티스 인 액션] 1장. 쿠버네티스 소개 - 쿠버네티스 소개 (0) | 2024.08.16 |