파드 사용자 네임스페이스

Pod user namespaces

컨테이너 내부의 사용자 ID를 호스트의 다른 ID로 매핑합니다.

···
html
<div class="stage" data-phase="0"><div class="title">USER ID MAPPING</div><div class="row mapping"><div class="panel">CONTAINER<br><b>root · UID 0</b></div><div class="boundary">→</div><div class="panel">HOST<br><b class="mapped">UID ?</b></div></div><div class="sub">same process, different host identity</div></div>
css
.stage{width:min(94vw,760px);height:min(88vh,330px);padding:clamp(9px,2.6vmin,20px);border:1px solid var(--line);border-radius:14px;background:var(--surface);font:600 clamp(12px,2.5vmin,16px)/1.3 "Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif;display:flex;flex-direction:column;gap:clamp(6px,1.7vmin,12px);overflow:hidden;position:relative}.stage *{min-width:0}.stage .title{color:var(--accent);font-weight:800}.stage .sub{color:var(--muted)}.stage .row{display:flex;align-items:center;gap:clamp(5px,1.6vmin,12px)}.stage .panel{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(6px,1.6vmin,12px)}.stage .mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:clamp(12px,2.5vmin,15px)}.stage .grow{flex:1}.stage .on{color:var(--accent)}.mapping{flex:1;justify-content:center}.mapping .panel{width:39%;text-align:center}.mapping b{display:block;color:var(--accent);margin-top:9px}.boundary{height:65%;border-left:3px dashed var(--accent-3);display:grid;place-items:center;padding:0 10px;font-size:clamp(22px,5vmin,38px)}.stage[data-phase="1"] .boundary{border-color:var(--accent);color:var(--accent)}.stage[data-phase="2"] .mapped{font-size:0}.stage[data-phase="2"] .mapped:after{content:'UID 100000';font-size:clamp(12px,2.5vmin,16px)}.stage[data-phase="2"] .mapping .panel:last-child{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--surface))}
js
const stage=document.querySelector('.stage');let phase=0;function advance(){phase=(phase+1)%3;stage.dataset.phase=String(phase)}const timer=setInterval(advance,1200);stage.addEventListener('pointerdown',()=>{clearInterval(timer);advance()})

사용자 네임스페이스를 켠 파드에서는 컨테이너 안의 root가 호스트에서는 비특권 사용자 ID로 매핑될 수 있습니다. 컨테이너 경계를 넘는 사고의 영향을 줄이는 방어층입니다.

데모는 내부 UID 0이 경계를 지나 호스트의 별도 UID로 보이는 과정을 보여줍니다. 쿠버네티스 1.36에서 안정 기능이며, 볼륨과 런타임의 호환성은 실제 환경에서 확인해야 합니다.

언제 쓰나

컨테이너 권한을 줄여 노드 침해 영향을 낮추려는 클러스터에서 사용합니다.

페이지로 열기 ↗