클라우드와 컨테이너의 기초

CI/CD 파이프라인에서 만든 컨테이너 이미지를 스테이징 환경에서 시험하여 합격했다. 이 이미지를 운영 환경에 내보내는 방법으로 가장 적절한 것은?

  1. A운영용으로 같은 소스 코드에서 이미지를 한 번 더 빌드하고, 그것을 운영 환경에 내보낸다
  2. B시험한 이미지에 latest 태그를 다시 붙이고, 운영 환경에서는 latest를 지정하여 가져온다
  3. C시험한 이미지 그 자체를 다이제스트로 지정하여 운영 환경에 내보내고, 환경별 차이는 설정으로 부여한다
정답과 해설 보기

정답: C. 시험한 이미지 그 자체를 다이제스트로 지정하여 운영 환경에 내보내고, 환경별 차이는 설정으로 부여한다

파이프라인에서는 빌드로 만든 산출물(여기서는 이미지)을 변경하지 않는 것으로 취급하여, 같은 것을 스테이징에서 운영으로 차례로 진행시킵니다. 같은 소스 코드라도 다시 빌드하면 의존하는 라이브러리나 베이스 이미지의 버전이 바뀔 수 있어, 시험한 것과 다른 것이 운영에 나가 버립니다. 태그는 나중에 다른 이미지에 옮겨 붙일 수 있으므로, 확실하게 같은 이미지를 가리키려면 내용으로 정해지는 다이제스트를 사용합니다. 접속 대상 같은 환경별 차이는 이미지에 넣지 않고 환경 변수 등의 설정으로 부여합니다.

이 분야 연습하기 분야로 돌아가기

클라우드와 컨테이너의 기초의 다른 문제

  1. 위와 같이 데이터베이스의 접속 대상을 이미지에 써 넣지 않고, 컨테이너를 시작할 때 환경 변수로 전달하도록 했다. 이 설계의 주된 이점으로 가장 적절한 것은?
  2. 여러 서비스가 연계하여 동작하는 시스템에서, 이용자의 요청 하나가 어떤 서비스를 어떤 순서로 거쳤고 각각에서 시간이 얼마나 걸렸는지 조사하고 싶다. 관측 가능성을 위한 데이터 중 가장 적합한 것은?
  3. Linux의 컨테이너를 실현하는 커널 기능 중 네임스페이스(namespaces)와 cgroups(컨트롤 그룹)의 역할의 조합으로 올바른 것은?
  4. Linux 호스트에서 Docker를 사용하여, 호스트와는 다른 배포판을 바탕으로 한 이미지로 컨테이너를 시작하고, 그 안에서 uname -r(커널의 릴리스를 표시하는 명령)과 cat /etc/os-release(배포판 정보를 표시하는 명령)를 실행했다. 결과의 설명으로 올바른 것은?
  5. 컨테이너 이미지와 컨테이너의 관계에 대한 설명으로 올바른 것은?