본문 바로가기

Cloud Native/install_K8s

install container runtime on ubuntu20.04

kubernetes runtime 관련 문서는 https://kubernetes.io/ko/docs/setup/production-environment/container-runtimes/ 에 있음

 

본 페이지에서는 kubernetes 를 위한 표준 컨테이너 런타임인 CRI-O 관련 설치를 진행한다.

## CRI-O 란?

CRI (Container Runtime Interface) 의 약자로 container runtime 을 plug-in 처럼 교체 가능하게 지원하기 위한 API 로서, CRI 표준을 따르는 어떠한 container runtime 이라도 사용할 수 있도록 한다.

CRI-O 는 CRI 표준을 따르는 OCI (Open Container Initiative) container runtime 이다. 레드햇이 주관하여 개발되었는데 Open Source Community 를 중심으로 container 엔진으로 k8s 에서 주로 사용되었던 docker 를 대체하는 것이 목적이다. CRI-O 는 k8s 의 CRI 표준 컴포넌트를 가벼운 runtime 으로 구현한 것으로 시작부터 k8s 와의 통합을 염두해두고 진행되었다.

### CRI-O 범위

k8s 에서 container 실행과 관련된 부분으로 범위가 한정적이다.

  • docker 를 포함한 여러 container image 지원
  • container image layer 등 관리
  • container lifecycle 관리
  • 모니터링

CRI-O 는 OCI 표준을 준수한다.

### 다양한 환경 지원

container 는 docker 가 지배하는 구조에서 여러 container 관련 서비스를 지원해 줄 수 있게 되었다.

특히, podman 등의 daemonless 서비스가 k8s 에서 동작할 수 있게 되었다.


1. 커널 모듈을 로드 한다.

sudo modprobe overlay
sudo modprobe br_netfilter

2. 부팅시 모듈을 로드할 수 있도록 설정 파일을 만든다.

sudo tee /etc/modules-load.d/crio.conf << EOF
overlay
br_netfilter
EOF

3. sysctl 파라미터를 설정한다.

sudo tee /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

4. 설정한 파라미터를 적용한다.

sudo sysctl --system

5. CRI-O repository 를 설정한다.

- OS 환경 설정

. /etc/os-release
CRI_VER=1.`echo $VERSION_ID | cut -f 1 -d '.'`

- repository 설정

sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list <<EOF
deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /
EOF

sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:${CRI_VER}.list <<EOF
deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${CRI_VER}/x${NAME}_${VERSION_ID}/ /
EOF

- Release.key 설정

curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers.gpg add -

curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/x${NAME}_${VERSION_ID}/Release.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/libcontainers-cri-o.gpg add -

- CRI-O 설치

sudo apt update
sudo apt install cri-o cri-o-runc -y

- 서비스 적용

sudo systemctl daemon-reload
sudo systemctl start crio
sudo systemctl enable crio

'Cloud Native > install_K8s' 카테고리의 다른 글

install k8s on ubuntu20.04  (0) 2021.10.25