Kubernetes 153

[k8s] ingress-nginx canary 배포 설정

개요현재 EKS에서 서비스를 운영하고 있는데, 서비스에 변경이 필요할 때마다 서비스 중단이 발생하는 상태이다. 이를 조금 완화하고자 카나리(canary) 배포를 구성해보려고 한다. 카나리 배포는 2022.01.15-Canary Updates에서 살펴보았던 것처럼 k8s의 service와 deployment로도 구성할 수 있지만, 이번 글에선 ingress로 구성하는 방법을 적어두려고 한다. 카나리 배포Canary Deployment란 소프트웨어 업데이트를 점진적으로 적용하여 전체 시스템에 미치는 영향을 최소화하고 새 버전의 안정성을 확인하는 배포 전략이다. 대규모 애플리케이션이나 서비스에서 새로운 기능이나 변경 사항이 문제를 일으키는 경우 빠르게 대응할 수 있도록 한다.기존 글에서 작성했던 카나리 ..

Kubernetes 2025.12.16

[k8s] MetalLB - 베어 메탈 쿠버네티스 로드 밸런서

개요예전에 kubeadm으로 구성되어 있던 쿠버네티스 클러스터에는 MetalLB라는 서비스로 로드 밸런서 유형의 서비스를 사용하고 있었다. 최근 로컬 컴퓨터에서 테스트용 쿠버네티스 클러스터를 구축하면서 ingress를 어떻게 처리할지에 대한 고민을 가지고 있었는데, 마침 해당 서버스가 생각났다. 늦게나마 이번 기회에 해당 서비스가 어떤 역할을 담당하는지 살펴보려고 한다. MetalLBMetalLB는 표준 라우팅 프로토콜을 사용하는 베어 메탈 쿠버네티스 클러스터 용 로드밸런서 구현체이다.🤔 베어 메탈(Bare Metal)가상화나 클라우드 계층 없이 물리적인 서버에서 직접 운영하는 환경을 의미한다.베어 메탈 쿠버네티스 클러스터란 온프레미스 환경에서 운영하는 쿠버네티스 클러스터라고 이해하면 될 것 같다.쿠..

Kubernetes 2025.12.12

[k8s] kind 설치 및 사용법

kindkind는 Kubernetes in Docker의 줄임말로, 컨테이너 ‘노드’를 사용하는 로컬 쿠버네티스 클러스터를 실행하기 위한 도구이다. 다시 말하면 컨테이너 기반의 쿠버네티스 클러스터이다.다중 노드 클러스터, Linux, macOS, Windows를 지원하며 CNCF 인증을 준수하는 k8s 설치 프로그램이다. 쿠버네티스 자체를 테스트하기 위해 설계되었으나, 로컬 개발이나 CI에도 사용할 수 있다. 평소 쿠버네티스 관련 테스트를 수행하면 Killercoda를 사용했는데, Killercoda의 경우에는 무료 사용자는 세션이 1시간까지만 유지된다는 번거로움이 있다. 반면 kind는 사용자가 직접 구성하는 클러스터이기 때문에 장시간 테스트를 수행하는 경우에는 보다 적절할 수 있을 것 같다. 설치..

Kubernetes 2025.12.11

[k8s] ConfigMap - pod에서 파일처럼 취급하기

개요쿠버네티스를 한참 배울 시점 ConfigMap은 주로 환경 변수 등으로 여러 Pod에서 공유하며 사용하기 위한 리소스라고 이해했었다. 하지만 최근 ConfigMap으로 볼륨을 만들어 Pod에 마운트하는 방식을 보게 되어 기록한다. ConfigMapConfigMap은 키-값 쌍으로 기밀이 아닌 데이터를 저장하는 데 사용하는 리소스다. ConfigMap은 크게 아래와 같은 용도로 활용된다.- 컨테이너 명령어의 인수- 컨테이너 환경 변수- 애플리케이션에서 읽기 전용 볼륨으로 추가- 쿠버네티스 API를 사용하여 ConfigMap을 읽는 Pod 내 실행 코드 작성이번 글애서 확인할 부분은 바로 애플리케이션에서 읽기 전용 볼륨으로 추가하는 방법이다. 방법구성 방법을 적어둔다. 1. ConfigMap 생성c..

Kubernetes 2025.11.28

[FreeLens] 터미널을 WSL로 변경하기

개요FreeLens도 다른 IDE와 마찬가지로 터미널 기능을 제공하고 있는데, Windows의 경우에는 기본적으로 PowerShell을 사용하고 있다.PowerShell도 좋은 프로그램이지만, 평소 Ubuntu를 사용해 kubectl 명령어를 사용해왔다 보니 아무래도 편안하게 작업하기는 어려웠다. 따라서 이번 글에서는 FreeLens가 사용하는 터미널을 WSL로 변경해보려고 한다. + 참고터미널 세션은 하단의 + (New Tab) 버튼 > Terminal session을 통해 사용할 수 있다. 방법은 다음과 같다. 터미널 변경1. 설정 페이지로 이동왼쪽 상단 메뉴 > File > Preferences를 클릭하거나 Ctrl + , 를 눈러 설정 페이지로 이동한다.2. TERMINAL SHELL PATH..

