02. 쿠버네티스 클러스터 생성

2024. 8. 2. 14:23·DevOps/쿠버네티스

이제 쿠버네티스가 무엇인지는 알았으니, 쿠버네티스 클러스터를 생성해보자!

 

컨테이너 런타임 설치

쿠버네티스는 앞서 컨테이너화된 애플리케이션을 배포 및 관리하기 위한 서비스라고 하였다.

 

그렇다면, 당연히 컨테이너화된 애플리케이션을 실행시킬 수 있는 런타임 소프트웨어가 필요하다.

 

대표적으로 컨테이너를 실행시킬 수 있는 소프트웨어는 다양하게 존재한다.

 

그 중, 가장 유명한 것은 Docker가 있을 것이고, Containerd, Podman, CRI-O 등이 존재한다.

 

출처 : https://blog.siner.io/2021/10/23/container-ecosystem/

 

쿠버네티스는 이러한 컨테이너 런타임을 사용하기에, 해당 컨테이너 런타임과의 상호작용이 중요할 것이다.

 

이렇게 많은 컨테이너 런타임이 각기 다른 방식으로 동작한다면, 쿠버네티스는 이렇게 많은 컨테이너 런타임들을 지원하기 위해 많은 부담이 생길 것이다.

 

그렇기 때문에 쿠버네티스는 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의 상태를 확인 했을 때 정상적으로 동작한다면 성공이다.

contianerd 상태 확인

 

쿠버네티스 설치

보통 쿠버네티스를 설치하는 방법은 여러가지가 있다. 

 

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
'DevOps/쿠버네티스' 카테고리의 다른 글
  • 04. 클러스터에 오라클 데이터베이스 생성
  • 03. 쿠버네티스 설정
  • 01. 쿠버네티스란 무엇인가?
뚝딱뚝딱2
뚝딱뚝딱2
  • 뚝딱뚝딱2
    개발도상국
    뚝딱뚝딱2
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 공부
        • Java
        • Spring Boot
        • LORA
      • Web
        • 인스타 클론 코딩
        • GPT 응답 API 서버
        • Spring Boot 예외 처리
        • 코테 준비용 서비스 만들기
      • DevOps
        • 쿠버네티스
        • 서버 만들기
      • 코딩테스트
        • 알고리즘
      • 교육
        • 스파르타코딩클럽 - 내일배움단
        • 혼자 공부하는 컴퓨터 구조 운영체제
      • 잡다한것
  • 블로그 메뉴

    • 홈
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

    쿠버네티스
    오블완
    mapstruct
    REST API
    스프링 부트
    spring boot
    클론코딩
    리액트
    티스토리챌린지
    스프링부트
    MSA
    Java
    Entity
    백준
    인스타그램
    chat GPT
    OpenAI API
    클러스터
    react
    예외
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
뚝딱뚝딱2
02. 쿠버네티스 클러스터 생성
상단으로

티스토리툴바