개념 (Concepts)
용어와 프레임워크를 ‘이게 뭘 하는가’라는 한 줄 정의로 먼저 못박고, ‘내가 감각한 것 → 실제 역할 → 어떤 불편을 없앴나’ 순으로 다시 정리하는 개념 모음. 컨테이너·쿠버네티스·관측 등 인프라 개념을 엔지니어의 시선으로 갈래별로 나눕니다.
-
[개념] fork — 프로세스·저장소·프로젝트에서 복제되는 것은 각각 무엇인가
하루에 fork라는 단어를 세 번 다른 뜻으로 썼습니다. 터미널에서 프로세스를 복제할 때, 깃허브에서 버튼을 누를 때, 데비안과 우분투의 관계를 이야기할 때. 세 층위에서 실제로 복제되는…
-
Docker vs Podman — 같은 컨테이너, 다른 철학 (daemonless·rootless·Pod)
Podman은 흔히 ‘Docker 대체재’로 소개되지만, 실은 컨테이너를 바라보는 철학 자체가 조금 다르다. Docker는 개발자 경험과 생태계를, Podman은 리눅스 표준·보안·쿠버네티스 친화성을 앞세운다. daemonless·rootless·Pod 세 축으로 둘의…
-
코드를 안 고치고 추적하는 법 — 관측과 보안 후킹의 공통 조상
서비스는 멀쩡히 도는데 로그를 남기려면 보통 모든 함수를 고쳐야 한다. 그런데 Tempo·Beyla는 코드 수정 없이 추적을 해냈다. 그 마법의 정체는 auto-instrumentation이고, 알고 보면 보안 업계가…
-
관측 스택 한 줄 정의 — Prometheus·Loki·Tempo·Grafana, 그리고 Beyla·Linkerd
관측 프레임워크는 이름만 보면 다 비슷하다. ‘어떤 불편을 없애려고 만들어졌나’로 읽으면 갈린다. Prometheus는 측정항목, Loki는 로그, Tempo는 추적, Grafana는 시각화. 그리고 코드 무수정 관측의 다리인…
-
격리의 안쪽 — namespace와 cgroup으로 OS를 나누기 (QoS 등급까지 실측)
A1에서 ‘컨테이너=namespace(격리)+cgroup(제한)’이라고 했다. 이번엔 그 안쪽을 연다. QoS 3등급(Guaranteed/Burstable/BestEffort) Pod를 만들어 requests/limits가 실제 cpu.max·memory.max로 내려가는 걸 실측하고, namespace 6종 중 user는 기본적으로 호스트와 공유돼 ‘완전…
-
eBPF 정리 — 커널을 고치지 않고 커널을 바꾸는 법, 그리고 “어디까지 eBPF 인가”라는 질문
eBPF 는 커널을 재컴파일하거나 재부팅하지 않고 커널 안에서 내 코드를 돌리는 장치입니다. 검증기·JIT·맵·훅이라는 구조를 먼저 정리하고, 그 위에서 관측 자동계측과 네트워크 데이터패스가 각각 무엇을 얻고…
-
규모의 벽 — iptables에서 IPVS·eBPF로 (직접 IPVS 모드로 전환해 실측)
B1의 iptables 룰은 서비스마다 선형으로 쌓인다. 서비스가 수천 개면? kube-proxy를 실제로 IPVS 모드로 전환해 /proc/net/ip_vs를 떠서, 확률 트릭이 사라지고 rr 스케줄러로 균등 분배되며 ClusterIP가 kube-ipvs0에…
-
Service는 실체가 없다 — kube-proxy가 iptables로 트래픽을 꽂는 법
A4에서 ‘ClusterIP는 IP지만 :Port 고정이라 L4’라고 했다. 그 ‘왜’의 실체는 iptables다. 지금 이 클러스터의 kube-proxy에서 실제 룰을 그대로 떠서, ClusterIP가 어떤 프로세스도 아니라 KUBE-SERVICES▸KUBE-SVC(확률 분기)▸KUBE-SEP(DNAT)라는…
-
ConfigMap·Secret — 코드와 값을 떼어놓기 (그리고 cgroup으로 수미상관)
같은 이미지를 dev·prod에서 그대로 쓰되 바뀌는 값만 밖에서 주입한다 — 그 장치가 ConfigMap(설정)과 Secret(민감값)이다. 실제 kubectl 콘솔로 주입을 확인하고, ‘Secret은 암호화가 아니라 base64’라는 함정과, limits가…
-
Service·ClusterIP·NodePort·Ingress — 트래픽을 어떻게 꽂나
Pod IP는 수시로 바뀐다. 그 앞에 고정된 접속 창구를 세우는 것이 Service다. Service(ClusterIP·NodePort·LoadBalancer)와 Ingress를 한 줄 정의로 갈라내고, 실제 kubectl 콘솔로 ‘Pod가 바뀌어도 ClusterIP는 그대로’임을…