티스토리 뷰
[k8s] containerd, runC, CNI플러그인 설치하기(without Docker, cgroup 활성화)
hun.ca 2022. 8. 31. 19:52cf. 설치할 버전
containerd 1.5.5
runC 1.1.1
* contianerd 및 runC는 컨테이너 동장을 위해 필요하기 때문에 쿠버네티스 클러스터 시작(kubeadm init) 전에 반드시 필요함.
* CNI 플러그인은 Pod CIDR 및 서브넷을 구성하기 때문에 kubeadm init 전 또는 후에 필요함.
* CNI 플러그인이 설치되지 않은 경우 CoreDNS가 제대로 동작할 수 없음.
1. containerd 1.5.5 설치
쿠버네티스 버전 1.22를 사용할 것이기 때문에 containerd는 1.5.5를 사용한다.
링크: https://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-containerd-on-ubuntu-22-04.html
wget https://github.com/containerd/containerd/releases/download/v1.5.5/containerd-1.5.5-linux-amd64.tar.gz
sudo tar Czxvf /usr/local containerd-1.5.5-linux-amd64.tar.gz
wget https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
sudo mv containerd.service /usr/lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now containerd
2. runC 설치
링크: https://github.com/opencontainers/runc/tags
wget https://github.com/opencontainers/runc/releases/download/v1.1.1/runc.amd64
sudo install -m 755 runc.amd64 /usr/local/sbin/runc
** Containerd configuration for Kubernetes **
containerd의 설정 파일은 'config.toml'이다. 하지만 containerd의 설치 파일을 다운로드하여 설치했을 경우엔 해당 파일이 기본적으로 만들어지지 않는다. 따라서 아래와 같이 containerd의 설정 파일을 만들어준다.
$ sudo mkdir -p /etc/containerd/
$ containerd config default | sudo tee /etc/containerd/config.toml
만약 kubernetes를 위해 containerd를 사용할 것이라면 runC에서 cgroup을 사용하게 하기 위해 SystemCgroup 옵션을 true로 설정한다.
$ sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
설정 사항을 반영하기 위해 containerd를 재시작한다.
sudo systemctl restart containerd
CNI 플러그인 설치
[칼리코 설치]
$ curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml -O --insecure
$ vim calico.yaml // 필요에 따라 CALICO_IPV4POOL_CIDR 수정
$ k apply -f calico.yaml
$ sudo systemctl restart containerd
- pod 기본 CIDR 192.168.0.0/16로 설정되어 있다. 만약 설정된 Pod CIDR이 해당 값이 아닐 경우 다운 받은 칼리코 yaml 파일에서 'CALICO_IPV4POOL_CIDR' 값을 수정해줘야 한다.
- Ref: https://github.com/containernetworking/plugins/tags
'[ DevOps ] > [ k8s ]' 카테고리의 다른 글
[k8s] livenessProbe기반의 Self-healing Pod (feat. 자동화) (0) | 2022.09.05 |
---|---|
[k8s] 쿠버네티스에서 컨테이너 동작 flow (0) | 2022.09.04 |
[container] 컨테이너 런타임 표준화(OCI 표준) (1) | 2022.08.26 |
[k8s] k8s설치를 위한 VM 구축하기 (feat. Virtual Box) (0) | 2022.08.22 |
[k8s] VM에 쿠버네티스 클러스터 구축하기 (0) | 2022.08.22 |
- Total
- Today
- Yesterday
- 코틀린
- db
- CICD
- Kotlin
- 카프카
- 컨트롤러
- jvm
- Java
- Non-Blocking
- 쿠버네티스
- RDB
- github actions
- ci/cd
- Kubernetes
- Controller
- 우분투
- golang
- Linux
- argocd
- docker
- spring
- ubuntu
- Stream
- K8s
- kafka
- container
- LFCS
- go
- GitOps
- rolling update
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |