전체 글 13

Bitnami 이미지 직접 빌드하기

최근 Redis의 보안 업데이트나 버전별 커스터마이징이 필요할 때, Bitnami Containers 저장소를 직접 빌드해서 사내 레지스트리에 푸시하는 방식이 유용합니다.이번 포스팅에서는 bitnami/redis 이미지를 예시로, 직접 빌드하고 푸시하는 과정을 단계별로 정리했습니다. 1. Bitnami Containers 클론먼저 Bitnami에서 제공하는 공식 컨테이너 소스를 가져옵니다. git clone https://github.com/bitnami/containers cd containers Bitnami의 containers 저장소에는 Redis뿐만 아니라 MySQL, PostgreSQL, NGINX 등 다양한 애플리케이션의 Dockerfile이 포함되어 있습니다.이 저장소를 직접 클론하면, ..

OpenSource 2025.10.24

Bitnami 유료화 전환으로 인한 이관

Bitnami 의 무료 제공 이미지들이 유료화됨에 따라 기존에 사용하던 이미지들에 ImagePullError가 발생했습니다. 기존 이미지들은 docker.io/bitnami 에서 docker.io/bitnamilegacy로 전환되었고, 어느정도 신뢰를 가지고 사용하던 이미지들이었는데 지원종료되니 아, 이제 외부 이미지들을 사용할 때 사내 Harbor에 미러링 후 사용해야겠다고 느꼈습니다. 간단하게 원격 이미지 Registry의 이미지를 Private Registry로 이관하는 법을 작성합니다. 1. skopeo 설치brew install skopeo 2. 복사skopeo copy --all docker://docker.io/bitnami/fluent-bit:2.2.2-debian-12-r9 docker:..

TroubleShooting 2025.10.14

사무실 이사 회고

최근 사무실을 이사하게 되면서, 내부 모든 서버를 새 네트워크 구조에 맞춰 재정비해야 하는 일이 있었습니다.결과적으로 큰 장애 없이 잘 마무리되었지만, 그 과정에서 느낀 점과 앞으로 개선해야 할 부분을 정리해보려 합니다.관련 문서 : https://solve-programming.tistory.com/38 1. 자산대장 정리의 어려움사무실 이사를 앞두고 가장 먼저 한 일은 이사 대상 서버 목록을 정리하는 것이었습니다.하지만 여기서 예상치 못한 문제가 발생했습니다.자산 관리 담당자가 수차례 바뀌면서 인수인계가 제대로 이루어지지 않았고,문서상 자산 목록과 실제 서버가 매칭되지 않는 경우가 많았습니다.처음엔 단순히 물리 서버에 대한 기록만 남아 있는 줄 알았는데, 실제로 이전해야 할 서버와 대조해보니문서에 없..

회고 2025.07.27

Proxmox 클러스터링 해제 / 재연결

Proxmox VE 환경에서 특정 노드를 클러스터에서 제거하거나, 클러스터 구성을 초기화해야 할 때 사용할 수 있는 절차입니다.❗ 이 문서는 Proxmox VE 7.4.13 기준입니다.❗ A는 클러스터에 남을 노드, B는 제거 대상 노드를 의미합니다. 상황별 요약 B가 포맷 대상이라면 1번만 수행하면 됩니다.B를 재사용할 예정이라면 1번 + 2번을 수행합니다.네트워크 변경 등으로 클러스터 재구성이 필요한 경우, 1 ~ 3번 모두 수행합니다. 1. A 노드에서 B 노드 축출A에서 다음 명령어를 입력하여 B 노드를 제거합니다.# pvecm nodes# pvecm delnode {nodename} 제거된 노드는 수 분 내로 Proxmox 웹 UI에서 사라집니다.B 노드가 여러 개라면 위 과정을 반복하세요...

Experience 2025.07.27

Kubernetes NFS-CSI 이미 생성된 PV의 경로 옮기는 법

https://github.com/kubernetes-csi/csi-driver-nfs GitHub - kubernetes-csi/csi-driver-nfs: This driver allows Kubernetes to access NFS server on Linux node.This driver allows Kubernetes to access NFS server on Linux node. - kubernetes-csi/csi-driver-nfsgithub.com 사내의 Kubernetes Cluster에서 NFS-CSI를 사용하여 Synology NAS를 스토리지로 사용하고 있었는데,회사가 이전을 하며 IP 대역이 바뀌면서 기존에 IP로 등록해놓은 NAS의 주소를 일괄 변경해야 하는 이슈가 생겼습니다...

