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 |
---|