[Kubernetes] 이중 가상화 환경에서의 Pod 통신 트러블슈팅
·
Kubernetes
개요"워커 노드의 Pod에서 API Server로 요청하면 타임아웃이 발생한다"Tailscale VPN 위에 Calico VXLAN을 올린 이중 가상화 환경에서 발생한 문제다. 워커 노드에서 직접 요청하면 정상인데, Pod에서 요청하면 타임아웃이 걸린다.이 글에서는 문제의 진단 과정, 근본 원인 분석, 그리고 해결 방안을 다룬다.문제 상황증상 분류케이스결과마스터 노드 Pod → API Server✅ 정상 (403 응답)워커 노드 → API Server✅ 정상 (403 응답)워커 노드 Pod → API Server❌ 타임아웃403 응답이 오면 정상이다. API Server에 요청이 도달했다는 의미이기 때문이다.테스트 결과정상 케이스 - 워커 노드에서 직접 요청:$ curl -k https://100.x.x..
[Kubernetes] Calico CNI와 VXLAN - 클라우드 불가지론적 네트워크 설계
·
Kubernetes
개요"어떤 클라우드에서든 동일하게 동작하는 네트워크"이것이 하이브리드 클라우드 환경에서 CNI를 선택할 때 가장 중요한 기준이었다. AWS, GCP, 홈서버 어디든 노드를 추가할 수 있어야 하고, 매번 네트워크 설정을 바꿀 필요가 없어야 한다.이 글에서는 Calico를 선택한 이유와 VXLAN 캡슐화 방식의 장단점을 다룬다.CNI 선택: Calico후보군 비교CNI장점단점선택CalicoNetworkPolicy, QoS 지원, 안정적VXLAN 사용 시 이중 캡슐화✅ 채택CiliumeBPF 기반 고성능, L7 정책복잡한 설정, 소규모에서 오버스펙❌Flannel단순함, 가벼움NetworkPolicy 미지원❌Weave암호화 내장성능 이슈, 유지보수 불확실❌Calico 채택 이유NetworkPolicy 지원: P..
[Kubernetes] 홈서버와 GCP로 하이브리드 쿠버네티스 클러스터 구축하기
·
Kubernetes
개요"클라우드 비용은 줄이고, 가용성은 높이고"이 두 가지 목표를 동시에 달성하기 위해 하이브리드 클라우드 아키텍처를 선택했다. 집에 놀고 있는 미니 PC를 활용하면서, GCP의 무료 크레딧으로 컨트롤 플레인의 안정성을 확보하는 전략이다.이 글에서는 하이브리드 쿠버네티스 클러스터의 아키텍처 설계와 Tailscale VPN 구성 과정을 다룬다.왜 하이브리드 클라우드인가?문제 상황홈서버를 단독으로 운영하면 몇 가지 문제가 있다:구분홈서버 단독클라우드 단독비용저렴 (전기세만)고비용가용성낮음 (정전, 네트워크 장애)높음확장성물리적 한계무제한관리직접 관리관리형 서비스홈서버는 비용 면에서 유리하지만, 정전이나 인터넷 장애가 발생하면 서비스가 중단된다. 반대로 클라우드만 사용하면 비용이 부담된다.목표적은 비용으로 높..
[Kubernetes] 멀티 테넌트 환경에서의 요청 우선순위 관리
·
Kubernetes
개요멀티 테넌트 쿠버네티스 클러스터에서는 여러 팀과 서비스가 동일한 리소스를 공유한다.이런 환경에서 "모든 요청을 평등하게 처리한다"는 원칙은 오히려 문제가 된다. 결제 시스템의 API 호출이 로그 수집기의 요청과 동일한 우선순위로 처리된다면? 트래픽이 폭주할 때 정작 중요한 요청이 대기열에 밀려날 수 있다.쿠버네티스는 이 문제를 두 가지 레벨에서 해결한다:레벨대상메커니즘API 서버kubectl, 컨트롤러의 API 요청PriorityLevelConfiguration + FlowSchema스케줄러Pod 배치 및 리소스 할당PriorityClass두 메커니즘은 서로 대체할 수 없다. API 요청 처리와 Pod 스케줄링은 완전히 다른 문제이기 때문이다.이 글에서는 각 메커니즘의 동작 방식과 설정 방법을 실전 ..
Kubernetes QoS(Quality of Service)란??
·
Kubernetes
개요Kubernetes 클러스터에서 워크로드의 안정성과 성능을 보장하려면 QoS 개념을 반드시 이해해야 한다.QoS(Quality of Service)란 시스템 리소스가 부족할 때 어떤 워크로드에 우선순위를 부여할지 결정하는 메커니즘이다.Kubernetes에서는 세 가지 영역의 QoS를 고려할 수 있다:QoS 영역제어 대상내장 지원Resource QoSCPU, 메모리O (Kubernetes 기본)Network QoS네트워크 대역폭X (CNI 플러그인 필요)Storage QoS디스크 I/O, IOPSX (StorageClass 파라미터)Resource QoSPod의 spec.resources 필드를 통해 필요한 리소스 양을 정의할 수 있다. 이때 정의하는 패턴에 따라 Pod의 QoS 클래스가 자동으로 결정..
[Helm] Helm Chart 생성 및 Github Action 연동
·
Kubernetes
1. 개요다국적 시스템의 언어 Dictionary를 쉽게 관리하기 위한 translation-ai 시스템을 개발하였다.시스템을 간편하게 설치하고 Dictionary를 팀에서 공유할 수 있도록 Helm Chart를 통해 패키징하기로 하였다. 또한 현재는 초기 버전으로 ai 번역에 대한 기본 기능만 제공해주고 있기 때문에, 추후 업데이트를 간편하게 할 수 있도록 Github Actions와 연동하였다.Helm Chart 구조 작성 및 Github Action 연동 과정에 대해서 공유하려고 한다.2. Helm Chart2.1. Helm Chart란?Helm은 쿠버네티스용 패키지 관리 도구로, 애플리케이션 배포에 필요한 여러 매니패스트 파일을 ‘차트’ 단위로 묶어서 간편하게 설치, 업데이트 및 관리할 수 있게 ..