본문으로 건너뛰기

2.2. OPENMARU COP 구성


Master(Control Plane) 노드

Master 노드는 API Server, etcd, Controller Manager, Scheduler 등 클러스터 제어 컴포넌트가 실행되는 노드입니다. 고가용성 확보를 위해 최소 3식으로 구성하는 것을 권장합니다.

VM 정보

항목사양(권장 최소값)
vCPU4 core 이상
Memory16GB 이상
Disk100GB 이상 (OS) + /var/lib/rancher 별도 볼륨 권장
OSRocky Linux 9.5+ / Alma Linux 9.5+ / RHEL 9.5+
네트워크관리망 1개 이상, 고정 IP

ℹ️ 참고: 실제 운영 환경의 노드 사양은 워크로드 규모에 따라 env.yamlmaster: 항목과 함께 조정하십시오.


Infra 노드

Infra 노드는 모니터링, CI/CD 등 인프라성 워크로드를 애플리케이션 워크로드와 분리하여 실행하기 위한 선택적 노드입니다. env.yamlinfra: 목록에 노드를 지정하면 Taint/Toleration을 통해 인프라 전용 워크로드만 스케줄링됩니다.

VM 정보

항목사양(권장 최소값)
vCPU4 core 이상
Memory16GB 이상
OS Disk100GB 이상
Data Disk200GB 이상(메트릭/로그 저장용, Observability/APM 구성 시)
OSRocky Linux 9.5+ / Alma Linux 9.5+ / RHEL 9.5+

Taint 관련 설정 키:

설정 키설명
taint_master_nodeMaster 노드에 Taint를 적용해 일반 워크로드 스케줄링 차단
taint_infra_nodeInfra 노드에 Taint를 적용해 인프라 전용 워크로드만 스케줄링
tolerate_ingress_master_nodeIngress Controller가 Master 노드에서도 동작하도록 허용
tolerate_ingress_infra_nodeIngress Controller가 Infra 노드에서도 동작하도록 허용

Worker 노드

Worker 노드는 실제 애플리케이션 워크로드(Pod)가 실행되는 노드입니다. 운영 규모에 따라 자유롭게 증설할 수 있습니다.

VM 정보

항목사양(권장 최소값)
vCPU8 core 이상
Memory32GB 이상
Disk200GB 이상
OSRocky Linux 9.5+ / Alma Linux 9.5+ / RHEL 9.5+
GPU(선택)NVIDIA GPU 장착 시 CogentAI/vLLM 등 AI 워크로드 실행 가능

ℹ️ Worker 노드 증설 절차는 3.1. OPENMARU COP 운영절차 - Worker/Infra 노드 증설을 참고하십시오.

GPU 노드(선택) VM 정보

CogentAI/vLLM 등 AI/GPU 워크로드를 운영하는 경우, 별도의 GPU 노드를 구성합니다.

항목사양(권장 최소값)
vCPU16 core 이상
Memory64GB 이상
GPUNVIDIA GPU 1식 이상(VRAM 48GB 이상 권장)
OS Disk200GB 이상(NVMe 권장)
Data Disk500GB 이상(NVMe 권장, LLM 모델 저장용)
OSRocky Linux 9.5+ / Alma Linux 9.5+ / RHEL 9.5+

ℹ️ 참고: 위 표는 운영 편의를 위한 권장 최소값입니다. 워크로드 유형별 상세 사양은 설치 시 제공된 시스템 요구사항 문서를 참고하십시오.


Bastion

Bastion은 설치 자동화 및 DevOps 도구를 호스팅하는 관리 서버입니다. 상세 구성은 2.1. 시스템 구성 - Bastion 서버 구성을 참고하십시오.

VM 정보

항목사양(권장 최소값)
vCPU4 core 이상
Memory16GB 이상
Disk500GB 이상 (NFS 공유 스토리지, 레지스트리 저장 공간 포함)
OSRocky Linux 9.5+ / Alma Linux 9.5+ / RHEL 9.5+

클러스터 기동 및 종료 절차

OPENMARU COP 클러스터 노드 기동 절차

전원 차단, 정기 점검 등으로 클러스터가 완전히 종료된 이후 재기동할 때는 다음 순서를 반드시 지켜야 합니다.

  1. Bastion 서버 기동

    # Bastion 서버 전원을 먼저 켠 후 기본 서비스 상태 확인
    systemctl status named chronyd haproxy nfs-server docker

    # Docker Engine이 정상 기동되어야 GitLab/Harbor/Jenkins/Nexus/ChartMuseum/MariaDB
    # 컨테이너가 함께 올라옵니다. 컨테이너 상태도 함께 확인합니다.
    docker ps -a
  2. Master 노드 순차 기동 (노드 1대씩 전원을 켠 후 서비스 상태 확인)

    systemctl status rke2-server
  3. etcd/API Server 정상화 확인 (Master 전체 기동 후)

    kubectl get nodes -o wide

    모든 Master 노드가 Ready 상태가 될 때까지 대기합니다.

  4. Worker 노드 기동

    systemctl status rke2-agent
  5. 전체 클러스터 상태 확인

    kubectl get nodes -o wide
    kubectl get pods -A | grep -v Running

⚠️ 주의: Master 노드는 반드시 순차적으로 기동하고, 전체 Master가 Ready 상태가 된 이후 Worker 노드를 기동해야 합니다. 동시에 기동할 경우 etcd Quorum 형성 지연으로 클러스터 초기화가 실패할 수 있습니다.

OPENMARU COP 클러스터 노드 종료 절차

계획된 정전, 데이터센터 이전 등으로 클러스터를 완전히 종료해야 하는 경우 다음 순서를 따릅니다.

  1. 애플리케이션 워크로드 안전 종료 확인

    kubectl get pods -A
  2. Worker 노드 순차 Cordon/Drain

    kubectl cordon <worker-node>
    kubectl drain <worker-node> --ignore-daemonsets --delete-emptydir-data
  3. Worker 노드 서비스 종료 후 전원 차단

    systemctl stop rke2-agent
  4. Master 노드 서비스 종료 후 전원 차단 (마지막 노드부터 역순 권장)

    systemctl stop rke2-server
  5. Bastion 서버 종료 (DevOps 도구/DNS/NFS 서비스가 모두 정상 종료된 것을 확인한 후 전원 차단)

⚠️ 주의: Worker 노드를 Drain하지 않고 강제로 종료하면 워크로드가 비정상 종료(SIGKILL)되어 데이터 유실이 발생할 수 있습니다. 반드시 Cordon/Drain 절차를 선행하십시오.

ℹ️ 참고: 정기 점검을 위한 무중단 롤링 재시작은 종료가 아닌 3.1. OPENMARU COP 운영절차 - Worker/Infra 노드 증설 및 Rolling Restart 자동화 플레이북(openmaru-cop-rke2-rolling-restart.yaml)을 활용하십시오.