피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Proxmox 기반 Self-service Kubernetes 온프레미스 클러스터 매니저 구축
Building an on-prem Kubernetes cluster manager - Part 1: Why, and what it looks like
AI 요약
Context
대학 부서 내 한정된 하드웨어 자원을 활용하여 학생 및 연구자에게 독립적인 Kubernetes 환경을 제공해야 하는 상황. 기존의 IaC 스크립트 방식은 일반 사용자가 접근하기에 진입장벽이 높고 수동 IP 할당 및 관리 오버헤드가 큰 구조적 한계 존재.
Technical Solution
- Packer를 통한 Ubuntu 22.04 Golden Image 제작으로 VM 프로비저닝 시간 단축 및 환경 일관성 확보
- Terraform bpg/proxmox 프로바이더를 활용하여 Proxmox API 기반의 선언적 VM 라이프사이클 관리 체계 구축
- Ansible의 Role 기반 설정을 통한 containerd, kubeadm, CNI 설치 및 클러스터 상태 수렴(Convergence) 구현
- FastAPI 기반의 추상화 레이어를 도입하여 Terraform/Ansible/Paramiko를 오케스트레이션하는 Self-service API 설계
- 클러스터별 독립된 Terraform Workspace 및 State 파일 분리를 통한 멀티테넌트 간 간섭 방지 및 격리 수준 강화
- IP Pool 기반 자동 할당 로직을 tfvars와 cloud-init에 연동하여 수동 네트워크 계획 없는 완전 자동화 프로비저닝 구현
실천 포인트
- 온프레미스 환경의 탄력성 확보를 위해 Bare-metal 대신 Proxmox와 같은 Hypervisor 도입 검토 - 인프라 라이프사이클(Terraform)과 내부 설정 관리(Ansible)의 책임 영역을 명확히 분리하여 설계 - 일반 사용자 대상 서비스 제공 시 IaC 도구를 직접 노출하지 않고 REST API로 추상화한 제어 레이어 구축 - 멀티테넌트 인프라 구성 시 State 파일의 물리적 분리를 통해 구성 변경 시의 영향도 최소화