subicura님의 [초보를 위한 쿠버네티스 안내서] 쿠버네티스 시작하기 강의를 듣고 기록한 내용이다.
도커의 기본 개념과 쿠버네티스를 활용하는 장점을 기록한다.
도커와 쿠버네티스는 애플리케이션을 쉽게 배포하고 관리하는 기술이다.
✔ 도커 → 하나의 컨테이너를 만들고 실행하는 도구
✔ 쿠버네티스 → 여러 개의 컨테이너를 자동으로 관리하는 도구
쉽게 말해, 도커는 “컨테이너를 만들고 실행하는 것”이고,
쿠버네티스는 “많은 컨테이너를 똑똑하게 운영하는 것”이다.
💡 “도커는 레고 블록을 만드는 것, 쿠버네티스는 이 블록으로 거대한 도시를 짓는 것” 🎯
- 예제 시나리오: 실제 서비스 운영 예시
1️⃣ 도커로 웹 서버 컨테이너를 만든다 (예: Nginx, DB, API 서버 등)
2️⃣ 도커 컨테이너를 여러 개 실행해서 서비스한다 (각 컨테이너가 하나의 앱 역할)
3️⃣ 쿠버네티스를 이용해서 트래픽이 많아지면 컨테이너를 자동으로 추가하고,
4️⃣ 서버가 고장 나면 쿠버네티스가 컨테이너를 자동으로 복구해서 운영 유지
도커는 앱을 실행하는 “컨테이너 시스템”,
쿠버네티스는 이를 “자동으로 운영하고 관리하는 시스템”!
도커는 컨테이너 기술을 제공하는 플랫폼이다.
컨테이너를 관리하는 조선소(Shipyard)의 역할로 보면 된다.
도커를 이용해 실행되는 가상환경(컨테이너) 이다.
비유를 하면 실제 운항 중인 배(Ship) 라고 보면된다.
도커(조선소)에서 만들어지고 바다(운영 환경)에서 독립적으로 운항한다.
모든 실행환경을 컨테이너로, 어디서든 동작하고 쉽고 효율적이다.
Devloper → Build → Ship → Run
코드작성 → 도커이미지 만들기 → 만든 이미지를 도커허브나 저장소에 저장 → 도커이미지를 컨테이너로 실행
서버관리자 입장에선 편함. 도커이미지만 잘 만들어주면 띄우는건 굉장히 쉬움
4개의 앱을 3개씩 총 12개의 컨테이너를 관리할 수도 있는데, 수가 굉장히 많아질 수 있음.
손이 많이 감
도커 서버 1,2,3에 컨테이너를 실행하려면
docker stop app && docker run …
_ ssh 하나하나 일일이 관리하기 어려움.
도커를 많이 사용하다보면 빈 공간이 많이 생기기 마련. 빈 공간은 서버가 여러개가 있는데, 컨테이너가 실행이 안되어 있는 상태.
어떤 서버가 여유가 있는지 알려면 모니터링을 하든가 까다로움.
v1 , 일부는 v2 로 만듬
문제가 생기면 v1으로 롤백, 롤아웃/롤백 손이 많이 가네
서비스 검색은 현재 2개의 프로그램 proxy, web이 있다면, 프록시에 web을 바라보라고 설정함. web이 한개 더 생기면 LoadBalancer를 중간에 두어서 부하 분산을 해줌. 프록시는 LoadBalancer를 바라보게 함.
서비스 노출 Gateway
퍼블릭 영역에 프록시 서버를 두고 내부 프라이빗에 컨테이너를 연결하면 된다.
복잡한 컨테이너 환경을 효과적으로 관리하기 위한 도구
컨테이너 관리도구 춘추전국시대… swarms(도커에서 만든) , 쿠버네티스
> kubectl get node
> kubectl get namespace
> kubectl get po -n monitoring
상태체크 → 차이점 발견 → 조치 ((Loop))


컨테이너를 배포하는게 아니라 Pod을 배포하는 것임.
Pod : 가장 작은 배포 단위
전체 클러스터에서 고유한 ip를 할당
여러개의 컨테이너가 하나의 Pod에 속할 수 있음
ReplicaSet : 여러개의 Pod을 관리
Deployment : 배포버전을 관리. 내부적으로 ReplicaSet을 이용