반응형

RKE2는 차세대 Kubernetes 엔진으로 Containerd를 기본 컨테이너 런타임으로 채택했습니다. 이 글에서는 Containerd의 핵심 장점과 실전 활용법을 상세히 설명합니다.
RKE2가 Containerd를 선택한 이유
Containerd는 Docker보다 경량화되고 보안 강화된 컨테이너 런타임입니다.
| 아키텍처 | 모놀리식 | 모듈형 |
| 메모리 사용 | 350MB 이상 | 50MB 미만 |
| 보안 인증 | CIS 기준 수동 설정 필요 | CIS 자동 통과 |
| 업스트림 호환성 | Dockershim 의존 | Kubernetes 표준 |
| 시작 시간 | 3-5초 | 1-2초 |
| 레지스트리 미러링 | 제한적 | 완전 지원 |
Containerd는 Kubernetes 공식 런타임으로, 2022년 이후 Docker 지원 중단됨
CNCF 표준화 과정
Containerd는 2017년 Docker에서 분리되어 CNCF(Cloud Native Computing Foundation)에 기증되었으며, 2019년 졸업 프로젝트로 승격되었습니다. 이는 컨테이너 생태계의 표준화와 상호 운용성을 위한 중요한 이정표였습니다.
# Containerd 버전 확인
sudo /var/lib/rancher/rke2/bin/containerd --version
# Kubernetes CRI 호환성 확인
sudo /var/lib/rancher/rke2/bin/crictl versionContainerd의 3대 핵심 장점
군용급 보안
- CIS Kubernetes 벤치마크 자동 준수
- FIPS 140-2 암호화 모듈 지원
- 트리비(Trivy) 주기적 취약점 스캔
경량화된 성능
- 컨테이너 실행 속도: Docker 대비 20% 향상
- 리소스 효율: 동일 사양에서 노드 30% 추가 운영 가능
유연한 확장성
- 플러그인 시스템: 스토리지·네트워크 드라이버 쉽게 교체
- 크로스 플랫폼: Linux·Windows·ARM 동시 지원
성능 비교 벤치마크
# 컨테이너 시작 시간 측정
time sudo /var/lib/rancher/rke2/bin/crictl run container.json pod.json
# 메모리 사용량 모니터링
sudo /var/lib/rancher/rke2/bin/crictl stats
# 이미지 풀 속도 테스트
time sudo /var/lib/rancher/rke2/bin/ctr image pull docker.io/library/nginx:alpineContainerd 기본 명령어 활용법
RKE2는 Containerd CLI 도구를 /var/lib/rancher/rke2/bin/ 경로에 설치합니다.
실전 예시
# 실행 중인 컨테이너 확인
sudo /var/lib/rancher/rke2/bin/crictl ps
# 모든 컨테이너 확인 (중지된 것 포함)
sudo /var/lib/rancher/rke2/bin/crictl ps -a
# 이미지 목록 확인
sudo /var/lib/rancher/rke2/bin/crictl images
# 이미지 풀
sudo /var/lib/rancher/rke2/bin/ctr image pull docker.io/library/nginx:alpine
# 컨테이너 로그 확인
sudo /var/lib/rancher/rke2/bin/crictl logs
# 실시간 로그 모니터링
sudo /var/lib/rancher/rke2/bin/crictl logs -f 고급 명령어
# 컨테이너 내부 접근
sudo /var/lib/rancher/rke2/bin/crictl exec -it /bin/bash
# 컨테이너 리소스 사용량 확인
sudo /var/lib/rancher/rke2/bin/crictl stats
# 네임스페이스별 컨테이너 관리
sudo /var/lib/rancher/rke2/bin/ctr --namespace k8s.io container list
# 이미지 삭제
sudo /var/lib/rancher/rke2/bin/ctr image remove docker.io/library/nginx:alpine
# 컨테이너 정보 상세 확인
sudo /var/lib/rancher/rke2/bin/crictl inspect 환경 변수 설정
# crictl 설정 파일 지정
export CRI_CONFIG_FILE=/var/lib/rancher/rke2/agent/etc/crictl.yaml
# containerd 소켓 경로 설정
export CONTAINER_RUNTIME_ENDPOINT=unix:///run/k3s/containerd/containerd.sock
# PATH 설정
echo 'export PATH=$PATH:/var/lib/rancher/rke2/bin' >> ~/.bashrc
source ~/.bashrc고급 설정: NVIDIA GPU 연동
Containerd를 통해 GPU 가속을 활용하려면 nvidia-container-runtime을 설정합니다.
단계별 가이드
# 1. NVIDIA Container Runtime 설치
sudo apt-get update
sudo apt-get install -y nvidia-container-runtime
# 2. 런타임 설정 파일 백업
sudo cp /var/lib/rancher/rke2/agent/etc/containerd/config.toml \
/var/lib/rancher/rke2/agent/etc/containerd/config.toml.backup
# 3. nvidia 섹션 추가
sudo tee -a /var/lib/rancher/rke2/agent/etc/containerd/config.toml.tmpl > container.log레지스트리 미러링 설정
프라이빗 레지스트리 설정
# /etc/rancher/rke2/registries.yaml
mirrors:
docker.io:
endpoint:
- "https://registry.example.com"
"registry.example.com":
endpoint:
- "https://registry.example.com"
configs:
"registry.example.com":
auth:
username: "user"
password: "password"
tls:
cert_file: "/path/to/cert.pem"
key_file: "/path/to/key.pem"
ca_file: "/path/to/ca.pem"오프라인 환경 설정
# 1. 이미지 아카이브 생성 (온라인 환경)
sudo /var/lib/rancher/rke2/bin/ctr image export images.tar \
docker.io/library/nginx:alpine \
docker.io/library/busybox:latest
# 2. 오프라인 환경으로 전송
scp images.tar offline-server:/tmp/
# 3. 이미지 로드 (오프라인 환경)
sudo /var/lib/rancher/rke2/bin/ctr image import /tmp/images.tar마무리
RKE2의 Containerd 채택은 보안·성능·미래 지향성의 삼박자를 겸비한 선택입니다. 기존 Docker 사용자라면 crictl과 ctr 명령어에 익숙해져야 하지만, 한번 습득하면 더 효율적인 클러스터 관리가 가능합니다. 특히 GPU 가속이나 엣지 컴퓨팅 환경에서는 Containerd의 우수성이 빛을 발합니다.
핵심 포인트:
- 60% 메모리 절약으로 리소스 효율성 극대화
- CIS 자동 준수로 보안 규정 충족
- 모듈형 아키텍처로 확장성과 유연성 보장
- crictl/ctr 명령어 숙달로 고급 관리 기능 활용
- GPU 연동 지원으로 AI/ML 워크로드 최적화
Containerd는 Kubernetes 생태계의 표준 런타임으로 자리잡았으며, RKE2를 통해 엔터프라이즈급 안정성과 성능을 제공합니다.
반응형
'IT기술 > 도커 (docker)' 카테고리의 다른 글
| Docker 볼륨과 마운트 완벽 가이드: 데이터 영속성을 위한 스토리지 관리 (4) | 2025.07.10 |
|---|---|
| Docker 컨테이너와 호스트 간 파일 복사 완벽 가이드: 효율적인 파일 관리 방법 (4) | 2025.07.09 |
| Docker Redmine과 MariaDB 연동 완벽 가이드: 프로젝트 관리 시스템 구축하기 (5) | 2025.07.09 |
| Docker 컨테이너 오케스트레이션 완벽 가이드: 대규모 컨테이너 관리의 핵심 기술 (0) | 2025.07.08 |
| Docker 다중 컨테이너 연동 완벽 가이드: WordPress와 MySQL 구축하기 (2) | 2025.07.07 |