본문 바로가기
DevOps

쿠버네티스 K3S 설치 및 클러스터 구조 설정하기

by mingutistory 2022. 8. 21.
728x90

컨테이너 기반으로 된 환경을 모니터링 하기 위해서 쿠버네티스에 대한 이해가 필요해져서 실습을 해보기로 했다. 복잡한 전체를 이해하기 보다는 환경을 구성해보기 위해서 K8S가 아닌 K3S를 이용하기로 정해졌다.

 

K3S란?

https://k3s.io/

 

K3s: Lightweight Kubernetes

We are a Cloud Native Computing Foundation sandbox project.

k3s.io

K3S 구조

경령화된 쿠너베티스로 쿠버네티스 클러스터를 설치, 실행 및 자동 업데이트하는 데 필요한 종속성과 단계를 줄이는 50MB 미만의 단일 바이너리로 패키징 된다.

K8S의 경우에는 네트워크나 초기 설정의 까다로움이 있기 때문에 이런 과정들을 최소한으로 줄이고 etcd(상태 데이터 저장소) containerd와 같은 가벼운 프로그램들을 사용하도록 한다.

 

설치가 이게 다야? 싶을 정도로 간단하다.

 

나같은 경우에는 VM를 2개 띄우고 k3s server와 agent를 각각 설치했다. 

하지만 사실 1개의 서버로도 단일 kube cluster 구성이 가능하다. 한 개의 서버 안에서 server, agent 역할을 다 하게 되는 것이다. 

 

우선 기본 리눅스에서 필요한 패키지들을 다운 받아주고 방화벽을 비활성화 해준다.

 

curl -sfL https://get.k3s.io | sh -

# 특정 버전 설치
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=${특정 버전} bash -

해당 명령어만 실행해주면 k3s 서버 구성이 완료된다. 여기에서 멈추면 단일 클러스터 구조로 동작한다.

아래는 명령어는 agent에 설정해주어 여러개의 node를 이용해 클러스터 구조를 설정해준다.

# 마스터 노드 - 토큰 정보 위치
cat /var/lib/rancher/k3s/server/node-token

# 워커 노드
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=${k3s 버전} K3S_URL=${마스터 노드 IP}:6443 K3S_TOKEN=${node-token} sh -

# 클러스터 생성 확인
kubectl get node

 

deployment.yml을 작성해서 배포를 진행해본다. replicaset을 여러개로 해서 배포해보면 server, agent 서버에 잘 나눠서 배포되는 것을 확인 할 수 있다. 그리고 agent 서버를 물리적으로 전원을 꺼보면 알아서 정상적인 서버에 배포 되어 replicaset으로 설정한 개수를 유지하는 것을 확인 할 수 있다. 

300x250

'DevOps' 카테고리의 다른 글

WSL2 이용해서 k3s 연결하기  (0) 2022.10.13

댓글