[kubernetes] 로컬 환경(macOS)에서 쿠버네티스 구축하기 2(K3S)

2해승·2024년 7월 4일

쿠버네티스?!

목록 보기
2/16

지난 시간에는 Minikube와 Kind를 각각 구축하고 비교하는 시간을 가져봤다. 주로 로컬에서 실습과 테스트 용도로 사용하는 대표적인 경량 쿠버네티스를 알아본 것인데 이어서 K3S를 구축하는 과정을 정리해보고자 한다.

K3S

K3S는 경량화된 Kubernetes로 리소스가 제한된 환경에서 사용하기 적합하게 설계되었으며 Kubernetes의 기능을 완전히 지원하면서도 훨씬 작은 용량과 간소화된 설치 과정을 지원한다. 필수적인 기능만 포함하고 선택적인 부분은 제거하거나 가볍게 만들어 졌다.

K3S 구축하기

우선 로컬환경에서 K3S 다중 노드 클러스터를 구현하기 위한 방법으로는 베이그런트+버추얼박스가 대표적으로 보여지는데 버추얼박스의 경우 애플 실리콘칩의 지원이 중단되었기 때문에 나는 Multipass를 사용하여 간단하게 구축해보았다.

Multipass는 Ubuntu 개발사인 Canonical 에서 제공하는 가상머신 솔루션으로 여러개의 인스턴스를 MacOS 환경에서 동시에 사용할 수 있는 큰 장점이 있다.

설치와 관리가 쉬운 Multipass를 사용하여 K3S를 구축하는 과정을 한번 알아보자.

Multipass 설치 및 설정

$ brew install --cask multipass
$ multipass version
multipass   1.13.1+mac
multipassd  1.13.1+mac

Multipass 설치가 완료되었다면 버전 확인을 통해 설치가 정상적으로 완료된 것인지 체크해준다.

Multipass는 명령어를 통해 가상머신을 간단하게 올릴 수 있는데 find 명령어를 통해 제공되는 Ubuntu 버전을 확인하고 사용할 버전을 선택하여 vm을 실행하면 된다.

$ multipass find
Image                       Aliases           Version          Description
20.04                       focal             20240626         Ubuntu 20.04 LTS
22.04                       jammy             20240701         Ubuntu 22.04 LTS
23.10                       mantic            20240701         Ubuntu 23.10
24.04                       noble,lts         20240702         Ubuntu 24.04 LTS

나는 20.04인 jammy를 선택해 각각 master, worker1, worker2로 구성하여 생성해주었다.

# multipass launch --name <vm 이름> --cpus <할당할 cpu > --mem <할당할 memory > --disk <할당할 디스크용량> <ubuntu alias>
$ multipass launch --name k3s-master --cpus 1 --mem 1G --disk 5G jammy
$ multipass launch --name k3s-worker1 --cpus 1 --mem 1G --disk 5G jammy
$ multipass launch --name k3s-worker2 --cpus 1 --mem 1G --disk 5G jammy

# 생성한 vm 확인
$ multipass list
Name                    State             IPv4             Image
k3s-master              Running           192.168.64.2     Ubuntu 22.04 LTS
k3s-worker1             Running           192.168.64.3     Ubuntu 22.04 LTS
k3s-worker2             Running           192.168.64.4     Ubuntu 22.04 LTS

K3S 설치

이제 각 노드에 K3S를 설치해주면 되는데 master 노드의 경우 설치 후 토큰과 IP 정보를 미리 조회하여 알아두어야 한다. 그래야 추후 worker 노드들을 같은 클러스터에 포함시킬 수 있다.

※Multipass 명령어로 노드에 접속하기※

# multipass shell <vm 이름>
$ multipass shell k3s-master

master node

# K3S 설치 및 상태 확인
$ curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -
$ systemctl status k3s

# 토큰 정보 확인
$ sudo cat /var/lib/rancher/k3s/server/node-token

# 로컬 환경에서 multipass info 명령어 혹은 multipass list 명령어를 통해 master 노드의 IP를 확인 할 수 있음
$ multipass info k3s-master | grep IPv4
IPv4:           192.168.64.2

worker node

마스터 노드의 설치가 끝났다면 각 worker1, worker2 노드에 접속하여 설치 명령어를 실행해준다.

# K3S 설치
$ curl -sfL https://get.k3s.io | K3S_URL=https://192.168.64.2:6443 K3S_TOKEN=토큰정보 sh -

K3S 확인

마스터 노드에서 kubectl 명령어로 노드를 조회할 수 있다.

$ kubectl get nodes
NAME          STATUS   ROLES                  AGE     VERSION
k3s-master    Ready    control-plane,master   27m     v1.29.6+k3s1
k3s-worker1   Ready    worker                 5m7s    v1.29.6+k3s1
k3s-worker2   Ready    worker                 2m29s   v1.29.6+k3s1


이번 시간까지는 로컬에서 쿠버네티스를 사용할 수 있는 케이스를 다뤄보았다. 간편하게 설치하고 실습까지 해볼 수 있는 환경을 구축해보는 것만으로도 쿠버네티스의 이해도가 높아졌다.

만일 쿠버네티스를 입문하는 사람이 있다면 냅다 강의를 끊어서 시작하는 것보단 우선 경량 쿠버네티스를 로컬에 설치하고 명령어에 익숙해지는 실습해보는 게 훨씬 도움될 것이라고 생각된다.


[참고]
https://ji-yong.com/blog/kubernetes-on-mac/k3s-with-multipass
https://elsainmac.tistory.com/870
https://somaz.tistory.com/268

profile
주니어 데브옵스 엔지니어

0개의 댓글