일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 국비지원교육
- k8s
- 패스트캠퍼스
- PVC
- 127.0.0.53
- reclaim
- Spring boot
- MegabyteSchool
- Layer 2
- L2 통작
- MariaDB
- L2 통신
- ARP
- systemd-resolved
- 개발자취업부트캠프
- ssh tunneling
- linux dns
- dns forward
- linux domain
- RDB
- PV
- 내일배움카드
- DNS
- CoreDNS
- 메가바이트스쿨
- Today
- Total
hoonii2
[컨테이너] 01. 컨테이너, 도커, 쿠버네티스 본문
가장 포인트되는 키워드만 정리
1. 컨테이너
- 소프트웨어 서비스를 실행하는 데 필요한 특정 버전의 프로그래밍 언어 런타임 및 라이브러리와 같은 종속 항목과 애플리케이션 코드를 함께 포함하는 경량 패키지
- 위 컨테이너가 Host OS 위에서 바로 동작한다.
- 즉, Host OS 의 커널을 이용하여 동작하여 Hypervisor OS 혹은 Hyperviser type 2 프로그램 위에서 동작하는 VM 과 가장 큰 차이점이다
2. 도커
- 컨테이너를 실행하기 위해 사용하는 runtime 으로, 예전엔 lxc 를 이용하여 컨테이너를 분리하였지만 최근엔 자체 컨테이너를 사용하고 있다.
2-1. lxc (리눅스 컨테이너)
1) chroot : 프로세스 별 루트 디렉토리를 변경하여 접근 가능한 디렉토리의 범위를 제한할 수 있지만, 네트워크나 프로세스 등을 컨트롤할 수 없다.
2) cgroups : os 가 관리하는 리소스를 제어 가능하며, 파일 시스템/프로세스/CPU/메모리/각종 디바이스/네트워크 등의 그룹 리소스를 제한하거나 분리할 수 있다.
3) lxc : chroot 의 프로세스 루트 디렉토리 변경 및 cgroups 의 네임 스페이스 기능을 통해 다양한 자원을 격리할 수 있다.
2-2. 컨테이너 별 격리되는 자원
1) 프로세스 테이블
: 컨테이너마다 별도의 프로세스 테이블을 관리하여 컨테이너의 프로세스에서 다른 컨테이너의 프로세스가 보이지 않도록 한다.
2) 파일 시스템
: 컨테이너마다 특정 디렉토리가 루트 디렉토리로 보이도록 한다.
3) 네트워크
: 네트워크 네임 스페이스 (netns) 의 기능으로 컨테이너마다 별도의 네트워크 설정을 구성한다. 특정 가상 네트워크 NIC 장치를 통해 컨테이너 내부 네트워크 네임 스페이스와 연결하여 동작시킨다.
4) CPU / 메모리 장치 ('/dev' 위 장치들 )
: cgroups 의 기능은 컨테이너에서 사용할 수 있는 범위를 제한한다.
3. 쿠버네티스
- 컨테이너가 필요로하는 메모리 및 CPU 자원이 최적으로 관리되도록 적절한 위치에 배포하거나, 컨테이너가 정상 작동중인지 체크하고 위치를 옮기거나 재기동하는 등의 스케줄링을 하기위한 운영 환경이다.
- 즉, 도커는 컨테이너를 실행하기 위한 엔진이고, 쿠버네티스는 이를 관리하기 위한 환경이다.
'개념 공부 > (인프라) 04. 컨테이너' 카테고리의 다른 글
[k8s] CoreDNS 및 k8s Cluster 내 DNS 조회 문제 Trouble shooting Deep Dive (0) | 2023.08.01 |
---|---|
[k8s] PV, PVC 의 Life Cycle 및 재활용 (0) | 2023.08.01 |
[k8s] CoreDNS 를 통한 외부 DNS 조회 문제 (0) | 2023.06.12 |
[Jenkins] Jenkins to Github Repo ssh 최초 시도 오류 (0) | 2023.02.09 |
[컨테이너] 02. 쿠버네티스 개념 (0) | 2022.09.28 |