728x90
우분투에 containerd를 설치하고 설정하는 방법
테스트 환경
$ lsb_release -d
Description: Ubuntu 22.04.3 LTS
1. 시스템 업데이트 및 필요한 패키지 설치
시스템 패키지 목록을 업데이트합니다.
sudo apt-get update
sudo apt-get upgrade -y
필요한 패키지들을 설치합니다.
sudo apt-get install -y \
software-properties-common \
apt-transport-https \
ca-certificates \
lsb-release \
gnupg2 \
curl
2. Docker GPG 키 추가
Docker의 GPG 키를 추가하여 패키지의 신뢰성을 보장합니다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg
3. Docker 리포지토리 추가
Docker 리포지토리를 추가하여 Containerd 패키지를 설치할 수 있도록 합니다.
sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
4. Containerd 설치
패키지 목록을 다시 업데이트하고 Containerd를 설치합니다.
sudo apt-get update
sudo apt-get install -y containerd.io
containerd : 컨테이너 런타임을 위한 독립적인 프로젝트로 컨테이너의 라이프사이클을 관리합니다. Kubernetes와 같은 시스템에서 주로 사용됩니다.
containerd.io : containerd 바이너리를 포함한 패키지로 Docker를 설치할 때 함께 설치되며 Docker의 백엔드로 containerd를 사용하게 합니다.
5. Containerd 설정 편집
기본 설정 파일을 생성한 후 SystemdCgroup 설정을 true로 변경합니다.
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
6. Containerd 서비스 시작 및 부팅 시 활성화
sudo systemctl --now enable containerd.service
sudo systemctl restart containerd.service
sudo systemctl status containerd.service
7. Containerd 버전 확인
설치된 Containerd의 버전을 확인합니다.
containerd --version
$ containerd --version
containerd containerd.io 1.7.18 ae71819c4f5e67bb4d5ae76a6b735f29cc25774e
runc의 버전을 확인합니다.
runc --version
$ runc --version
runc version 1.7.18
commit: v1.1.13-0-g58aa920
spec: 1.0.2-dev
go: go1.21.11
libseccomp: 2.5.3
8. Containerd 소켓 확인
Containerd 소켓 파일이 생성되었는지 확인합니다.
ls -l /var/run/containerd/containerd.sock
728x90
CNI 플러그인 설치(선택 사항)
- CNI 플러그인은 컨테이너 네트워킹을 설정하는 데 필요합니다.
CNI 플러그인 최신 버전 다운로드
CNI_VERSION=v1.5.1
CNI_TGZ=https://github.com/containernetworking/plugins/releases/download/$CNI_VERSION/cni-plugins-linux-amd64-$CNI_VERSION.tgz
CNI 플러그인을 설치할 디렉토리 생성
sudo mkdir -p /opt/cni/bin
CNI 플러그인 다운로드 및 압축 해제
curl -fsSL $CNI_TGZ | sudo tar -C /opt/cni/bin -xz
설치된 파일 확인
ls /opt/cni/bin
$ ls /opt/cni/bin
bandwidth dhcp firewall host-local LICENSE macvlan ptp sbr tap vlan
bridge dummy host-device ipvlan loopback portmap README.md static tuning vrf
containerd 설정 파일 업데이트
더보기
---
설정 파일 편집
vim /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri"]
[plugins."io.containerd.grpc.v1.cri".containerd]
default_runtime_name = "runc"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2"
[plugins."io.containerd.grpc.v1.cri".cni]
bin_dir = "/opt/cni/bin"
conf_dir = "/etc/cni/net.d"
CNI 네트워크 설정 파일 생성
CNI 플러그인이 네트워킹을 올바르게 설정할 수 있도록 설정 파일을 생성합니다.
sudo mkdir -p /etc/cni/net.d
cat <<EOF | sudo tee /etc/cni/net.d/10-bridge.conf
{
"cniVersion": "0.4.0",
"name": "bridge",
"type": "bridge",
"bridge": "cni0",
"isGateway": true,
"ipMasq": true,
"ipam": {
"type": "host-local",
"ranges": [
[{"subnet": "10.22.0.0/16"}]
],
"routes": [{"dst": "0.0.0.0/0"}]
}
}
EOF
cat <<EOF | sudo tee /etc/cni/net.d/99-loopback.conf
{
"cniVersion": "0.4.0",
"type": "loopback"
}
EOF
containerd 재시작
sudo systemctl restart containerd
---
containerd 사용자 그룹 추가(선택 사항)
sudo groupadd containerd
sudo usermod -aG containerd $USER
containerd 로그 확인
sudo journalctl -u containerd -f
ctr CLI 도구 사용
컨테이너 이미지 다운로드
sudo ctr image pull docker.io/library/busybox:latest
컨테이너 실행
sudo ctr run --rm --tty docker.io/library/busybox:latest my_busybox sh
컨테이너에서 명령 실행
sudo ctr run --rm --tty docker.io/library/busybox:latest my_busybox ls /
컨테이너 백그라운드 실행
sudo ctr run --detach --tty docker.io/library/busybox:latest my_busybox sleep 1000
실행 중인 컨테이너 확인
sudo ctr tasks ls
컨테이너 중지
sudo ctr tasks kill <컨테이너_ID> SIGKILL
참고URL
- containerd github : Getting started with containerd
- containerd : Containerd Download Releases
728x90
'리눅스' 카테고리의 다른 글
[draft] 우분투에서 동일한 물리적 인터페이스에 여러 IP 주소를 설정하는 방법 (0) | 2024.07.18 |
---|---|
[draft] 우분투에 HAProxy를 설치하는 방법 (0) | 2024.07.18 |
[draft] cgroup 버전 확인 (0) | 2024.07.16 |
[draft] 우분투에 lftp를 설치하고 사용하는 방법 (1) | 2024.07.16 |
[draft] 우분투에 CRI-tools를 설치하는 방법 (0) | 2024.07.15 |