이제 쿠버네티스가 무엇인지는 알았으니, 쿠버네티스 클러스터를 생성해보자!
컨테이너 런타임 설치
쿠버네티스는 앞서 컨테이너화된 애플리케이션을 배포 및 관리하기 위한 서비스라고 하였다.
그렇다면, 당연히 컨테이너화된 애플리케이션을 실행시킬 수 있는 런타임 소프트웨어가 필요하다.
대표적으로 컨테이너를 실행시킬 수 있는 소프트웨어는 다양하게 존재한다.
그 중, 가장 유명한 것은 Docker가 있을 것이고, Containerd, Podman, CRI-O 등이 존재한다.
쿠버네티스는 이러한 컨테이너 런타임을 사용하기에, 해당 컨테이너 런타임과의 상호작용이 중요할 것이다.
이렇게 많은 컨테이너 런타임이 각기 다른 방식으로 동작한다면, 쿠버네티스는 이렇게 많은 컨테이너 런타임들을 지원하기 위해 많은 부담이 생길 것이다.
그렇기 때문에 쿠버네티스는 CRI 표준이라는 것을 도입하여 해당 표준을 따르는 컨테이너 런타임들만을 지원하기로 하였다.
특히, 도커는 CRI를 지원하지 않고 dockershim 이라는 중간 계층을 통해 CIR를 지원하도록 했는데, 쿠버네티스에서는 이러한 중간계층을 통해 도커를 지원하기에는 코드베이스 증가 등의 유지보수 오버헤드가 크게 발생하였기에 1.24부터는 도커를 컨테이너 런타임으로 지원하지 않기로 결정하였다.
그래서 현재 최신버전의 쿠버네티스를 설치하려면, CRI 표준을 따르는 어떠한 컨테이너 런타임 소프트웨어를 설치해도 된다.
이 글에서는, containerd를 설치해보도록 한다.(이 글의 설치환경은 우분투 22.04 LTS 기준으로 작성되었다.)
apt-get update -y
apt-get install ca-certificates curl gnupg -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update -y
apt install containerd -y
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemCgroup = true/' /etc/containerd/config.toml
systemctl restart containerd
systemctl enable containerd
위 설치 내용을 보면 다음과 같다.
1. 패키지 관리 툴 업데이트
2. docker 패키지 서명을 위한 gpg keyring 추가
3. 도커패키지 저장소를 시스템 저장소에 추가
4. containerd 설치
5. containerd 가 systemd를 사용하여 cgroup을 관리하도록 설정
6. 재시작
이렇게 작성 후 아래 명령을 통해 containerd의 상태를 확인 했을 때 정상적으로 동작한다면 성공이다.
쿠버네티스 설치
보통 쿠버네티스를 설치하는 방법은 여러가지가 있다.
kubeadm이나 rancher, minikube 등 다양하게 존재하는데, 현재 하나의 서버에서 쿠버네티스 클러스터를 설치할 예정이기에 단일 노드 클러스터인 k3s 를 설치한다.
curl -sfL https://get.k3s.io | sh -
놀랍게도 설치 스크립트를 제공해주기에, 위 쉘 명령만 입력하면 자동으로 설치가 된다.
설치가 완료되면 아래와 같이 동작하는 것을 확인할 수 있다.
이렇게만 하면, 아주 간단하게 쿠버네티스 클러스터를 설치하였다.
Kubectl 설치
이제 클러스터를 설치하였으니, 클러스터를 이용해야할 차례이다.
kubectl 이라는 클러스터에 명령을 내릴 수 있는 커맨드라인 도구를 설치하여 클러스터를 관리할 예정이다.
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
쿠버네티스에서 제공하는 shell 스크립트를 통해 kubectl을 설치하도록 한다.
해당 설치가 완료되었다면, 이제 쿠버네티스를 사용할 준비는 완료되었다. 이제 클러스터에 컨테이너 어플리케이션들을 배포해보도록 하자!
'DevOps > 쿠버네티스' 카테고리의 다른 글
04. 클러스터에 오라클 데이터베이스 생성 (0) | 2024.08.05 |
---|---|
03. 쿠버네티스 설정 (0) | 2024.08.05 |
01. 쿠버네티스란 무엇인가? (0) | 2024.08.02 |