[k8s] 클러스터 구성: containerd 세팅
컨테이너 런타임으로 containerd를 세팅할 경우에 건드려야 하는 것들을 대략 정리해뒀다.
다른 런타임을 사용한다면 알 필요 없다.
컨테이너 런타임 설치하기: containerd
쿠버네티스는 사실 컨테이너 제어 도구일 뿐이라서, 자체 컨테이너 시스템을 내장하고 있지는 않다.
쿠버네티스는 containerd, CRI-O, dockerd 3가지의 런타임을 제공한다.
뭘 써도 사용법은 크게 다르지 않고, 문제도 별로 없다.
나는 containerd를 사용하겠다.
아래 링크에 들어가서
https://github.com/containerd/containerd/releases
원하는 버전의 아키텍쳐를 골라 다운받는다.
특별한 머신환경을 가진게 아니라면 대부분 amd64일 것이다..
저걸 이렇게 압축을 푼다.
tar Cxzvf /usr/local containerd-1.6.17-linux-amd64.tar.gz

그리고 systemctl로 데몬을 띄울 수 있게 설정파일을 작성해준다.
# 택1. 구성에 따라 경로가 다름
sudo vi /usr/local/lib/systemd/system/containerd.service
sudo vi /etc/systemd/system/containerd.service
내용은 여기 들어가서 복붙해주면 된다.
https://raw.githubusercontent.com/containerd/containerd/main/containerd.service

그리고 저걸 통해서 containerd 런타임을 올려준다.
sudo systemctl daemon-reload
sudo systemctl enable --now containerd
근데 뭐 이것만으로는 안되고, 뭘 또 줄줄이 따라서 깔아야 하는게 있다.
왜지...?
containerd: runc 설치
아래에 들어가서
https://github.com/opencontainers/runc/releases
또 받고
깔아준다.
sudo install -m 755 runc.amd64 /usr/local/sbin/runc

containerd: cni 설치
하나 더 있다.
들어가서
https://github.com/containernetworking/plugins/releases
받고
압축을 풀어준다.
sudo mkdir -p /opt/cni/bin
sudo tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.2.0.tgz

containerd config 설정
또 좀 해줄게 있다.
containerd는 따로 뭘 설정하지 않으면 기본설정으로 돌아가는데, 그러면 쿠버에서 이걸 쓸 수가 없다.
기본설정을 설정파일로 뽑아낸 다음에, 필요한 것만 바꿔서 쓸 수 있게 하겠다.
sudo mkdir /etc/containerd
sudo touch /etc/containerd/config.toml
sudo containerd config default | sudo tee /etc/containerd/config.toml > /dev/null
sudo vi /etc/containerd/config.toml
들어가서
저 SystemCgroup만 true로 바꿔주면 된다.
그리고 재시작한다.
sudo systemctl restart containerd
이런식으로 잘 뜨면 잘 세팅된 것이다.

참조
https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/