Kubernetes 2025.11.20

[FreeLens] ResouceMap 확장 프로그램 설치

개요2025.11.13-[Freelens] k8s IDE 설치 및 사용에서 쿠버네티스 IDE인 렌즈에 대해서 알아보았다. 렌즈를 사용하면 명령어를 사용하지 않고도 여러 유형의 리소스 목록을 확인할 수 있다는 장점이 있지만, 리소스 간의 관계를 확인하기는 조금 어렵다.이번 글에서는 리소스 간의 관계를 볼 수 있도록 도와주는 RescoureMap이라는 확장 프로그램을 설치해보려고 한다. ResouceMapFreeLens는 OpenLens에서 사용되던 확장 프로그램들을 변환해 두었는데, 그 목록은 확장 프로그램 위키에서 찾을 수 있다.그 중 ResouceMap은 쿠버네티스 리소스와 그 관계를 실시간 강제 방향 그래프로 나타내는 확장 프로그램이다. 설치설치 방법은 다음과 같다. 1. 확장 프로그램으로 접근..

Kubernetes 2025.11.19

[Freelens] k8s IDE 설치 및 사용

FreelensFreelens는 쿠버네테스 클러스터를 관리하고 모니터링하기 위한 그래픽 인터페이스를 제공하는 쿠버네티스 IDE이다. 이름에서 알 수 있듯 무료고 오픈소스다.기존에는 Lens(OpenLens)를 주로 사용했는데, Lens의 커뮤니티 버전의 지원이 미흡해지면서 Lens에서 갈라져 나온 프로젝트인 것 같다. FreeLens는 Lens를 포크한 프로젝트고 오픈소스 버전을 유지 관리하는 것을 목적으로 하고 있다. 설치설치는 공식 홈페이지를 통해 다운로드하여 설치한다.이 글에서는 윈도우에 설치했다. 클러스터 추가접속할 클러스터를 추가하는 방법은 크게 두 가지가 있다. 방법 1. kubeconfig 추가왼쪽 메뉴에서 File > Add Cluster 클릭하거나 키보드에서 Ctrl + Shift..

Kubernetes 2025.11.18

[k8s] Helm Release 원복 현상

개요이전에 EKS 버전 업그레이드를 수행하면서 보안 이슈가 존재하던 nginx-ingress-controller 버전 업그레이드도 함께 진행했다. nginx-ingress-controller는 helm으로 설치를 했는데, 최근 확인해 보니 버전이 업그레이드 이전으로 돌아가있었다. 버전을 업그레이드하면 기존 버전으로 재배포가 이뤄지고 심지어는 Helm Release를 삭제해도 기존 버전으로 자동 배포가 이뤄지고 있었다. 원인을 파악하고 해결한 이력을 적어둔다. 원인 - HelmRelease 리소스 존재쿠버네티스 이벤트를 확인해보니 아래와 같은 이력이 존재하는 것을 확인했다.Normal ReleaseSynced helmrelease/nginx-ingress managed release 'nginx-..

[Jupyterlab] jupyterlab-sql-explorer - SQL GUI 플러그인

개요예전에 jupyterlab / jupyter notebook을 사용할 때, 데이터베이스를 다루는 경우 jupyterlab-sql이라는 플러그인을 아주 잘 사용했다. 하지만 이 플러그인은 이제 유지보수가 이뤄지고 있지 않아 최신 버전의 jupyterlab에서는 사용이 불가능한 상태이다. 그래서 jupysql을 계속 사용해 왔는데, 최근 jupyterlab-sql을 대체할 만한 플러그인을 확인하여 기록해 둔다. jupyterlab-sql-explorerjupyterlab-sql-explorer는 사용자가 JupyterLab에서 SQL을 실행하고 데이터베이스 객체를 탐색할 수 있도록 도와주는 플러그인이다.JupyterLab 내에서 테이블, 뷰와 같은 데이터베이스 객체를 탐색할 수 있고, SQL문을 직접 ..

Kubernetes 2025.06.20

[EKS] aws-auth - EKS 클러스터에서 IAM 확인

개요업무에서 EKS에 접속해서 사용 중인데, 클러스터 내에서 내가 어떤 AWS 계정을 사용해서 작업을 수행하는지 확인하고 싶다. 찾아보니 EKS 접근 제어를 aws-auth라는 걸로 관리하는 것 같은데, 이번 글에서는 aws-auth에 대해서 조금 알아보려고 한다. aws-authEKS의 접근을 구성하는 방식 중 하나로, 클러스터가 IAM 보안 주체로 aws-auth라는 이름의 ConfigMap을 취급하는 방식이다. 즉, IAM 사용자, Role, Group을 Kubernetes RBAC과 연결하는 역할을 한다.aws-auth ConfigMap은 EKS 접근 제어를 관리하고 Kubernetes RBAC을 설정하며, EKS 노드 그룹이 클러스터에 조인할 수 있도록 허용하는 등의 역할을 담당한다.다만 공식..

Kubernetes 2025.06.19