Introduction 인프라 관련 세미나에는 항상 참여하는 편인데, 가장 기본이 된 주제가 바로 이 GitOps가 아닌가 싶다. 실제로 시대생팀에서도 GitOps를 통해서 AWS쪽 인프라와 ArgoCD가 바라볼 레포지토리를 정의하는 레포지토리로 인프라를 관리하고 있다. 깃옵스(GitOps)라고 하면 단순히 쿠버네티스 클러스터뿐만 아니라, Terraform이나 Pulumi 혹은 AWS CDK 같은 툴을 통해서 AWS에도 적용할 수 있다. 이러다 보니 인프라를 담당하는 두 개의 큰 축을 모두 깃옵스로 구현할 수 있다. 대부분의 기업에서도 클러스터를 담당하는 부분과 클라우드를 담당하는 부분을 나눠서 관리하고 있다. 개인적으로도 GitOps라는 키워드가 매우 인기 있는 키워드라고 생각한다. 이것보다 더 Dev..
분류 전체보기
최근에 쿠버네티스 클러스터 마이그레이션을 진행했다. 클러스터 마이그레이션을 진행하기 이전에는 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 다..
시대생팀에서 쿠버네티스 클러스터를 옮기는 일을 하면서 새롭게 인프라를 세팅해야 하는 일이 있었다. 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 대역을 할당받아야 한다. 이러한 아무것도 없는 온프레미스인 베어메탈에서 로드밸런서 타입의 서비..
서비스를 만들다 보면 A와 B를 짝지어 주고 싶다는 요구사항을 정말 자주 만나게 된다. 예를 들면 다음과 같다. 개발자 프로젝트(프리랜서 플랫폼)학생 멘토(멘토링 플랫폼)유저 유저(소개팅/친구 매칭)이런 문제들을 한꺼번에 다루는 것을 매칭 시스템(matching system)이라고 부른다. 겉으로 보기에는 검색/추천 시스템과 비슷해 보인다. 하지만 어떻게 문제를 모델링하느냐에 따라 알고리즘 자체가 완전히 다른 세계가 된다. 이 글에서는매칭 시스템이 무엇인지검색/추천 시스템과는 무엇이 다른지어떤 상황에서 매칭 시스템을 쓰는 게 맞는 선택인지대표적인 매칭 알고리즘을 어떻게 이해하면 되는지위와 같은 내용들을 정리해본다. 이번 포스팅에서는 매칭이라는 개념에 대해서 폭넓게 알아볼 예정이며, 그 중에서도 기술..