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) 동일한 기본 레이어를 기반으로 한 두 개의 이미지에서 생성한 두 개의 컨테이너는 동일한 파일을 읽을 수 있지만 그 중 하나가 해당 파일을 덮어쓰면 다른 컨테이너는 해당 변경 사항을 볼 수 없다.
ㄴ 컨텐이너 이미지 레이어가 읽기 전용이기 때문임.
그룹스터디 링크
'모음 > [쿠버네티스 인 액션]' 카테고리의 다른 글
[쿠버네티스 인 액션] 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 |