IT기술/쿠버네티스 (k8s)

RKE2 설치 완벽 가이드: Ubuntu와 Rocky Linux 환경별 구축 방법

후스파 2025. 7. 8. 13:12
반응형

RKE2는 엔터프라이즈급 쿠버네티스 환경을 손쉽게 구성할 수 있는 랜처의 경량화 도구입니다. Ubuntu와 Rocky Linux를 중심으로 설치부터 검증까지 단계별로 알아보겠습니다.


필수 조건 확인

공통 사항

  • OS 버전: Ubuntu 20.04+/Rocky Linux 8.5+
  • RAM: 4GB 이상 (권장 8GB)
  • CPU: 2코어 이상 (권장 4코어)
  • 디스크: 60GB 이상 (권장 100GB SSD)

포트 개방

6443TCPKubernetes API
9345TCPRKE2 Supervisor API
2379-2381TCPetcd 통신
8472UDPFlannel VXLAN
10250TCPkubelet API
30000-32767TCPNodePort 서비스

OS별 준비 작업

# Ubuntu
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
sudo apt update && sudo apt upgrade -y
sudo ufw disable

# Rocky Linux
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
sudo dnf update -y
sudo systemctl disable --now firewalld
sudo setenforce 0

Ubuntu에 RKE2 설치

서버 노드 설정

# RKE2 서버 설치
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="server" sh -

# 설정 디렉토리 생성
sudo mkdir -p /etc/rancher/rke2

# 설정 파일 생성
sudo tee /etc/rancher/rke2/config.yaml > ~/.bashrc

# 클러스터 상태 확인
kubectl get nodes
kubectl get pods -A

워커 노드 추가

# 마스터 노드에서 토큰 확인
sudo cat /var/lib/rancher/rke2/server/node-token

# 워커 노드에서 RKE2 에이전트 설치
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="agent" sh -

# 설정 파일 생성
sudo mkdir -p /etc/rancher/rke2
sudo tee /etc/rancher/rke2/config.yaml :9345
token: 
node-label:
  - "node-type=worker"
EOF

# 서비스 활성화 및 시작
sudo systemctl enable rke2-agent --now

Rocky Linux에 RKE2 설치

서버 노드 설정

# SELinux 임시 비활성화
sudo setenforce 0

# RKE2 서버 설치
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="server" sh -

# 설정 디렉토리 생성
sudo mkdir -p /etc/rancher/rke2

# 설정 파일 생성 (SELinux 지원 포함)
sudo tee /etc/rancher/rke2/config.yaml :9345
token: 
selinux: true
node-label:
  - "node-type=worker"
  - "os=rocky"
EOF

# 서비스 활성화 및 시작
sudo systemctl enable rke2-agent --now

설치 후 검증

클러스터 상태 확인

# kubeconfig 복사 및 권한 설정
sudo mkdir -p ~/.kube
sudo cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
sudo chmod 600 ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config

# PATH 설정
export PATH=$PATH:/var/lib/rancher/rke2/bin
echo 'export PATH=$PATH:/var/lib/rancher/rke2/bin' >> ~/.bashrc

# 노드 상태 확인
kubectl get nodes -o wide

# 시스템 Pod 상태 확인
kubectl get pods -A

# 클러스터 정보 확인
kubectl cluster-info

컨테이너 런타임 테스트

# containerd 상태 확인
sudo /var/lib/rancher/rke2/bin/crictl ps

# 이미지 목록 확인
sudo /var/lib/rancher/rke2/bin/crictl images

# 네트워크 상태 확인
kubectl get svc -A
kubectl get endpoints -A

테스트 애플리케이션 배포

# nginx 테스트 배포
kubectl create deployment nginx-test --image=nginx:latest
kubectl expose deployment nginx-test --type=NodePort --port=80

# 배포 상태 확인
kubectl get pods -l app=nginx-test
kubectl get svc nginx-test

# 서비스 테스트
NODE_PORT=$(kubectl get svc nginx-test -o jsonpath='{.spec.ports[0].nodePort}')
curl http://localhost:$NODE_PORT

OS별 핵심 차이점

패키지 관리aptdnf
방화벽ufw disablefirewalld disable
SELinux기본 비활성화setenforce 0 필요
서비스 실행systemctlsystemctl
설정 특이사항기본 설정으로 충분selinux: true 권장
보안 정책AppArmorSELinux

Ubuntu 특화 설정

# AppArmor 프로파일 확인
sudo aa-status

# 필요 시 AppArmor 비활성화
sudo systemctl disable apparmor
sudo systemctl stop apparmor

Rocky Linux 특화 설정

# SELinux 상태 확인
getenforce

# SELinux 컨텍스트 설정
sudo setsebool -P container_manage_cgroup true
sudo setsebool -P virt_use_nfs true

문제 해결 팁

일반적인 문제 해결

# 노드 미연결 문제
sudo journalctl -u rke2-server -f
sudo journalctl -u rke2-agent -f

# 포트 충돌 확인
sudo netstat -tulpn | grep 6443
sudo ss -tlnp | grep 9345

# 인증 오류 해결
sudo cat /var/lib/rancher/rke2/server/node-token
sudo cat /etc/rancher/rke2/config.yaml

# 서비스 재시작
sudo systemctl restart rke2-server
sudo systemctl restart rke2-agent

네트워크 문제 진단

# CNI 상태 확인
kubectl get pods -n kube-system | grep calico

# 네트워크 정책 확인
kubectl get networkpolicies -A

# DNS 테스트
kubectl run test-pod --image=busybox --rm -it -- nslookup kubernetes.default

성능 최적화

# etcd 성능 확인
sudo /var/lib/rancher/rke2/bin/crictl exec $(sudo /var/lib/rancher/rke2/bin/crictl ps --name etcd --quiet) etcdctl endpoint health

# 리소스 사용량 모니터링
kubectl top nodes
kubectl top pods -A

고급 설정 옵션

고가용성(HA) 구성

# /etc/rancher/rke2/config.yaml (추가 마스터 노드)
server: https://첫번째-마스터-IP:9345
token: 
tls-san:
  - "로드밸런서-IP"
  - "클러스터-도메인"

커스텀 CNI 설정

# Cilium CNI 사용 예시
cni: "cilium"
disable-network-policy: false

보안 강화 설정

# CIS 프로파일 적용
profile: "cis"
secrets-encryption: true
protect-kernel-defaults: true

마무리

Ubuntu와 Rocky Linux 모두 RKE2 설치가 간편합니다. Calico CNI를 기본으로 제공해 네트워크 구성도 손쉽게 가능합니다. 첫 단계는 반드시 swap 메모리를 비활성화하고 필수 포트를 개방하세요.
핵심 포인트:

  • swap 메모리 완전 비활성화 필수
  • 방화벽 설정 및 필수 포트 개방
  • OS별 특화 설정 (SELinux, AppArmor 등)
  • 단일 명령어로 5분 내 설치 완료
  • containerd 기반 경량 런타임으로 성능 최적화

RKE2는 엔터프라이즈 환경에서 요구하는 보안성과 안정성을 제공하면서도 설치와 관리가 간편한 차세대 쿠버네티스 플랫폼입니다.

반응형