이번에는 휴가를 길게 내고 영국으로 혼자 여행을 갔습니다. 살면서 이렇게 멀리 여행을 와본 것은 처음입니다. 비행기를 타고 12시간 가까이 하늘을 날아, 완전히 낯선 환경을 보게 되었습니다. 건물 양식과 음식 그리고 언어와 문화 등 다양한 부분에서 많이 달랐습니다. 여행을 하는 와중에도 틈틈이 현지 사람들과 이야기를 나누면서 영국에서의 분위기를 온전히 느끼려고 했습니다. 어렸을 때는 세상이 굉장히 좁다고 느꼈습니다. 학교와 집, 그 사이에 있는 분식집과 문방구 그리고 가끔 친구들과 놀러 가는 피시방이 내가 갈 수 있는 삶의 반경이라고 생각했습니다. 하지만 시간이 지나면서 고등학생이 되어 멀리 떨어져 다른 지역에서 생활하게 되었고, 대학생이 된 후에는 서울에서 생활하게 되었습니다. 그렇게 다양한 환경을 다..
전체 글
IF YOU LET ME BE THE CODEIntroduction 인프라 관련 세미나에는 항상 참여하는 편인데, 가장 기본이 된 주제가 바로 이 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 대역을 할당받아야 한다. 이러한 아무것도 없는 온프레미스인 베어메탈에서 로드밸런서 타입의 서비..