LabHub

컨테이너 내부 원리 · 네임스페이스 — 무엇을 볼 수 있는가 · 퀴즈

퀴즈: 네임스페이스

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 호스트와 alpine 컨테이너의 네임스페이스 inode 를 비교했더니 pid 와 net 은 다른데 user 와 time 은 같았습니다. 가장 정확한 해석은?

    1. 컨테이너가 제대로 격리되지 않은 비정상 상태다
    2. user 네임스페이스는 커널이 지원하지 않는다
    3. time 네임스페이스가 user 네임스페이스를 대체했다
    4. 도커가 기본적으로 유저 네임스페이스를 쓰지 않기 때문에 나타나는 정상 동작이다
  2. 컨테이너 두 개가 각각 자기 안에서 80번 포트를 열었는데 충돌하지 않았습니다. 이유는?

    1. net 네임스페이스가 포트 번호 공간까지 분리하므로 서로 다른 공간의 80번이다
    2. 도커가 포트를 자동으로 바꿔 준다
    3. 80번은 예약 포트라 중복이 허용된다
    4. 커널이 컨테이너마다 별도의 TCP 스택을 컴파일한다
  3. 쿠버네티스 파드에서 pause 컨테이너의 역할을 가장 정확히 설명한 것은?

    1. net/ipc/uts 네임스페이스를 보유하고 앱 컨테이너들이 그 네임스페이스에 합류한다
    2. 앱 컨테이너의 로그를 모아 전송한다
    3. 앱 컨테이너가 죽었을 때 대신 트래픽을 받는다
    4. 파드의 cgroup 한도를 앱 컨테이너에 배분한다
  4. 다음 중 리눅스 네임스페이스가 분리하는 대상이 **아닌** 것은?

    1. 마운트 테이블
    2. hostname
    3. System V IPC
    4. 프로세스가 쓸 수 있는 메모리 총량
  5. 컨테이너 안에서 `readlink /proc/self/ns/net` 이 호스트와 같은 값을 냈습니다. 무엇을 의미합니까?

    1. 컨테이너가 실행에 실패했다
    2. readlink 출력은 원래 항상 같다
    3. 그 컨테이너가 호스트의 네트워크 네임스페이스를 그대로 쓰고 있다
    4. 네트워크 네임스페이스는 inode 를 가지지 않는다
  6. 컨테이너의 주 명령을 PID 1 로 두는 구조 때문에 생기는 실질적 부담은?

    1. PID 1 은 신호 기본 동작이 적용되지 않으므로 핸들러를 직접 등록해야 하고, 고아 프로세스의 종료 상태도 거둬야 한다
    2. PID 1 은 CPU 우선순위가 가장 높아 다른 프로세스를 굶긴다
    3. PID 1 은 파일을 열 수 없다
    4. PID 1 은 네트워크 소켓을 만들 수 없다