[강의] 유데미 도커 쿠버네티스 강의 추천 [Docker & Kubernetes : 실전 가이드]
목차
수강목적
도커와 쿠버네티스에 대한 간단한 개념은 일하면서 알게 되었지만
이것저것 뒤섞인 느낌이라 기본기를 튼튼하게 다지고 싶었다.
글또 활동 덕분에 Udemy로부터 쿠폰을 지원받아서 고민없이 쿠버네티스 강의를 선택했다.
강의소개
【한글자막】 Docker & Kubernetes : 실전 가이드
쿠버네티스만 골라서 듣고 싶었는데 나의 기만이였다...ㅎㅎ
이미 알고 있었던 부분이네~ 하면서 도커 부분을 패스할까도 싶었는데
오히려 새로 알게 된 사실도 많았다.
그리고 도커부터 시작해서 쿠버네티스까지 이어지는 전반적인 흐름을 이해할 수 있어서 좋았다.
영어로 진행되는 강의지만, 자막과 스크립트까지 지원된다.
그래서 배속을 하면서 이해하면서 듣고,
이해 안 되는 부분은 스트립트를 다시 한번 보면서 메모하면서 수강했다.
좋았던 점
개인적으로 강의 중 네트워킹 관련 내용이 좋았다.
직접 미니 사이드 프로젝트라던지, 회사 업무로 POC를 해보는 경우에는 작은 로컬 환경을 구성하기에 급급했다.
그러다 보니 하나의 기능만 되면 된다는 생각에 여러 가지 네트워킹 하는 경우까지 개발을 해보진 못했던 것 같다.
그런데 강의를 통해서 규모가 조금 더 확장됐을 때 어떻게 통신을 할지까지 알 수 있어서 좋았다.
좋았던 점은 공부한 내용을 PR 하는 방식의 온라인 스터디를 처음 해본 게 좋았다.
물론 강의를 들으면서 메모를 해두지만, 혼자 이렇게 진행하다 보면 오로지 강의 내용만 알게 된다.
하지만 스터디를 하면서 다른 분이 직접 경험해 본 트러블슈팅이라던지, 메모하면서 내가 빠트렸던 내용이라던지,
강의 내용뿐만 아니라 더 폭넓게 많이 배울 수 있다는 점이 좋은 거 같다.
아쉬웠던 점
하지만 중도이탈해 버렸다. 현생에 치여 (변명 맞음)스터디를 끝까지 참여하지 못했다.
한창 도커와 쿠버네티스 관련 업무를 시작할 때쯤은 스터디도 참여하고 강의를 들었는데
다른 프로젝트가 시작되자 점점 우선순위가 밀렸다
정말 왜 이렇게 공부할게 많은지....ㅜㅜ
배운 점
특히 도커 관련 내용 중에서 이미지와 컨테이너의 동작방식에서 <레이어> 관련 내용을 새로 알게 되었다.
실무에서 아무것도 모르는 채 도커를 사용할 때 코드를 변경할 때마다 무지성으로 빌드를 다시 했다.
그럼 계속 다시 처음부터 이미지를 만드는 건가? 비효율적인데? 이게 맞나?라는 의문점을 가진 적이 있었는데
이 강의를 통해 동작방식을 이해하고 나니 의문이 풀렸다. 그리도 점점 빨라지네? 왜 그러지? 에 대한 답도 찾을 수 있었다.
먼저, 코드변경사항이 생기면 이미지는 다시 빌드해야 하는 게 맞다.
이미지를 만들 때 파일의 스냅샷이 생겨서 컨테이너를 재실행한다고 해도 이전의 스냅샷을 이용하기 때문이다.
그래서 단순히 컨테이너를 재시작한다고 해도 변경사항은 적용되지 않는다.
두번째로, 그렇다고 해서 새로운 변경사항이 생길 때마다 모든 이미지를 다시 다운로드하는 게 아니었다.
컨테이너는 이미지 위에 여러 '레이어'가 겹겹이 쌓여 실행이 되기 때문이다.
그래서 전체 이미지가 아니라 업데이트된 내용'만' 레이어가 쌓이는 것이다. 마치 새로운 커밋이 생기는 것처럼 말이다.
그러다 보니 세번째 의문은 자연스럽게 풀렸다.
중복되는 영역은 하나의 레이어로 관리하기 때문에 당연히 다운로드 속도는 점점 빨라지는 것이었다.
각 이미지마다 같은 레이어를 다운로드 받을 필요가 없어서 시간과 공간적으로도 효율적인 것이었다.
당연히 레이어는 캐시하고 있었다. 다시 빌드할때는 캐시 된 레이어 덕분에 빌드 속도도 빨랐다.
뿐만 아니라 여러 이미지가 공통된 레이어는 공유할 수 있기 때문에 파일시스템에서 차지하는 전체용량도 절약할 수 있었다.
마지막으로 컨테이너가 실행될 때도 레이어 방식이 사용된다는 것까지 알게 되었다.
컨테이너 생성 시 기존의 읽기 전용 레이어 위에 읽기/쓰기 전용 레이어가 추가된다.
기존의 이미지 레이어를 그대로 사용하면서 컨테이너가 실행 중에 생성하는 파일이나 변경된 내용은 읽기/쓰기 레이어에 저장된다.
덕분에 동일한 이미지를 기반으로 여러 컨테이너를 만들 수 있을뿐더러
그 컨테이너들은 완전히 격리되고 각각 실행된다 하더라도 공유데이터가 없이 독립적으로 실행할 수 있는 것이다.
유데미 강의를 통해 내부 동작방식까지 디테일하게 알게 돼서 평소에 궁금하다고 문득 지나갔던 부분들이 해소되었다!
앞으로 계획
마지막으로 내가 강의를 듣고 알게 된 내용을 도커버전, 쿠버네티스 버전으로 두 개의 글로 정리해볼까 한다.
유데미 강의정리 1 - docker 버전
https://pearlluck.tistory.com/800