-
격리의 안쪽 — namespace와 cgroup으로 OS를 나누기 (QoS 등급까지 실측)
A1에서 ‘컨테이너=namespace(격리)+cgroup(제한)’이라고 했다. 이번엔 그 안쪽을 연다. QoS 3등급(Guaranteed/Burstable/BestEffort) Pod를 만들어 requests/limits가 실제 cpu.max·memory.max로 내려가는 걸 실측하고, namespace 6종 중 user는 기본적으로 호스트와 공유돼 ‘완전…
-
[UML] 클래스 다이어그램의 네 관계 — 화살표가 아니라 ‘수명’을 읽는 법
UML 클래스 다이어그램의 *–(합성)·o–(집합)·–>(연관)·..>(의존)을 화살표 모양이 아니라 객체의 ‘수명’으로 읽는다. 집합=탈착 가능, 합성=한 몸이라는 흔한 직관이 왜 반대인지 포켓몬 게임 코드로 구분하고, 여기에 일반화(상속, ◁────)와…
-
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)라는…
-
[관측 확장 #2] 접속자를 지도 위에 올리기 — 똑같이 생긴 “No data” 를 네 갈래로 가르는 법
접속자 IP 를 좌표로 바꿔 Grafana Geomap 에 올리는 일에서 어려운 쪽은 배선이 아니라 빈 패널의 원인을 가르는 일이었습니다. 라벨 폭발로 로그가 상류에서 버려지는 것,…
-
ConfigMap·Secret — 코드와 값을 떼어놓기 (그리고 cgroup으로 수미상관)
같은 이미지를 dev·prod에서 그대로 쓰되 바뀌는 값만 밖에서 주입한다 — 그 장치가 ConfigMap(설정)과 Secret(민감값)이다. 실제 kubectl 콘솔로 주입을 확인하고, ‘Secret은 암호화가 아니라 base64’라는 함정과, limits가…
-
[관측 확장 #1] 활동 모니터를 PostgreSQL 위에 다시 그리기 — 누적 카운터와 순간 표본은 다른 물건이다
진단 화면은 베낄 수 있지만 그 화면을 떠받치는 계측은 베낄 수 없습니다. SQL Server 의 활동 모니터를 PostgreSQL 대시보드로 옮기면서, 누적 카운터와 순간 표본의 차이…