전체 글77 앱은 살아 있는데 서비스 간 호출만 401: OpenBao 가 발급하는 서비스 신원 JWT 를 따라가 보니 앞 글에서는 사람과 ESO 가 OpenBao 에 들어오는 문(인증)과 들어와서 닿는 범위(정책)를 봤다. 팀 책임님과 공통 인증 게이트웨이와 공통 프레임워크를 설계하면서 가장 오래 붙잡은 질문은 따로 있었다. "서비스가 서비스를 부를 때 무엇으로 자기를 증명하나." 사람 로그인은 Keycloak JWT 를 게이트웨이에서 검증하면 됐지만, 서비스 간 호출에는 별도의 신원이 필요했다. 우리는 그 신원 JWT 를 OpenBao 가 발급하게 하고, 받는 쪽은 공통 프레임워크의 Resource Server 설정으로 검증하게 했다. 그 JWT 한 장이 만들어지기까지 AppRole, Identity, Agent 가 차례로 등장한다. 이 글은 함께 설계한 그 길을 다시 따라가며, 적용하고 나서 보인 빈틈까지 적는다.함.. 2026. 9. 27. 시크릿을 KV 에 넣었다고 끝이 아니었다: OpenBao 의 경계는 인증과 정책이 정한다 기존 프로젝트에서 OpenBao 는 나한테 "KV v2 에 값을 넣고 읽는 곳" 이었다. 토큰 하나를 설정 파일에 두고 HTTP 로 부르면 끝이었다. 팀을 옮기고 팀 내 책임님과 함께 여러 제품이 같이 쓰는 공통 인증 게이트웨이와 백엔드 공통 프레임워크를 만들게 됐다. 제품마다 시크릿을 같은 방식으로 받아 가고, 서비스 간 호출에서 "누가 보냈는가" 를 같은 규칙으로 증명하려면 그 밑단에 공용 OpenBao 를 두어야 했다. 그래서 KV 말고도 인증 방식과 제품별 정책, AppRole 과 Agent 까지 책임님과 같이 설계하고 bootstrap 스크립트로 적용했다. 적용한 뒤에는 설계대로 올라갔는지 kubectl 과 스크립트를 한 줄씩 다시 읽으며 점검했고, 그때 멈칫한 곳도 함께 적는다. 이 글은 그중.. 2026. 9. 27. Helm 뜯어보기 3: values 파일 하나로 버티던 배포 저장소를 base/overlay 로 옮긴 이유 두 개의 배포 저장소를 연달아 다뤘다. 앞의 것은 서비스마다 Helm 차트가 있고 환경마다 values 파일이 하나씩 있는, 가장 흔한 구조였다. 뒤의 것은 같은 Helm 차트를 Kustomize 로 감싸 base 와 overlay 로 조립한다. 둘 다 "Helm 으로 배포한다" 고 말하지만 값을 어디에 두는지, 이미지 태그를 누가 어디에 쓰는지, 시크릿을 어떻게 넣는지가 거의 다 달랐다. 이 글에는 앞의 구조에서 무엇이 불편했고 뒤의 구조가 그걸 어떻게 풀었는지 적었다. Helm 과 Kustomize 를 겹쳐 쓰면서 새로 밟은 함정도 같이 적었다.IntroHelm 자체는 바뀌지 않았다. 바뀐 건 Helm 이 맡는 범위다. 예전에는 렌더, 환경 구분, 이미지 태그, 시크릿을 다 Helm values 가 .. 2026. 9. 27. Helm 뜯어보기 2: subchart, library chart, 그리고 남의 차트 가져오기 차트가 하나일 때는 템플릿 문법만 알면 됐다. 차트가 열 개가 되니 같은 템플릿을 열 번 고치게 됐고 그걸 줄이려고 library chart 를 만들었다. 그 뒤 제품 여러 개를 한 번에 배포하려고 umbrella chart를 썼다가 도로 풀어냈다. 다른 팀이 만든 Sentinel 차트는 가져와 subchart 로 붙였다. 이 글에는 그 과정에서 정리한 subchart 의 동작 규칙과, 차트를 나누고 가져올 때 내린 선택을 적었다. 규칙은 모두 helm template 으로 직접 렌더해 확인했다 (Helm v4.3.0).Introsubchart 의 values 는 부모에서 자식으로만 흐른다. 자식은 부모 values 를 못 보고 global 만 양쪽이 같이 본다.자식은 부모의 릴리스 이름과 네임스페이스를.. 2026. 9. 27. Helm 뜯어보기 1: 렌더는 성공했는데 값이 틀렸다 (템플릿 문법과 helper 다시 읽기) Helm 차트를 꽤 쓰면서도 _helpers.tpl 은 helm create 가 만들어 준 걸 복사해 이름만 바꿔 왔다. 그러다 커밋 해시로 붙인 이미지 태그가 7.27812e+13 이라는 숫자로 렌더돼 나왔다. 렌더도 배포도 에러 없이 통과했다. 그 뒤로 템플릿 문법을 처음부터 다시 읽으며 정리한 게 이 글이다. 예제는 모두 helm template 으로 직접 렌더해 확인했다 (Helm v4.3.0).IntroHelm 템플릿은 Go text/template 에 Sprig 함수와 Helm 전용 함수 몇 개(include, required, tpl, toYaml, lookup)를 얹은 것이다.. 은 자리마다 바뀌고 $ 는 항상 최상위다. range 나 with 안에서 .Release 가 안 보이면 이것 때.. 2026. 9. 26. 2026년 상반기 회고 (+ CKA) 상반기 회고를 쓴다면 이 이야기부터 꺼내야 할 것 같았다. 오래 미뤄둔 작은 목표 하나, CKA(Certified Kubernetes Administrator)를 드디어 땄다. 그런데 이 자격증을 "왜 이제서야" 땄는지를 설명하려면, 결국 지난 반년 동안 내가 무엇 때문에 흔들렸는지를 같이 적어야 한다. 이건 합격 후기라기보다, 빨라진 시대에 기초를 다시 붙잡기로 한 한 사람의 기록에 가깝다.돌아보기 전에, 요약부터CKA를 오래 미뤄뒀다가 올해 상반기에야 취득했다. 바빠서라는 핑계도 있었지만, 진짜 이유는 따로 있었다.몇 차례 이직 시도가 뜻대로 되지 않으면서 "나는 지금 빠르게 성과를 내고 있는데, 근본 체력은 오히려 비어 있는 게 아닐까"라는 질문이 계속 남았다.AI 도구가 내 퍼포먼스를 끌어올릴수록.. 2026. 7. 13. 이전 1 2 3 4 ··· 13 다음