ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION838 / 1500
인프라난이도 중하5분 답변 목표 · 보강본

ConfigMap을 수정했는데 앱 설정이 그대로입니다. 환경 변수·볼륨 마운트·앱 재로딩은 어떻게 다르나요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

ConfigMap 객체 갱신과 컨테이너가 사용하는 설정 갱신은 다릅니다. 환경 변수는 보통 프로세스 시작 시 값이고 볼륨 파일은 갱신될 수 있어도 앱이 다시 읽어야 적용됩니다.

동작 원리와 전제

마운트 방식과 subPath 사용 등에 따라 갱신 동작이 달라질 수 있습니다. 앱이 열린 파일 핸들만 계속 읽거나 캐시한 설정을 쓰면 새 내용이 보여도 동작은 안 바뀝니다. 실제 적용 버전과 값의 검증 상태를 노출합니다.

선택과 실패 처리

재시작이 필요한 설정은 rollout으로 적용하고 동적 설정은 검증된 묶음을 원자적으로 교체합니다. 일부 필드만 새 값인 중간 조합을 피하며 실패 시 마지막 정상값과 경보를 둡니다. 비밀 설정은 로그에 원문을 남기지 않습니다.

구체적인 사례와 검증

환경 변수로 받은 pool_size는 ConfigMap 객체가 바뀌어도 실행 중 프로세스에서 자동 갱신되지 않는 것이 일반적입니다. rollout으로 새 프로세스를 만들거나 앱이 지원하는 동적 설정 경로를 사용해야 합니다. 볼륨 파일 갱신도 감지 방식과 열린 핸들·symlink 처리에 따라 결과가 다를 수 있습니다. 새 파일을 읽으면 먼저 전체 설정을 검증한 뒤 불변 snapshot으로 게시합니다. 필드별로 즉시 적용하면 timeout은 새 값이고 retry는 옛 값인 위험한 조합이 잠시 생길 수 있습니다. 적용 버전을 상태 endpoint에 비밀값 없이 노출하면 저장된 설정과 실행 값의 차이를 확인할 수 있습니다.

객체 수정·파일 변경·프로세스 재시작·잘못된 값·전파 지연을 시험합니다. 모든 Pod가 동시에 같은 값을 읽는다고 가정하지 않습니다. 설정 전달과 앱의 의미 검증·적용 시점은 별도 책임입니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 핵심 구분: ConfigMap 객체 갱신과 컨테이너가 사용하는 설정 갱신은 다릅니다.
  • 선택 조건: 재시작이 필요한 설정은 rollout으로 적용하고 동적 설정은 검증된 묶음을 원자적으로 교체합니다.
  • 검증 기준: 객체 수정·파일 변경·프로세스 재시작·잘못된 값·전파 지연을 시험합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • ConfigMap을 수정하면 환경 변수와 앱 내부 설정도 즉시 바뀐다고 한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • 설정 하나의 타입뿐 아니라 여러 값의 조합과 실제 적용 버전을 어떻게 검증하나요?
  • 읽기 snapshot을 교체할 때 깊은 불변·안전한 공개·이전 독자 수명을 어떻게 유지하나요?
  • 설정이나 새 코드 경로를 꺼도 이미 바뀐 데이터가 남으면 어떤 복구가 필요한가요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기