ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. 개요 - 도커와 쿠버네티스
    Learn/Docker 2021. 4. 20. 22:45

    [ 나에게 도커가 필요한 이유 ] 

    우리 회사는 4년마다 새 데스크톱을 준다. 

    4년이면 그 사이 어마어마한 일들이 벌어진다. 

    즉, 내 리눅스 PC는 엉망진창 뒤죽박죽이 되어있고 뭘 건드렸는지도 기억이 잘 안난다. 

    새 PC를 셋팅하다보면 모든 프로그램이 리소스와 환경을 공유하다보니 dependency 이슈같은 문제들이 생긴다. 

    뭐 어째어째 해결할수야 있지만 스트레스와 시간 낭비가 심하다. 

     

    이 모든 문제를 해결해주는게 도커인건 알고있었는데.. 어째 이 좋은걸 안배우고 미루다가 이제서야 공부한다. 

    그냥 이런 저런 이유를 따질 것 없고 요즘 도커는 필수인 것 같다. 

    [ VM VS Docker ]

    VM은 기존의 OS위에 한 겹을 더 올리는 느낌이라 느리다. 

    도커는 그냥 격리만 해주는 느낌이라 가볍다. 

     

    [ Docker 장점 ]

    도커의 장점은 일단 도커만 설치되어있으면 어디든 컨테이너를 올릴 수 있다. 

    (더이상 "ubuntu python 3.7 install" 따위를 검색하지 않아도 된다!!!)

    소프트웨어로 먹고사는 직딩이들은 셋팅의 고통을 다들 느껴봤을테니 뭐 길게 적을것도 없다. 

     

    다른 장점은 공짜인 것 !!

    splunk를 실컷 익혔지만 다른 곳에선 쓰지 못하는 나에겐 참 와닿는 장점이다. 

    많은 회사에서 유료 소프트웨어 구매는 쉽지 않은 일이다. (비용과 프로세스의 늪)

     

    그리고 어떤 환경, 프레임워크, 언어를 사용했던 배포 방식이 동일하다. (표준성이라 부름)

     

    이 외의 장점이야 뭐 찬양할게 끝이 없다만 생략.

     

    [ 기타 특징 ]

    컨테이너는 "이미지"를 만들고 저장하고 불러오는 형식으로 사용한다. 

     

    각각 컨테이너의 설정은 환경변수로 제어한다. 

    이게 무슨의미냐면, 보통 jupyter notebook을 사용할때 아래와 같이 치고 생성된 config파일을 설정해준다. 

    (ip주소, 포트, 허용ip, 비번 등등)

    jupyter notebook --generate-config

    그런데 도커에서 이런 방식을 쓴다면 컨테이너를 올릴때마다 그 안에 접속해서 설정파일을 만들고 설정하고...

    참으로 번거로운 일이 아닐 수 없다. 

    그러니까 아래와 같이 컨테이너를 올릴 때 환경변수로 필요한 설정을 전달 할 수 있도록 구성해야 한다는 뜻이다. 

    sudo docker run -it -p 8888:8888 jupyter/datascience-notebook

    어떻게 하는지는 아마 강의 듣다보면 알려주겠지? (아마도 Dockerfile에 답이 있을듯)

     

     

    [ 주의할점 ]

    컨테이너를 삭제하고 새로 만들면 모든 데이터가 "초기화" 된다. 

    저장이 필요한 파일은 외부 파일 시스템에 저장해야한다. 

    (AWS는 S3. minio라는것도 좋다던데 나중에 찾아보자)

     

    세선이나 캐시도 저장이 필요한데 memcached나 redis같은걸 쓴다고 한다. 

    (이건 잘 이해안되는데 배우다보면 알겠지)

     

     

    [ 쿠버네티스 (Kubernetes) ] 

    여러 대의 서버와 서비스를 쉽게 관리하기 위한 도구

     

    대표적으로 해주는 일은

     - 스케줄링 : 로드 벨런싱이나 죽은 서버의 컨테이너 다른 곳에 띄우기 같은 것을 함. 

     - 클러스터링 : 여러 개의 서버를 마치 하나인 것 처럼 사용하도록 해줌. 

     - 서비스 디스커버리 : 특정 서비스가 어느 서버에 떠있고 어떤 ip를 사용하는지 같은 정보를 알려줌. 

                                 (아무래도 쓸때는 하나처럼 쓰는게 좋지만 필요시엔 찾을 수 있어야되니까)

     

    'Learn > Docker' 카테고리의 다른 글

    5. 이미지 만들고 배포하기  (0) 2021.04.29
    4. Compose  (0) 2021.04.26
    3. 기초명령어 2편  (0) 2021.04.26
    2. 설치, 기초명령어 1편  (0) 2021.04.25

    댓글

Designed by Tistory.