분류 전체보기

· DevOps
최근에 쿠버네티스 클러스터 마이그레이션을 진행했다. 클러스터 마이그레이션을 진행하기 이전에는 rancher 기반으로 클러스터를 설치하고 관리했었으나, 새롭게 옮긴 클러스터는 k3s를 직접 설치해서 사용하고 있었기에, 보다 간소화된 기능으로 쿠버네티스 클러스터 모니터링 대시보드가 있으면 좋겠다는 생각을 하곤 했다. 그렇게 찾아보게 된 것이 headlamp라는 오픈소스이다. 쿠버네티스 클러스터를 모니터링하는 오픈소스 솔루션이며, 나쁘지 않은 UI를 가지고 있었기에 본격적으로 설치하기 시작했다.[headlamp] : https://headlamp.dev/ HeadlampDesktop and Web It can be run as a web app, desktop app, or both.headlamp.dev 다..
· DevOps
시대생팀에서 쿠버네티스 클러스터를 옮기는 일을 하면서 새롭게 인프라를 세팅해야 하는 일이 있었다. Grafana나 Kiali 등을 온프레미즈에 다시 띄우면서 새롭게 세팅을 해야 했고, 우리의 인증을 담당하는 keycloak은 SOPF를 대비하기 위해서 온프레미즈에서 클라우드로 이전했기 때문에 세팅을 다시 진행해줘야 하는 상황이었다. 이 과정에서 여러 어려움을 겪었는데, Keycloak을 세팅하는 방법이 생각보다 복잡하기도 했고, 내가 기존에 알고 있던 인증 시스템 체계에 대한 지식이 생각보다 얕아서 좀 더 공부해야하기도 했다. 이번 포스팅에서는 인증 시스템의 키워드(oidc, SSO, OAuth etc)에 대해서 다루고, Keycloak이라는 솔루션에 대해서 소개하려고 한다. 로그인에 대하여인증(Aut..
· 회고
무던히 덥던 날에, 팀원들과 제주도 여행을 간 적이 있습니다. 울렁거리는 아스팔트 위의 아지랑이와 함께, 온몸에서 땀을 흘리고 있었지만 왠지 그날은 땀을 더 흘리고 싶은 기분이었습니다. 돌길을 따라 걷다 보니 우측에는 아름다운 바다와 에메랄드 빛의 무언가가 바다를 더 아름답게 했습니다. 당신과는 바다를 보러 간 적이 없다는 생각을 하곤 했습니다. 무수히 많은 금요일 중 하루, 퇴근길의 지하철에서 당신의 소식을 들었습니다. 거동이 불편하여 병실에 몸을 뉘이고 있다는 이야기입니다. 당신에게서 직접 전보를 받지 못한 것을 원망합니다. 당신은 늘 제가 염려하지 않도록 배려하는 버릇이 있습니다만, 제게는 그런 배려가 원망스럽기만 합니다. 자신의 한심함에 부아가 치민다라는 일은 지금까지도, 그리고 앞으로도 없을 줄..
예전에 동료와 함께 구축했던 온프레미즈 쿠버네티스 클러스터 기반에서 운영되고 있는 서비스가 있었는데, 클러스터의 특정 피쳐들을 안쓰게 되면서 자연스럽게 방치되다가, 최근에 온프레미즈에서 다른 온프레미즈로 마이그레이션을 하게 되는 일을 돕게 되면서 쿠버네티스 세팅을 다시 하게 됐다. 그 과정에서 원래 사용하고 있던 nginx-ingress 대신에 istio gateway를 사용해서 구축하기로 했다. 이유는 ingress-NGINX가 2026년 3월까지 best-effort 유지보수 후 인퇴(리타이어) 예정이라는 점이 컸고, 이후에는 릴리즈/버그픽스/보안패치가 더 이상 제공되지 않기 때문이다. 또한 Istio가 Kubernetes Gateway API를 지원하고, 장기적으로 트래픽 매니지먼트의 기본 API로..
클라우드나 온프레미즈 등 여기저기 흩어져있는 서버에 연결해야하는 경우에 VPN을 쓰게 된다. 다양한 툴들이 있지만 개인적으로 최근에 접하면서 가장 좋아하게 된 것은 tailscale이라는 VPN이었다. 간편한 설정을 제공하면서 wireGuard 기반으로 돌아가는 VPN으로 관리 등 편한 부분들이 많다. 개인적으로 온프레미즈 기반의 쿠버네티스를 운영해야하는 상황에서 외부에서도 작업할 수 있게, 또한 보안상의 문제로 tailscale을 직접 사용하고 있는데 꽤 좋았다. tailscale에 대해서 레퍼런스를 확인할 때, 일반적인 VPN과는 다르게 WireGuard 기반으로 동작한다는 내용이 있었는데, 나중에 한 번 VPN의 비교를 다뤄보면 좋을 것 같다는 생각이 들었다. 이번 포스팅에서는 관련된 내용과 함께 ..
쿠버네티스에 대해서 공부하다보면 매니페스트 중에 네트워크 연결을 도와주는 Service라는 종류가 있다. Service 매니페스트는 크게 3가지로, 내부에서 IP를 통해서 연결할 수 있게 해주는 ClusterIP와 NodePort 그리고 LoadBalancer 이렇게 3가지가 있다. 클라우드에서 제공하는 쿠버네티스를 사용하게 되면, LoadBalancer 타입의 Service를 사용할 때 GCP나 AWS같은 IaaS 플랫폼에서 제공하는 로드 밸런서를 사용한다. 하지만 아무것도 없는 온프레미스에서 로드 밸런서 타입을 사용하면 계속 Pending으로 뜨게 된다. 이 때 metalLB와 같은 로드밸런서를 통해서 IP 대역을 할당받아야 한다. 이러한 아무것도 없는 온프레미스인 베어메탈에서 로드밸런서 타입의 서비..
· Algorithm
서비스를 만들다 보면 A와 B를 짝지어 주고 싶다는 요구사항을 정말 자주 만나게 된다. 예를 들면 다음과 같다. 개발자 프로젝트(프리랜서 플랫폼)학생 멘토(멘토링 플랫폼)유저 유저(소개팅/친구 매칭)이런 문제들을 한꺼번에 다루는 것을 매칭 시스템(matching system)이라고 부른다. 겉으로 보기에는 검색/추천 시스템과 비슷해 보인다. 하지만 어떻게 문제를 모델링하느냐에 따라 알고리즘 자체가 완전히 다른 세계가 된다. 이 글에서는매칭 시스템이 무엇인지검색/추천 시스템과는 무엇이 다른지어떤 상황에서 매칭 시스템을 쓰는 게 맞는 선택인지대표적인 매칭 알고리즘을 어떻게 이해하면 되는지위와 같은 내용들을 정리해본다. 이번 포스팅에서는 매칭이라는 개념에 대해서 폭넓게 알아볼 예정이며, 그 중에서도 기술..
아주 예전에, 학교 공지사항의 내용을 스크래핑에서 데이터베이스에 저장하고, 새로운 공지사항이 올라온 경우 사용자에게 알림을 보내는 기능을 개발한 경험이 있다. 이에 대한 내용도 포스팅을 해두었으나, 최근에 좀 더 자세하게 해당 내용을 써달라는 요청을 받기도 했고, 고생을 많이 했던 경험이 있기 때문에 보다 자세하게 해당 내용과 다양한 트러블슈팅에 대한 내용도 담으면 좋을 것 같다는 생각을 하게 되어, 좀 더 구체적으로 작성해보려고 한다. 시대생팀에서 2023년에 앱을 리빌드 하는 과정에 앞서, 기획팀원분들은 나서서 유저 리서치를 진행했습니다. 함께 유저 리서치에 참여하여 실제 사용자들은 어떤 기능을 유용하게 사용하고 있는지 함께 이야기를 나눈 적이 있습니다. 그 당시 새롭게 학교 공지사항이 올라왔을 때..
marsboy
'분류 전체보기' 카테고리의 글 목록