티스토리 뷰

- 프론트엔드, 백엔드, 에이전트 개발자가 잘 소통하기 위해서는 데이터의 특성과 쿠버네티스의 특성을 잘 알아야 함

=> 데이터는 어떤 구조를 가져야 할까? 사용자 환경에서 어떤 데이터와 지표를 수집해야 할까?

- 쿠버네티스 옵저빌리티: https://youtu.be/AVn8F6ki68U?si=yFa1pbN1CfGcvM2w

- 컨테이너, 도커, 쿠버네티스 : https://youtu.be/eRfHp16qJq8?si=hmCxpdwRRVlCSw5l

- K8s 도입하면서 겪은 일들: https://youtu.be/JBGsqsoGxEo?si=YSPOR0J5GVxSgY2c

 

1. Contrainer : 서버의 한 종류

* 서버: 프로그램(소프트웨어)가 실행되는 하드웨어

- 컨테이너를 사용하면 한 대의 서버에서 여러 개의 소프트웨어를 안전하고 효율적으로 운영할 수 있다.

- 소프트웨어가 다운되면 서비스 장애로 이어짐 → 하나의 서버에서는 하나의 소프트웨어를 실행하는게 안전함

- 하나의 소프트웨어에서 여러개의 소프트웨어를 실행하고 싶다 -> 공간을 구분하고자 함 : 가상화기술

- 가상화 기술

1) VM 가상머신: 프로그램을 실행하고 업그레이드하는데 오래 걸림

- 예: 서버가 10개 있다면 3개는 A개발자, 3개는 B개발자, 4개는 C개발자가 만든 애플리케이션 설치

2) 컨테이너 : VM보다 가볍고 빠르다

- 예: 서버가 10개가 있다면 10개 모두 A,B,C가 만든 애플리케이션이 설치되서 관리 됨

 

2. Docker

- 컨테이너를 관리하기 위한 도구로 일종의 프로그램

- dockerfile: 이미지를 만들기 위한 레시피

- docker build : 이미지를 생성(컨테이너의 설계도)

- docker run : 이미지를 실행(컨테이너 생성)

 

3. Docker Compose

- 단일 서버에서 여러 컨테이너를 관리하고 싶을 때

 

4. KUBERNETES(K8s)

- 서버가 여러 대 있는 환경에서 각각의 서버의 도커에게 대신 지시해주는 컨테이너 오케스트레이션

 - K와 S 사이에 8개의 문자가 있어서 K8s라고도 함

- 변화가 빠름(버전 호환 문제, 하위 호환성 유지)

 

1) 리소스

- 쿠버네티스의 요소들

- pod: 내 애플리케이션 서비스가 올라가는 곳(인스턴스 하나)

- svc: pod 앞단에서 네트워크 말단이 되는 리소스

- node: 장비(vm)하나

- ing: 네트워크 외부 트래픽을 받아서 네트워크를 관장하는 리소스

- deployment: 배포와 관련된 리소스

 

2) 도입 배경

- 서브 서비스 운영 → 서버를 따로 할당 받기에는 비용의 문제 → 쿠버네티스 도입

- MSA 환경(여러개의 애플리케이션으로 구성됨) → 기존 서비스는 VM에 운영 유지, 새로운 서비스만 K8s로 운영, 추후 맞는거로 통합

 

3) 배포 구조

- 개발자가 소스코드 작성 > Repository > 이미지 build/Push > yaml파일 > 이미지 Pull/Run 배포

 

4) 핵심개념

- 컨테이너 관리

- 자동화된 배포 및 스케일링

- 로드 밸런싱 및 서비스 디스커버리

- 자동 복구

- 롤링 업데이트 및 롤백

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함