[Fast Campus] Docker 강의 3

Jul 20, 2019


  • Kubernates
  • Jenkins
  • 멀티 스테이지 빌드
  • Volume
  • Networking
  • Swarm


멀티 스테이지 빌드


  • 명령어에 from 이 2번 온다
  • 하나의 파일에 앞단을 빌드 시키고, 뒷단에 빌드 이미지를 넘겨준다


Volume


  • 컨테이너는 stateless 해야하고, stateless 하려면 container 내의 data 가 있으면 안된다.
  • 하나의 Volume 을 여러개의 container에 공유 했을 때, 더 효율적이다.
  • container 간의 데이터를 공유할 때.
  • I/O 의 성능을 향상 시킬 수 있다!


Volume 관리 유형


  • 외부 Volume
    • host1 에 문제가 생겼을 때, host1 내부에 data 가 있을 경우 host2 에서 새로 생성한 container에서 data 를 사용할 수 없는 문제. 따라서 host 밖으로 Volume 을 빼 놓아야 한다.
    • 네트워크 연결이기 때문에, 속도가 느릴 수 있다. 상황에 맞게 사용하는게 중요하다.
  • 명령어

    $ docker volume ls		// hash 값으로 설정 된 volume 들이 있을 수 있다. (일반적으로 사용하는 volume 은 로컬 volume)
    $ docker create --name test1		// volume 생성
    


Network


  • $ docker … -p

    -p 로 바인딩을 하면 알아서 만들어 줬었다.

  • bridge network
  • overlay network


Kubernetes


  • 구글 클러스터 관리 시스템 borg 에서 기원 (google large scale … 검색하면 논문 하나 나온다, Large-scale cluster management at Google with Borg)
  • 컨테이너 어플리케이션 배포, 스케일링, 관리를 자동화 해주는 오픈 소스 시스템


  1. 주요 특징
    • 상태관리 : 노드에 대한 상태를 유지시켜준다.
    • 스케쥴링 : 조건에 맞는 노드를 찾아서 컨테이너를 배치해준다.
    • 클러스터링 :
  2. k8a 아키텍처 - Master
  3. k8a 아키텍처 - Node


  • k8a 구성요소 - Pod

    1개의 Pod 에 여러개의 container 가 들어간다. Pod 은 배포의 단위, container 의 타입은 같을 수도 있고 다를 수도 있다.

    • Pod 내에 있는 컨테이너끼리는 로컬콜
    • 한 Pod 은 고유 IP 를 갖는다

용어


  • SSH, 동작 원리
  • eval
  • sticky session