1. 개요

공식 사이트

Ubuntu 20.04를 기준으로 RKE2 설치를 통해 Kubernetes cluster를 provisioning하여 lab을 구성하는 과정을 설명한다.

TL;DR

curl -sfL https://get.rke2.io | sudo sh -
sudo systemctl enable rke2-server.service
sudo systemctl start rke2-server.service

export PATH=$PATH:/var/lib/rancher/rke2/bin

mkdir ~/.kube

sudo cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
chmod 600 ~/.kube/config

2. 사전 준비

Kubernetes를 설치하기 전 필요한 linux 설정을 완료한다. 단일 노드 쿠버네티스 클러스터를 구성 할 생각이라면 넘겨도 되지만 멀티 노드 쿠버네티스 클러스터를 구성할 생각이라면 아래 내용을 확인하고 해당 값들이 중복이 없는지 확인해야 한다.

 

hostname 

hostname
sudo hostnamectl set-hostname [UNIQUE HOSTNAME]

 

product_uuid

sudo cat /sys/devices/virtual/dmi/id/product_uuid

 

mac address

ip link

 

다음으로 swap을 비활성화한다.

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3. RKE2 설치

아래 명령으로 RKE2 설치 스크립트를 실행한다.

curl -sfL https://get.rke2.io | sudo sh -

설정 옵션을 통해 특정 버전을 설치하거나 master node 용도로 설치할지 worker node 용으로 설치할지 등 다양한 설정이 가능하다.

4. 설치 확인

RKE2는 서비스 형태로 실행되며 설치가 완료된 후에는 자동으로 실행되지 않고 멈춰있는 상태로 있게된다. systemctl status 명령으로 상태를 확인할 수 있다.

sudo systemctl status rke2-server.service

다음으로 시스템 재시작 후에도 자동으로 서비스가 올라올 수 있게 한다.

sudo systemctl enable rke2-server.service

서비스를 시작하기 전에 /etc/rancher/rke2/config.yaml 파일을 생성 후 서버 설정이 가능하다. 마지막으로 systemctl start 명령으로 서비스를 시작한다.

sudo systemctl start rke2-server.service

systemctl status 명령으로 상태를 확인한다.

5. 설정

kubectl 및 각종 바이너리는 /var/lib/rancher/rke2/bin에서 찾을 수 있다. export 명령으로 PATH에 추가하는 내용을 쉘 rc 파일에 넣어놓는다.

export PATH=$PATH:/var/lib/rancher/rke2/bin

config 파일은 /etc/rancher/rke2/rke2.yaml 파일에서 확인이 가능하다. 나머지 설정은 일반적인 쿠버네티스 기본 사용 설정과 동일하다.

mkdir ~/.kube
  
sudo cp /etc/rancher/rke2/rke2.yaml  ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
chmod 600 ~/.kube/config

6. 최종 확인

kubectl version -o yaml
kubectl get ns
kubectl get pods --all-namespaces