반응형
쿠버네티스란?
- 마이크로서비스의 개발과 운영을 위한 런타임 환경이고 점차 중요성이 커지고 있음.
- 리눅스 파운데이션(Linux Foundation)에서 관리
- 구글에서 개발됨.
- 다양한 확장을 제공하는 쿠버네티스중심으로 광대한 생태계가 펼쳐지고 있음.
- 도커 컨테이너를 실행할 수 있고, 마이크로서비스를 위한 인프라 구성 가능.
- 도커에 대한 코드 의존성이 없음.
- 참고페이지 : https://kubernetes.io
라이선스
- 아파치 라이선스
버전및 종류
- 미니큐브
- 노트북에서 개발과 테스트 시스템을 설치하기 위한 버전.
- 참고페이지 : https://github.com/kubernetes/minikube
- kops
- AWS(Amazon Web Services)와 같은 여러 타입의 환경에서 쿠버네티스 클러스터 설치를 가능하게 하는 툴.
- 참고페이지 : https://github.com/kubernetes/kops
- 구글클라우드는 구글 컨테이너 엔진에서 쿠버네티스를 지원함.
기능
- 여러 노드로 구성된 하나의 클러스터에서 도커 컨테이너를 실행함.
- 장애 안정성을 달성할 수 있음.
- 장애 발생 시 도커 컨테이너를 재시작할 수 있음. 컨테이너가 실행되고 있던 원래 노드가 더 이상 사용할 수 없는 경우에도 재시작가능.
- 로드 밸런싱을 지원하고 여러 노드에 부하를 분산시킬 수 있음.
- 서비스 탐색을 지원함.
- 도커 컨테이너에서 실행되는 마이크로서비스는 쿠버네티스를 통해 서로를 쉽게 찾을 수 있고 통신가능함.
- 도커 컨테이너 레벨에서 동작하므로 마이크로서비스에는 쿠버네티스에 대한 코드 의존성이 없음.
- 마이크로서비스를 구현할 때 대부분의 모든 프로그래밍 언어와 프레임워크를 지원한다는 것을 의미.
개념
- 노드(Node) : 쿠버네티스가 실행되는 서버, 노드는 클러스터로 구성됨.
- 포드(Pod) : 함께 서비스를 제공하는 여러개의 도커 컨테이너, 포드의 도커 컨테이너는 도커 볼륨을 공유가능하기때문에 효율적으로 데이터를 교환할 수 있음.
- 레플리카셋(Replica set) : 항상 특정 개수의 포드 인스턴스를 실행하게 함, 레플리카셋을 사용하면 부하를 포드에 분배가능함. 즉, 시스템 장애시 안정성 갖음.
- 디플로이먼트(Deployment) : 레플리카셋을 생성, 필요한 도커 이미지를 제공함.
- 서비스(Service) : 포드에 접근할 수 있게 함. DNS에 하나의 이름으로 등록, 고정 IP 주소를 사용해 클러스터 전체에서 통신가능함. 외부의 요청을 라우팅 할 수 있음.
라우팅
- 로드밸런서를 통한 라우팅
- 쿠버네티스는 상용환경에서 로드 밸런서를 생성할 수 있음.
- ex) 아마존환경에서 쿠버네티스는 클러스터의 노드 포트에 접근할 수 있도록 ELB(Elastic Load Balancer)를 설정함. 로드 밸런서로 사용하기 위해 LoadBalancer 서비스 타입이 사용됨.
- 인그레스 라우팅
- 쿠버네티스는 인그레스(Ingress) 라는 확장 프로그램을 제공함
- 인터넷 서비스 접근을 설정하고 변경가능함.
- 로드 밸런싱을 구현하거나 SSL을 종료하거나, 가상 호스트를 구현할 수 있음.
- 참고페이지 : https://kubernetes.io/docs/concepts/services-networking/ingress
예시
- 쿠버네티스 예시는 아래 참고페이지를 참고.
- 쿠버네티스 최소 설치 버전인 미니큐브활용.
장점
- 마이크로서비스의 일반적인 문제(로드 밸런싱, 라우팅, 서비스검색)을 해결함.
- 코드 의존성이 없음.
- 쿠버네티스는 운영과 배포를 포함함.
- 쿠버네티스 플랫폼은 표준을 준수함으로써 매크로 아키텍처를 정의함.
결론
- 쿠버네티스는 동기 마이크로서비스의 문제점을 해결함.
- 쿠버네티스는 각 포드의 IP 레벨에서 각 포드에 유입된 쿠버네티스 서비스의 IP 주소 트래픽을 분산시킴으로 로드 밸런싱을 보장함.
- 서비스의 로드 밸런서 또는 노드 포트를 통해 라우팅을 처리함.
- 컨테이너 재시작과 로드 밸런싱을 통해 복원력을 얻을 수 있음.
- 히스트릭스와 같은 라이브러리를 사용하면, 타임아웃 또는 서킷 브레이커를 구현하는데 유용할 수 있음.
- 엔보이(Envoy) 와 같은 프록시는 히스트릭스의 대안일 수 있음.
- 참고페이지 : https://github.com/lyft/envoy
- 하나의 패키지 내에서 쿠버네티스는 클러스터의 서비스 탐색, 로드 밸런싱, 복원력, 확장성을 포함한 마이크로서비스 환경을 완벽하게 지원함.
728x90
300x250
'좋아하는 것_매직IT > 10.microservice' 카테고리의 다른 글
19.마이크로서비스, 마이크로서비스아키텍처에서 운영이 중요한 이유는 몰까요? (0) | 2021.01.13 |
---|---|
18.마이크로서비스, PaaS 그리고 클라우드 파운드리를 알아보자 (0) | 2021.01.13 |
16.마이크로서비스, 마이크로서비스 플랫폼을 알아보자. (0) | 2021.01.13 |
15.마이크로서비스, 컨설과 아파치 httpd서버를 이용한 동기 마이크로서비스 시스템을 알아보자. (0) | 2021.01.12 |
14.마이크로서비스, 넷플릭스 스택에 대해서 알아보자. (0) | 2021.01.12 |