COCOMO
Container 서비스 이해와 Docker 활용 본문
리눅스 기본 명령어 파악
터미널 열기
- alt + f2 키를 눌러서 우분투 대시로 terminal 검색
관리자 계정 접속
- sudo su 명령어 입력
파일 이동
- mv {파일명} {디렉토리명}/
용어 개념 정리
WAN
- 원거리 통신망
- 여러개의 LAN이 모여 이루는 넓은 범위의 네트워크, 두 개 이상의 LAN이 넓은 지역에 걸쳐 연결된 형태
LAN
- 근거리 통신망
- 비교적 가까운 거리에 위치한 장치들이 특정 전송매체로 연결된 모임, 사무실 또는 건물간의 연결된 네트워크
IP
- 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서, 사용하는 특수한 번호.
SubnetMask
- 서브 네트워크를 만들기 위해 AND 비트연산에 의해 씌우는 마스크. TCP/IP 프로토콜에서 IP 주소체계로 네트워크를 나누는 논리적인 수단
Port
- TCP나 UDP에서 어플리케이션이 상호구분을 위해 사용하는 번호
TCP
- 데이터 통신을 하기위한 연결성 프로토콜, 전송제어 프로토콜이라고 불리며, 전송계층에서 사용된다.
UDP
- TCP와 마찬가지로 데이터 통신을 하기위한 비연결성 프로토콜, 확인응답 기능이 없기때문에 용량이 가볍고 송신속도가 빠르나, 확인응답을 하지 못하지 때문에신뢰성이 보장되지 않는다.
SSH
- 원격지 호스트 컴퓨터에 접속하기 위해서 사용하는 인터넷 프로토콜, 암호과 기능이 포함
FTP
- 파일 전송 프로토콜, TCP/IP 네트워크 상에서 컴퓨터들이 파일을 교환하기 위해 사용하는 통신규약. 비밀번호가 평문으로 전송되어 보안성에 취약.
SFTP
- ****FTP와 달리 서버간의 데이터 전송을 암호화 하기때문에 해킹이나 보안 문제를 방지.
Virtual Machine과 Container 개념
Virtual Machine
정의
- GuestOs , Middleware, Application 등을 가상화한 컴퓨팅 자원을 의미하며, 독립된 가상의 컴퓨터.
Container
정의
- Container 엔진 위에서 동작하며, Middleware , Application으로 구성되어 독립된 가상의 컨테이너
Virtual Machine vs Container 차이 비교
Virtualmachine
- 각 vm은 os를 각각 포함
- vm 실행시 비교적 시간 소요
- vm이미지는 os를 포함하고 있어 무겁다
- 한개의 이미지는 오직 하나의 vm만 실행
- 일반 pc에서 vm은 2~3정도까지만 구동이 가능.
Container
- 모든 컨테이너들은 Host의 같은 Kernel들을 공유하며 동작.
- Container 실행되는데 비교적 적은 시간 소요(2~3초)
- Container 이미지는 layer의 개념으로 활용되기 때문에 많은 이미지를 보유해도 부담이 적다
- 이미지를 버전 별 등 호율적을 관리가 가능(github처럼).
- 일반적인 pc로 많은 컨테이너를 관리 가능
- 한 개의 이미지로 여러개의 컨테이너 생성이 가능.
가상화란?
개념
하이퍼바이저
- 가상머신을 생성하고 구동하는 소프트웨어
베어메탈
- cpu, memory 등을 가지고 있는 물리적 서버 자체를 의미
Host OS
- 베어메탈 바로 위에 설치된 운영체제
Guest Os
- 하이퍼바이저 위 vm에서 구동되는 운영체제
Container Runtime
- 컨테이너 실행 툴을 의미(Container Engine). = Docker
1) Host OS 에서 가상화
2) Bare Metal 위에서 가상화
전가상화와 반가상화
- 반가상화의 경우 수정된 게스트 os 를 이용하므로, 속도적인 부분에서 전가상화보다 이점이 존재
3) Host os 및 Container Runtime 위에서 가상화
가상화 종류 3가지
Deployment mechanisms and supportability
LXC Container
- Linux Container 는 Xen과 KVM 등 가상화 기술과는 다르게, 가상 머신을 생성하는것이 아니라, os가 사용하는 자원을 분리하여 여러 환경을 만들 수 있도록 하는 기술
- 컨테이너 동작 방식은 하드웨어 시뮬레이션이 거의 필요없기 때문에 가상화 오버헤드가 거의 없다. 가상 머신 부팅, 종료가 따로 필요하지 않아 시작과 종료를 빠르게 가져갈 수 있다.
컨테이너 용어 정리
Chroots
- 프로세스의 루트 디렉토리를 변경. 다른 프로세스가 액세스 할 수 있는 디렉토리를 제한할 수 있다.
namespace
- 커널 자원들을 구분해서 이를 프로세스에 제공하여 그 프로세서의 소속된 자원처럼 가상화한다.
- 프로세스테이블(PIDs) , ipc, 네트워크(IP주소, 방화벽 등) , User ID, 마운트 포인트 등을 가상화 할 수 있다.
Cgroup
- 프로세스의 리소스를 격리하고, 사용을 제어하는 기능을 담당한다
- 자원제한
- 특정 프로세스의 메모리 사용량을 제한
- 우선순위
- 특정 프로세스에 더 많은 CPU와 디스크I/O처리량을 할당
- 기록
- 프로세스가 자원을 얼마나 사용하고 있는지 측정
- 제어
- 프로세스를 멈추거나, 프로세스의 체크포인트를 설정해주거나 재시작 가능.
- 자원제한
가상머신 종류 네트워크
NAT(network address translation)
정의
- 네트워크 주소 변환
- ip패킷의 tcp/udp 포트 숫자와 소스 및 목적지의 ip주소등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술.
특징
- 패킷에 변화가 생기기 때문에 ip나 tcp/udp 체크섬도 다시 계산되어 재기록 해야한다.
- 따라서 네트워크 성능에 영향을 준다.
- 사설 네트워크에 속한 여러개의 호스트가 하나의 공인 ip 주소를 사용하여 인터넷에 접속하기 위함.
NAT Network
종류
- Static NAT
- 공인 아이피와 내부 아이피가 1:1로 매칭되는 방식.
- Dynamic NAT
- 공인아이피 주소보다 내부 네트워크의 실제 호스트수가 적을경우 또는 모든 내부 아이피주소를 일일히 외부용 아이피주소로 고정적으로 할당할 필요가 없을 경우에 사용.
- PAT(Port Address Translation)
- 하나 또는 하나이상의 공인 아이피 주소를 여러개의 내부 아이피 주소들이 공유할 경우에 사용하며, 같은 공인 아이피 주소를 변환하고 포트를 다르게 변환하여 주는 방식.
Bridege
정의
- 호스와 게스트를 하나로 연결하여 두개의 네트워크를 마치 하나의 네트워크 처럼 사용하는것.
특징
- 호스트와 게스트가 서로 동등한 자격을 가지기 때문에 게스트 컴퓨터에도 호스트 컴퓨터와 같이 공인 아이피를 할당하거나 호스트 컴퓨터가 사설망에 연결된 경우 호스트와 동일한 아이피 대역을 할당할 수 있다.
Host Only
정의
- 외부와 단절된 내부 네트워크
특징
- 가상머신들 사이에서만 통신이 가능하다.
'k8s' 카테고리의 다른 글
쿠버네티스 CORE CONCEPT 2 (0) | 2023.01.24 |
---|---|
쿠버네티스 CORE CONCEPT (0) | 2023.01.11 |
쿠버테니스 아키텍처 (0) | 2023.01.09 |
Iac 정복하기 (0) | 2023.01.09 |
Docker Container 정복하기 (0) | 2022.12.08 |
Comments