Proxmox 에서 리눅스 컨테이너 LXC 사용하기.

안녕하세요. 달소입니다.

이번편은 Proxmox의 또하나의 특징인 LXC에 대해서 소개해드리고 테스트로 하나 설치해보도록하겠습니다.

아래 자세한 설명도 있지만 간단하게 설명드리자면 OS단에서 도커와 같은 컨테이너단계의 가상화라고 보시면 되겠습니다.

VM에 비해서 경량화 이며 자원할당 등에서 유리한 장점이 있습니다

LXC란?

LXC(LinuX Containers)는 단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영 시스템 레벨 가상화 방법이다. 리눅스 커널은 cgroups를 절충하여 가상화 머신을 시작할 필요 없이 자원 할당 (CPU, 메모리, 블록 I/O, 네트워크 등)을 한다. Cgroups는 또한 애플리케이션 입장에서 프로세스 트리, 네트워크, 사용자 ID, 마운트된 파일 시스템 등의 운영 환경을 완전히 고립시키기 위해 namespace isolation을 제공한다. LXC는 cgroups와 namespace를 결합하여 애플리케이션을 위한 고립된 환경을 제공한다. 도커(Docker) 또한 실행 드라이버의 하나로 LXC를 사용할 수 있으며 이를 통해 이미지 관리와 개발 서비스를 제공한다.
- 출처 : https://ko.wikipedia.org/wiki/LXC

Proxmox에서는 아래와같이 설명하고있습니다.

컨테이너는 완전히 가상화된 머신(VM)에 대한 가벼운 대안입니다. 전체 운영 체제(OS)를 에뮬레이트하는 대신 실행되는 호스트 시스템의 커널을 사용합니다. 이는 컨테이너가 호스트 시스템의 리소스에 직접 액세스할 수 있음을 의미합니다.

컨테이너의 런타임 비용은 낮고 일반적으로 무시할 수 있습니다. 그러나 고려해야 할 몇 가지 단점이 있습니다.

  • Linux 배포판만 Proxmox 컨테이너에서 실행할 수 있습니다. 컨테이너 내에서 FreeBSD 또는 Microsoft Windows와 같은 다른 운영 체제를 실행할 수 없습니다.
  • 보안상의 이유로 호스트 리소스에 대한 액세스를 제한해야 합니다. 따라서 컨테이너는 자체 별도의 네임스페이스에서 실행됩니다. 또한 일부 시스템 호출(Linux 커널에 대한 사용자 공간 요청)은 컨테이너 내에서 허용되지 않습니다.

Proxmox VE는 Linux 컨테이너(LXC) 를 기본 컨테이너 기술로 사용합니다. "Proxmox Container Toolkit"( pct )은 복잡한 작업을 추상화하는 인터페이스를 제공하여 LXC의 사용 및 관리를 단순화합니다.

컨테이너는 Proxmox VE와 긴밀하게 통합됩니다. 즉, 클러스터 설정을 인식하고 가상 머신과 동일한 네트워크 및 스토리지 리소스를 사용할 수 있습니다. Proxmox VE 방화벽을 사용하거나 HA 프레임워크를 사용하여 컨테이너를 관리할 수도 있습니다.

우리의 주요 목표는 추가 오버헤드 없이 VM 사용의 이점을 제공하는 환경을 제공하는 것입니다. 즉, Proxmox 컨테이너는 "응용 프로그램 컨테이너"가 아닌 "시스템 컨테이너"로 분류될 수 있습니다. - proxmox 공홈

Linux Container - Proxmox VE

기본적으로 Linux만 지원하며 가능한 배포판도 위 링크에서 확인이 가능합니다.

다만 기본적으로 Proxmox에서는 이미지가 없기 때문에 별도로 이미지를 받아주셔야합니다.

Proxmox LXC 이미지 다운로드하기

먼저 Proxmox의 쉘로 진입해줍니다.

pveam update 명령어로 컨테이너 이미지를 업데이트 해주세요.
업데이트가 성공하면 pveam available 명령어로 가능한 이미지를 확인해줍니다.

최신 알파인 리눅스부터 리눅스배포판은 대부분 가능합니다.

저는 예시로 Ubuntu 이미지를 찾아서 다운로드 받아보겠습니다.

pveam download local ubuntu-21.04-standard_21.04-1_amd64.tar.gz

다운로드가 완료되면 pveam list local 명령어로 위 처럼 이미지 목록을 확인할 수 있습니다.

이미지생성도 CLI로 가능하지만 Proxmox에서 지원해주는 GUI로 한번 해보겠습니다.

LXC 컨테이너 생성하기

Proxmox 관리콘솔에서 우측 상단에 CT 생성을 눌러주세요.

권한 없는 컨테이너는 반드시 체크해줘야합니다.(보안상 취약)

템플릿을보면 아까 다운로드 한 이미지를 확인할 수 있습니다.

경량 컨테이너인 만큼 512메모리로도 충분합니다.

네트워크도 상황에 맞게 수정해주세요.

최종적으로는 이렇게 만들어보겠습니다.

금방 만들어집니다.

기본계정은 root이고 pw는 아까 컨테이너를 생성했을때 사용한걸 사용하시면 됩니다.

끝! 입니다 ㅎㅎ

크게 어려웠던건.. 없죠?