본문 바로가기
기술 단어장/🎸

[Linux] 리눅스 커널 자동 패치 & 롤백 시스템

by MFDO 2025. 3. 18.

 

이번에 제대로 OS 파헤치기 및

SRE를 위한 한 걸음을 내딛고자 공부해보게 되었다.

만들어 내고자하는 목표는 아래와 같다.

 

 

 


 

핵심 목표

 

  • 리눅스 커널 패치 & 롤백 자동화
  • 무중단 업데이트 & 장애 발생 시 자동 복구
  • 보안 패치 자동 적용 및 실시간 모니터링
  • 대규모 서버 클러스터에서도 안정적으로 운영 가능하도록 설계

 

 


 

프로젝트 도입 이전 아키텍처 고민 포인트 

: 어떤 경우에 해당 프로젝트가 요구되며, 어떤 검증까지가 필요한 가를 고려하였습니다.

 

 

으앙 왜요

 

 

| 📗 Immutable Infrastructure / 불변 인프라 개념 수용

 - AWS, GCP, Azure 같은 클라우드 플랫폼은 새로운 인스턴스를 띄우고, 기존 인스턴스를 제거하는 방식을 선호함
 - AWS ECS, Fargate, Lambda 같은 서버리스 환경에서는 커널 패치 자체가 필요 없음
 - 클라우드에서는 커널을 직접 패치하기보다는 최신 AMI를 새로 배포하는 게 일반적

 

 

| 📗 커널 패치보다 재생성 방식이 더 안전할 때

 - 클라우드에서 새로운 VM을 띄우고 기존 VM을 종료하는 방식이 더 빠르고 안정적임
 - Auto Scaling Group (ASG)을 활용하면 서버를 무중단으로 교체하는 방식으로 운영 가능

 

 ===> "왜 굳이 위험하게 커널 패치를 해야 하는가?" 

 

 

| 📗 커널 패치 실패 시 복구가 어렵다

 - Bare Metal 환경에서는 커널 패치 후 롤백이 가능하지만,
 - 클라우드 VM에서는 커널 패치 실패 시, VM 자체가 부팅되지 않는 상황이 발생할 가능성이 높음

 

====> 클라우드에서는 이런 문제를 방지하기 위해 "VM Snapshot → 새로운 인스턴스 배포" 방식을 선호

 

 

* Immutable Infrastructure

  - https://www.digitalocean.com/community/tutorials/what-is-immutable-infrastructure

  - https://www.youtube.com/watch?v=HAqnroZAoH4

  - http://www.opennaru.com/openshift/immutable-infrastructure-vs-old-infra/

* 커널 패치 관련

  - https://cloud.google.com/compute/docs/troubleshooting/kernel-panic?hl=ko

  - https://www.megazone.com/echblog_201917_new-trigger-a-kernel-panic-to-diagnose-unresponsive-ec2-instances/

 

 

 

 


 

기술 선정

리눅스 커널의 자동 패치 및 롤백 시스템 구축을 위해 OpenStack 환경을 기반으로

다음과 같은 핵심 기술들을 선정했다!

사실은 네트워크/가상화 쪽으로 어떻게 많이 활용해볼 수 있을까라는 고민으로

도전해보고 싶은 기술을 많이 넣었다

 

 

 

 OpenStack 선택 이유

OpenStack은 가상화 환경을 유연하게 관리할 수 있는 오픈소스 플랫폼으로, Private Cloud 환경 구축에 적합

가상 환경을 자유롭게 배포, 관리, 삭제할 수 있는 API와 대규모 서버 클러스터 운영에 적합한 기능들을 제공

이번에 커널 패치를 통한 가상화에 대한 개념프라이빗 네트워크 운영을 통한 네트워크 구조를 확실히 잡고자 함

=> 아직 찬찬히 뜯어보는 중

 



 가상화 시스템 구축

  • KVM/QEMU: 가상 머신 생성 및 관리의 기본 하이퍼바이저 기술
  • OpenStack Nova & Neutron: VM의 자동 배포, CPU/RAM 조정, 네트워크 설정(IP 할당 및 접근 제어) 자동화
  • Terraform & Ansible: 인프라 자동화 및 가상 환경 설정 관리, 반복적이고 일관된 환경 배포 가능
  • Kubernetes : 컨테이너 오케스트레이션 및 VM 환경 관리 효율성 증가
  • Docker: 서비스 및 애플리케이션 컨테이너화로 빠른 배포 및 관리

 

  사용자 인터페이스 및 API 구성

  • React (Next.js): 가상 환경 신청, 상태 조회 등 사용자 친화적 웹 인터페이스 제공
  • FastAPI/NestJS: 빠르고 확장 가능한 백엔드 API 구축
  • PostgreSQL & Redis: 신청 내역 관리 및 상태 조회의 데이터베이스 관리, 고성능 캐싱 및 처리

 

  모니터링 시스템

  • Prometheus & Grafana: 클러스터 전체 및 개별 가상 환경의 CPU, RAM  및 네트워크 트래픽 실시간 모니터링
  • Node Exporter: 개별 가상 환경 내에서 세부 리소스 모니터링과 서비스 상태 체크를 가능하게 함

 

 실시간 데이터 업데이트

  • WebSocket & React Query: 사용자 인터페이스에서 가상 환경 상태 변경을 실시간으로 반영
  • Grafana API 연동: 실시간 모니터링 데이터를 시각적으로 사용자에게 제공

 

  CI/CD 및 자동 배포 환경 구축

  • GitHub Actions: 코드 변경 즉시 빌드 및 자동 배포 프로세스 구축
  • ArgoCD & Helm: Kubernetes 환경의 지속적이고 안정적인 애플리케이션 배포 및 업데이트 관리


* 기술명 : 중점으로 전문화 할 분야

댓글