soobook.ioKubernetes, Node Componentskubelet은 Pod를 실행하고, Container Runtime은 컨테이너를 관리하며, kube-proxy는 네트워크 트래픽을 라우팅한다. kubelet kubelet은 모든 Worker Node에서 실행되는 에이전트이다. API Server로부터 PodSpec을 받아 해당 노드에서 컨테이너가 정상적으로 실행되고 있는지 보장하는 역할을 한다. flowchart LR API["kube-apiserver"] -->|Watch PodSp...1d ago·4 min read
soobook.ioKahn's Algorithm위상정렬(Topological Sort)은 방향 비순환 그래프(DAG)의 정점들을 간선 방향을 거스르지 않도록 나열하는 알고리즘이다. 위상정렬은 방향 그래프의 모든 간선 (u, v)에 대해, u가 v보다 먼저 나오도록 정점들을 선형으로 나열하는 것이다. 핵심 전제 조건이 있다: 방향 그래프(Directed Graph) 여야 한다 순환(Cycle)이 없어야 한다 — 즉 DAG(Directed Acyclic Graph)여야 한다 방향 그...1d ago·4 min read
soobook.ioRate LimitingRate Limiting은 일정 시간 내 허용되는 요청 수를 제한하는 메커니즘이다. Rate Limiting 은 특히나 대용량 트래픽을 목표로 하는 서버에서는 필수적으로 들어가는 개념이다. 서비스 가용성을 보호하기 위한 안전장치이자, 트롤링도 방지한다. 항시 대용량 트래픽이 있는 서버가 아니더라도 예상치 못한 트래픽 폭주로 비용이 폭주하거나 일시적인 장애가 생기는 것을 방지해준다. Rate Limit 을 구현하는 몇 가지 알고리즘을 살펴보자....2d ago·3 min read
soobook.ioCircuit BreakerMSA 에서 하나의 서비스 장애가 전체 시스템으로 전파되는 것을 Cascading Failure 라 한다. Circuit Breaker는 이를 방지하는 패턴이다. Circuit Breaker 는 원래 주식시장에서 주가가 급락할 때 시장에 미치는 충격을 완화하기 위해 매매를 일시적으로 중단하는 '비상 브레이크' 장치로 알려져있다. 엔지니어링에서는 다른 뜻으로 사용된다. 다음과 같이 MSA에서 서비스 A가 서비스 B를 호출하는 상황을 가정해보자....2d ago·3 min read
soobook.ioIstio, Service Mesh마이크로서비스 아키텍처에서 서비스 간 통신은 빠르게 복잡해진다. Istio는 이 복잡성을 인프라 레벨에서 해결하는 서비스 메시(Service Mesh) 플랫폼이다. Service Mesh? 서비스 메시는 마이크로서비스 간의 통신을 인프라 계층에서 투명하게 관리하는 전용 레이어이다. Traceability 를 위한 레이어이다. MSA 에서 애플리케이션이 증가하면 다음 문제가 발생한다: 서비스 간 통신 복잡성: N개의 서비스는 최대 N*(N...2d ago·2 min read