기타 2025.07.09

Rancher

https://www.rancher.com/ Innovate EverywhereRancher, the open-source multi-cluster orchestration platform, lets operations teams deploy, manage and secure enterprise Kubernetes. Request a demo!www.rancher.com Rancher는 쿠버네티스 관리 플랫폼입니다.여러 환경으로 분산된 클러스터들을 통합적으로 관리할 수 있습니다. 활용 사례- VM 환경에 빠르게 쿠버네티스 배포- 클라우드에 구축된 EKS/AKS 클러스터를 관리 기존에는 kubectl을 사용한 CLI 환경만 사용했지만, Rancher의 GUI를 활용하면 훨씬 직관적이고 간편하게 쿠버네티스를..

OpenSource 2025.07.06

고객사 솔루션 설치 지원 업무

고객사에 쿠버네티스 기반의 솔루션을 설치하면서 경험한 이슈들을 회고합니다. 우리 솔루션은 "kubectl 만 주어지면 설치할 수 있다!" 라는 대명사와 함께 다양한 클라우드 환경에 대응할 수 있도록 설계되었고, 실제 설치에는 AWS의 EKS와 Azure의 AKS 같은 Kubernetes 서비스를 사용했습니다. 고객사의 환경은 크게 두가지로 나뉘었습니다. 1. 외부망을 사용할 수 있는 환경이 경우 자사 Harbor 에 있는 Helm Chart, Docker Image 들을 사용했기 때문에개발서버를 구축하는 것과 크게 다름이 없어서 수월했습니다. 2. 외부망을 사용할 수 없는 환경(폐쇄망)이 경우 필요한 모든 이미지와 바이너리 파일들을 미리 패키징하여 반입 절차를 거친 후 설치했습니다. 사전 준비 설치 전,..

회고 2025.06.29

Helm Chart Versioning 전략

팀에서 솔루션 개발과 DevOps 를 함께 수행하게 되면서 Helm 을 이용한 배포 자동화와 함께 솔루션의 버전 관리 역시 제 역할이 되었습니다. 우리의 솔루션은 쿠버네티스 기반의 솔루션이었기 때문에 전체적인 구조의 버전관리는 Helm Chart 단위로 관리했습니다. Helm 차트는 기본적으로 values.yaml 을 통해 각 어플리케이션의 설정을 유연하게 바꿀 수 있지만, 실제 현업에서는 고객사마다 요구사항이 상이하여 동일한 솔루션 버전에 일부 어플리케이션의 버전만 다르게 구성하는 경우 가 자주 발생하였고, 이러한 차이점을 문서로만 관리하기엔 휴먼 에러의 위험이 있었습니다. 이를 해결하기 위해 차트 전체를 버전 단위로 관리하는 전략을 선택했습니다. 예를 들어, 다음과 같이 버전을 정의했습니다.1.0.0..

회고 2025.06.29

WorkerNode Scaleout 시 주의사항

고객사에서 쿠버네티스 기반 솔루션을 사용할 때 자주 듣는 요구사항이 있습니다. 주말에는 사용을 안할건데, EC2 인스턴스를 꺼놓을 순 없나요? 워커노드를 끄는 것 자체는 AWS를 예로 들면, 원하는 노드 개수, 최소 노드 개수, 최대 노드 개수를 0으로 돌려놓으면 가능합니다. 하지만 오픈소스를 쓸 경우, 0으로 돌려놔도 노드가 종료되지 않는 이슈가 가끔 있는데, PDB를 체크해보면 좋습니다. kubectl get pdb -A PDB는 인위적으로 노드를 줄이는 상황에도 항상 최소한의 POD가 유지될 수 있도록 하는 정책으로, 오픈소스들을 사용한다면 위와 같은 요구사항이 있을 때 제일 먼저 봐야하는 정책입니다. 내려도 된다면 해당 PDB의 MIN AVAILABLE 를 수정하여 변경할 수 있습니다.

TroubleShooting 2025.06.29