본문 바로가기

전체 글

(10)
명명 규칙을 바꾸다 Kubernetes 내부 동작을 이해하게 된 이야기 인프라 고도화를 통해 온프레미스 K8S를 AWS의 EKS서비스로 이전까지 완료 되었습니다. 본격적인 운영에 앞서 마음에 걸렸던 Namespace, Deployment, Service, Ingress등의 이름이 명확하지 않고, 이름 내에 리소스 이름이 중복으로 들어가서 명확하지 않은 부분이 있었습니다. 예를들어 이번에 글쓰기 주제의 redis의 경우, redis-deployment, redis-service, redis-ingress등으로 이름을 명명하였고, AI 조언을따라 각 자원의 이름을 제외하는 작업을 진행하였습니다. 결과적으로 kubectl 또는 k9s등으로 접근할때 다음과 같이 명확한 이름으로 나오게 되었습니다.(나머지 자원요소가 포함된 대상은 이름 정리 대상 입니다.) $ kubectl get..
쿠버네티스 워크로드 CronJob 작성시 유의할 점 - 기초가 중요한 이유 새벽 1시 1분책상 위에 스마트폰의 스크린이 들어오고 진동이 울립니다. 진동은 한번 울리고 멈추는가 싶더니 1시 2분, 3분이 지날 때마다 진동을 넘어서 책상을 "딱딱" 때리는 소리가 나기 시작했습니다. 멍한 상태로 스마트폰을 열어보니 10분 동안 알림이 50개 이상 쌓여있었습니다."Pod not healthy" 순간 잠이 확 달아나고 심장은 두근거리기 시작합니다. '다행이다.'운영 중인 Pod 배치 문제가 아닌 CronJob이 실패하여 Pod 상태가 정상적으로 종료되지 않았기 때문에 발생한 문제였습니다. 실패한 CronJob은 오전 1시, Backend에 업로드된 파일을 외부로 Rync 하여 백업하는 작업이었습니다. 에러 로그를 확인해 봅니다.2025-09-25 01:01:22.100 OpenSSL ..
불이 났는데 스프링 쿨러가 작동하지 않아요 - 서버 운영 장애 회고 마침내 스프링 쿨러를 설치하다.쿠버네티스를 마스터노드 3대로 구성하고가용성에 대비하였다고 안심하였습니다.마치 예전에는 소화기를 비치해 두고 불 끄기를 준비하고 있던 상태라면지금은 설비를 갖춰 불이 나면 자동으로 감지하고 스프링 쿨러를 작동할 수 있도록 자동화를 갖춘 느낌이었습니다. 3대 중 한대든 두대든 죽으면 마스터 노드가 한대라도 살아있으니자동으로 pod를 스케쥴링하겠지.극단적으로 2대까지 서버를 죽이진 않았지만한대를 죽였을 때도 복구되는 걸 확인하면서 안심하였습니다. 하지만 실무에서는 달랐습니다. 생각지 못한 순간에 화재 발생오전 8시 29분 평소와 다름없는 출근길갑자기 다량의 알림이 쏟아졌습니다. "node connect fail""node conditions not in ready state""..
DevOps가 될 수 없어서, 개발자로 입사해 직접 DevOps 환경을 구축하다. 1. 서론: 꿈과 현실의 간극처음 IT 커리어를 시작했을 때 저는 소규모 조직의 서버 관리자 역할을 맡았습니다. 개발자와 서버관리자의 경계가 점점 허물어지면서 개발자로 이직하게 되었으나, 개발자들이 로컬 개발 환경이나, 서버 배포환경 세팅에 어려움을 겪는 것을 도우면서 DevOps 직군에 관심이 가게 되었습니다. 하지만 DevOps 엔지니어로 전환은 쉽지 않았습니다.자격증을 취득하고 여러 포지션에 지원했지만, 실무 경험 부족으로 기회를 얻기 어려웠습니다. 그리고 현재 회사에 입사하여 1년이 지났습니다. 2. 문제 발견: DevOps 없는 조직의 현실현재 재직 중인 회사에서는 프랜차이즈 가맹점 관리 프로그램을 개발하고 있으며,입사 전에는 외주 개발사에서 서버 운영과 개발을 함께 담당했습니다. 온프레미스..
테니스 점수에서 발견한 우리 삶의 지향점 테니스의 점수 체계는 독특하다. 15, 30, 40, 듀스—일상적이지 않은 방식으로 점수를 쌓아간다.그러나 그 점수들마저도 궁극적인 목표는 아니다.게임을 모아야 하고, 게임을 모아야 세트가 되고, 세트를 모아야 승리를 거머쥔다.마치 인생의 한 조각을 옮겨다 놓은 듯하다.단순한 점수는 그저 과정일 뿐, 진짜 중요한 것은 그것들을 어떻게 엮어 세트를 완성하고, 최종적인 목표를 향해 나아가느냐이다. 테니스에서 1점을 얻는다고 경기를 이기지는 않는다.중요한 것은 그 점수를 어떻게 유지하고, 어떻게 흐름을 가져오며, 어떻게 결정적인 순간을 놓치지 않느냐이다. 이는 마치 우리의 삶과도 닮아 있다.단발적인 성취 하나에 취해 자만하다 보면, 결국 더 큰 흐름을 잃는다.중요한 것은 그 성취들이 모여 ‘의미 있는 하나’가..
나의 DevOps 여정기 (4) 세상에 쉬운 일은 없다."그래 나는 이제 CKA 자격증을 가진 사람이야."결과가 나오기까지 하루는 아무것도 못하고 결과만 기다렸으면서, 막상 따고 나니 너무 좋았다.다들 따는 자격증이면 어떠하리 이제 나는 Devops의 세계로 갈 수 있다. 그 말이 무색하게 자격증 취득하고 업무에 시달려 쿠버네티스는 만져보지도 못했고,자격증만 있을 뿐 할 수 있는 건 아무것도 없었다.이력서에 자랑스럽게 기재하고 링크드인에도 넣었건만...서류통과는 고사하고 이력서를 열람조차 하지 않는다. 야근은 늘고, 작업에 대한 엄격함은 날로 더해갔으며, 현업들의 요구사항도 늘어갔다.협력사 간의 정치와 업무 스트레스로 인해 몸도 이상해져 갔다.컨테이너 관련 부서로의 이동은 "나중에"라는 말로 미뤄지기만 했고, 그 "나중"은 좀처럼 오지..
RKE2를 이용한 쿠버네티스 클러스터 구축 설치 환경 개요※ 본 글에서는 실제 회사 내부 테스트 환경에서 RKE2를 설치하며 사용한 사양과 구성 정보를 바탕으로 작성되었습니다.운영 환경 구성 시 참고용으로 활용하시되, 환경에 맞게 적절한 조정을 권장합니다.서버 사양 모델: HPE ProLiant DL160 Gen10CPU: Intel(R) Xeon(R) Silver 4210R @ 2.40GHzRAM: 32GB이더넷: Embedded 2-port 1GbE클러스터 노드 구성노드 이름IP 주소cluster-node-1172.16.0.1cluster-node-2172.16.0.2cluster-node-3172.16.0.3 운영 체제 및 RKE2 버전OS: Ubuntu Server 22.04 LTS (Minimized Installation)RKE2: v..
나의 DevOps 여정기 (3) 쿠버네티스 공부와 자격증 취득대기업계열사 파견직으로 있을 때, 컨테이너 관련 파트로 이전을 바라면서 CKA(Certified Kubernetes Administrator) 자격증을 준비하였다. 복리후생 중 교육을 보내준 항목이 있었기에 협력사 대표도 교육비용과 자격증 취득비용 지원을 약속하였다.유데미에서 쿠버네티스 강의를 수강하고, 매주 주말 온라인 스터디 모임에 참여하였다. 각자 파트를 하나씩 맡아서 하나의 주제로 발표를 진행하여야 했기 때문에 발표를 잘하지 못하던 나는 버벅거리기 일쑤였지만어떻게든 발표자료를 만들고 덜덜 떨면서 발표를 하곤 하였다.각자의 수준이 제각각이어서 나와 같은 초급자도 있었고, 현업에서 사용하는 고급자분들도 있었다.내가 하는 발표는 쿠버네티스 리소스 수준에서 벗어나지 못하고 비..