반응형

RKE2는 기업과 정부 기관을 위한 강화된 보안과 간소화된 운영을 제공하는 쿠버네티스 배포판입니다. 이 글에서는 RKE2의 핵심 구성 요소와 아키텍처를 상세히 분석합니다.
RKE2 아키텍처 개요
RKE2는 단일 바이너리로 설치되며, Server와 Agent 노드로 구성됩니다. 전통적인 Docker 대신 containerd를 사용하며, 제어 평면 컴포넌트를 정적 Pod로 관리합니다.
| 컨테이너 런타임 | Docker | Containerd |
| 제어 평면 | Docker 컨테이너 | 정적 Pod (kubelet 관리) |
| 보안 | CIS 수동 설정 | CIS 자동 통과 |
| 설치 | YAML 파일 복잡 | 단일 바이너리 |
| 메모리 사용량 | 높음 | 60% 절감 |
| 업스트림 호환성 | Docker 의존 | Kubernetes 표준 |
RKE2 핵심 설계 원칙
RKE2는 K3s의 사용 편의성과 RKE1의 엔터프라이즈 기능을 결합하여 다음과 같은 오픈소스 기술을 통합합니다:
- K3s: 경량화된 배포 모델
- Kubernetes: 업스트림 호환성
- etcd: 분산 키-값 저장소
- containerd/CRI: 컨테이너 런타임
- CNI: Canal, Cilium, Calico 지원
- CoreDNS: 클러스터 DNS
- Ingress NGINX Controller: 트래픽 라우팅
- Helm: 패키지 관리
핵심 구성 요소
Kubelet
- 역할: 노드의 파드 생명주기 관리
- 특징: 정적 Pod 매니페스트(
/var/lib/rancher/rke2/agent/pod-manifests/) 감시
# kubelet 설정 예시
cat > /etc/systemd/system/kubelet.service /etc/containerd/config.toml /etc/crictl.yaml > /etc/rancher/rke2/config.yaml
# Go BoringCrypto 검증
rke2 --version | grep BoringCrypto클러스터 관리: Server vs Agent
Server 노드
- 기능: 제어 평면(API 서버·스케줄러 등) 운영
# Server 노드 설치 명령어
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="server" sh -
systemctl enable rke2-server
systemctl start rke2-server
# 토큰 확인
cat /var/lib/rancher/rke2/server/node-tokenAgent 노드
- 역할: 워커 노드로 Pod 실행
# /etc/rancher/rke2/config.yaml
server: https://:9345
token:
node-label:
- "node-type=worker"
- "environment=production"# Agent 노드 설치
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="agent" sh -
systemctl enable rke2-agent
systemctl start rke2-agent고급 아키텍처: 전용 노드 구성
전용 etcd 노드
# /etc/rancher/rke2/config.yaml
disable-apiserver: true
disable-controller-manager: true
disable-scheduler: true
etcd-expose-metrics: true
etcd-snapshot-schedule-cron: "0 */12 * * *"
etcd-snapshot-retention: 5전용 제어 평면 노드
# /etc/rancher/rke2/config.yaml
disable-etcd: true
server: https://:9345
token:
tls-san:
- "api.example.com"
- "10.0.0.100"정적 Pod 추가 배포
# 커스텀 정적 Pod 디렉토리
mkdir -p /var/lib/rancher/rke2/agent/pod-manifests/
# 모니터링 에이전트 정적 Pod 예시
cat > /var/lib/rancher/rke2/agent/pod-manifests/node-exporter.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
name: node-exporter
namespace: kube-system
spec:
hostNetwork: true
hostPID: true
containers:
- name: node-exporter
image: prom/node-exporter:latest
args:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points'
- '^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)'
ports:
- containerPort: 9100
hostPort: 9100
volumeMounts:
- name: proc
mountPath: /host/proc
readOnly: true
- name: sys
mountPath: /host/sys
readOnly: true
volumes:
- name: proc
hostPath:
path: /proc
- name: sys
hostPath:
path: /sys
EOF제어 평면 컴포넌트 관리
kube-controller-manager 정적 Pod
apiVersion: v1
kind: Pod
metadata:
name: kube-controller-manager
namespace: kube-system
spec:
hostNetwork: true
containers:
- name: kube-controller-manager
image: registry.k8s.io/kube-controller-manager:v1.32.3
command:
- kube-controller-manager
- --allocate-node-cidrs=true
- --authentication-kubeconfig=/etc/kubernetes/controller-manager.kubeconfig
- --authorization-kubeconfig=/etc/kubernetes/controller-manager.kubeconfig
- --bind-address=0.0.0.0
- --client-ca-file=/etc/kubernetes/ssl/ca.pem
- --cluster-cidr=10.42.0.0/16
- --cluster-name=kubernetes
- --kubeconfig=/etc/kubernetes/controller-manager.kubeconfig
- --leader-elect=true
- --root-ca-file=/etc/kubernetes/ssl/ca.pem
- --service-account-private-key-file=/etc/kubernetes/ssl/service-account-key.pem
- --service-cluster-ip-range=10.43.0.0/16
- --use-service-account-credentials=true
volumeMounts:
- name: k8s-certs
mountPath: /etc/kubernetes/ssl
readOnly: true
- name: kubeconfig
mountPath: /etc/kubernetes/controller-manager.kubeconfig
readOnly: true
volumes:
- name: k8s-certs
hostPath:
path: /etc/kubernetes/ssl
- name: kubeconfig
hostPath:
path: /etc/kubernetes/controller-manager.kubeconfig마무리
RKE2는 보안과 운용 편의성을 최적화한 차세대 쿠버네티스입니다. containerd 기반의 경량 아키텍처와 CIS/FIPS 자동 준수 기능으로 기업 인프라의 안정성을 극대화합니다. 설치해보면 단일 바이너리로 간편하게 시작하고, 전용 노드 구성으로 대규모 클러스터도 손쉽게 관리할 수 있습니다.
핵심 포인트:
- 정적 Pod 기반 제어 평면으로 kubelet이 자동 관리
- containerd 런타임으로 60% 메모리 절감
- CIS/FIPS 자동 준수로 보안 규정 충족
- 다양한 CNI 플러그인 지원으로 네트워크 최적화
- 전용 노드 구성으로 대규모 환경 확장성
반응형
'IT기술 > 쿠버네티스 (k8s)' 카테고리의 다른 글
| RKE2 설치 완벽 가이드: Ubuntu와 Rocky Linux 환경별 구축 방법 (6) | 2025.07.08 |
|---|---|
| RKE2 설치 필수 요구사항 완벽 가이드: 성공적인 쿠버네티스 클러스터 구축 (0) | 2025.07.07 |
| RKE1 vs RKE2 완벽 비교 가이드: 차세대 엔터프라이즈 쿠버네티스로의 전환 (2) | 2025.07.04 |
| RKE2 완벽 가이드: 차세대 엔터프라이즈 쿠버네티스 플랫폼 (6) | 2025.07.04 |
| 쿠버네티스(k8s)에서 파드 수 조절과 관리 방법 (0) | 2025.03.29 |