[k3s] 소개 및 시작

k3s는 Rancher Labs에서 만든 쿠버네티스의 경량 배포판이고, 동시에 CNCF 인증도 받은 공식 배포판이다.

쿠버네티스는 복잡한 초기 설정과 운영 비용으로 악명 높은데, 이건 그 번잡한 설정들을 원클릭으로 손쉽게 제공해준다. 게다가 리소스 사용량도 획기적으로 적다.

기본 옵션은 노드 수백개 미만의 경량 클러스터를 관리하는 용도에는 충분하며, 그 이상의 경우에도 옵션을 조절한다면 가능하다.




구성요소

k3s는 쿠버를 처음부터 다시 만들거나, 포크따서 수정한게 아니다. 핵심 컴포넌트를 유지한 채로 패키지만 만든 일종의 래퍼인 셈이다.
다음과 같은 구조를 가진다. 일반 쿠버 클러스터와 크게 다르진 않다.

https://docs.k3s.io/architecture
컨테이너는 기본값이 Containerd이지만, 변경 가능하다.
DB는 etcd 대신 SQLite를 기본값으로 사용한다. 이 또한 PostgreSQL 등으로 변경 가능하다.

kubectl CLI는 자체 개발이지만, 기존 kubectl과 호환된다.




지원 플랫폼

꽤 많은 플랫폼을 지원한다.
일단 Linux에 x86_64, armhf, arm64이기만 하면 설치가 가능하며, 라즈베리파이에도 설치가 가능하다.

OS 버전마다 사전 설정이 필요한 부분이 있을 수는 있다.
https://docs.k3s.io/installation/requirements#operating-systems




마스터 노드 설치

CLI 명령 한줄로 바로 설치 가능하다.

curl -sfL https://get.k3s.io | K3S_NODE_NAME=노드명 sh -

유니크한 노드 이름 지정해서 실행하면


금방 돌면서 설치가 된다. k3s 데몬이 잘 떠있으면 세팅은 잘 된 것이고

containerd 같은 내부 도구들도 은근슬쩍 깔려있을 것이다.

kubectl을 사용하면 바로 확인해서 사용해볼 수 있다.

그냥 쿠버와 동일하게 사용할 수 있다.




기존 클러스터에 노드 추가

노드를 증설하는 것도 꽤 손쉬운 편이다.
먼저 마스터 노드에서 토큰을 확인하고

sudo cat /var/lib/rancher/k3s/server/node-token

들어올 수 있게 포트를 열어준다.

그리고 추가할 노드의 머신에서 다음 명령을 사용하면 된다.

curl -sfL https://get.k3s.io | K3S_NODE_NAME=노드명 K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -

이것도 금방 끝난다.

구성이 잘 되었다면

즉시 노드 목록에 추가되어있을 것이다.



참조
https://docs.k3s.io/
https://www.cncf.co.kr/blog/k3s-overview-kubernetes/
https://docs.k3s.io/quick-start