2024.03.13 TIL

Oneik·2024년 3월 13일
0
post-thumbnail

Question

도커 컨테이너(Docker Container)

  • Q-1) 외부에서 컨테이너에 접속할 때, 접속되지 않는 이유는?
  • Q-2) 외부에서 컨테이너에 접속하기 위해서 어떻게 해야하나?

도커 바인드 마운트(Bind Mount)와 볼륨(Volume)

  • Q-3) 바인드 마운트란 무엇인가?
  • Q-4) 볼륨이란 무엇인가?
  • Q-5) 바인드 마운트와 볼륨의 차이는 무엇인가?

쿠버네티스(Kubernetes)

  • Q-6) 쿠버네티스란 무엇인가?
  • Q-7) 쿠버네티스 클러스터의 구조에 대해 설명하시오
  • Q-8) Pod의 생명주기에 대해서 설명하시오
  • Q-9) 디플로이먼트란 무엇인가?
  • Q-10) 외부에서 파드가 실행하는 애플리케이션에 접근하도록 하려면 어떻게 해야하나?

Answer

도커 컨테이너(Docker Container)

  • A-1) 도커의 컨테이너는 호스트 시스템과 연결되어 있지만, 내부 네트워크로 연결되어 있다. 그래서 외부에서는 접근하기 위해서는 호스트 시스템의 인터페이스를 통해서 접근해야만 한다
  • A-2) 호스트 시스템과 컨테이너의 포트를 맵핑해야한다. 포트란, 특정 IP주소 내에서 실행되는 프로그램을 식별하기 위해 사용된다. 쉽게 말하면, 컨테이너로 접근할 수 있는 길 안내를 해준다는 것이다

도커 바인드 마운트(Bind Mount)와 볼륨(Volume)

  • A-3) 바인드 마운트는 호스트 시스템의 특정 디렉터리를 마운트 상태로 만들어, 컨테이너가 해당 디렉터리의 데이터를 사용 가능한 상태로 만든다
  • A-4) 볼륨은 도커의 호스트의 파일 시스템에 저장되고, 도커가 직접 관리하며, 볼륨의 데이터를 컨테이너 간에 공유할 수 있다
  • A-5) 볼륨은 도커가 직접 관리해주지만, 바인드 마운트는 사용자가 직접 관리해야 하고, 볼륨은 보다 더 안전하고, 컨테이너 간 볼륨 데이터를 안전하게 공유할 수 있다. 그리고 볼륨은 백업 및 이동시키기 쉽다

쿠버네티스(Kubernetes)

  • A-6) 쿠버네티스란, 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈소스 시스템이다
  • A-7) 쿠버네티스의 클러스터는 control plane과 work node로 구성되어 있다. Control Plane은 work node를 관리하고, 컨테이너들의 그룹인 파드의 관리와 파드를 work node에 분배하는 역할을 한다. work node는 컨테이너들이 돌아가는 일종의 컴퓨터다
  • A-8) kubectl을 통해 API 서버에 파드 생성 요청 > 컨트롤러 매니저가 파드를 생성하고, 이러한 상태를 API에 전달(아직 워커 노드에 적용할지 결정X) > 스케쥴러는 포드가 생성되었다는 정보 인지 후, 어떤 워커 노드에 적용할지 결정 후, 파드 실행 요청 > 워커 노드의 kubelet이 CRI에 요청하여 파드가 워커 노드에 만들어지고 사용가능한 상태가 됨
  • A-9) 디플로이먼트(Deployment)는 파드와 레플리카셋에 대한 선언적 업데이트를 제공한다. 선언적이라는 용어는 사용자가 원하는 최종 상태를 선언하고, 쿠버네티스 시스템이 현재 상태를 그 최종 상태로 만들기 위해 작업을 수행한다는 의미다. 디플로이먼트는 파드의 생성, 스케일링 및 업데이트를 관리한다
  • A-10) 서비스 오브젝트를 이용한다. 서비스 오브젝트에는 NodePort, LoadBalancer, ExternalName 등이 존재하는데, NodePort 같은 경우는 특정 파드에서 실행하는 컨테이너의 특정 포트를 노출해서 이 특정 포트를 통해 컨테이너에 접근하도록 한다.
profile
초보 개발자의 블로그입니다

0개의 댓글

관련 채용 정보