Kubernetes , Prometheus , Envoy , CoreDNS , containerd , Fluentd

Cloud Native Computing Foundation ( CNCF )

2015 년 7 월에 발표된 2016 년 1 월에 정식 출범 한 Cloud Native Computing Foundation (이하 CNCF)는 혼돈스러운 컨테이너와 관련된 다양한 기술적인 문제들을 오픈소스로 해결하는 하는 것을 목표로하고 있습니다.

CNCF 는 대표적으로 Kubernetes 와 Prometheus 와 같은 클라우드 네이티브 오픈소스 기술들을 추진하고 관리하는 단체입니다.

CNCF Graduated Project

CNCF에서는 프로젝트를 성숙도에 따라서 샌드박스 단계, 인큐베이팅 단계, 졸업 단계로 나눕니다.

프로젝트의 성숙도는 CNCF 위원회 멤버들에 의해서 결정됩니다.

졸업 단계의 프로젝트가 되기 위해서는 졸업 요건을 갖추고 위원회 멤버 과반수 이상의 찬성표를 받아야 합니다

2019년 7월 현재 Graduated Project는 다음과 같습니다.

  • Kubernetes ( Orchestration )
  • Prometheus ( Monitoring )
  • Envoy (Service Proxy)
  • CoreDNS (Service Discovery)
  • containerd (Container Runtime)
  • Fluentd (Logging)

Kubernetes ( Orchestration )

kubernetes logo 200
커뮤니티
라이센스
  • Apache License v2.0
  • 최신 버전은 Ver 1.13.0 (2014.6.7 출시 )
개요
  • Kubernetes 는 컨테이너의 오케스트레이션 도구입니다. Kubernetes 의해 몇 대에서 수천 대의 서버가 하나의 클러스터로 관리되며, 간단한 인터페이스를 통해 그 동안 효율적으로 컨테이너를 배치하고 관리 할 수 있습니다. 이로 인해 수백의 서버 대수가 필요한 애플리케이션 배포도 명령 하나로 간단하게 할 수 있습니다.
  • 컨테이너를 사용하여 PaaS보다 높은 유연성을 가지고 있으며, IaaS 계층을 추상화하여 하이브리드  클라우드를 실현할 수 있습니다.
  • Google 에서사용하던 오케스트레이션 도구 Borg 에서 얻은 10 년 이상의 경험을 바탕으로 개발을 시작한 프로젝트로  최초로  CNCF에 기증 된 프로젝트입니다. CNCF의 핵심 프로젝트 입니다.
특징
  • 개발 프로그래밍 언어 : Go
고려사항
  • 여러 클러스터의 호스트간에 애플리케이션 컨테이너의 배치, 스케일링, 운영을 자동화하기 위한 플랫폼을 제공
  • 도커를 포함한 일련의 컨테이너 도구들과 함께 동작
참고

Prometheus ( Monitoring )

prometheus logo 200
커뮤니티
라이센스
  • Apache License v2.0
  • 최신 버전은 Ver 1.0.1  ( 2016 년 7 월 21 일 출시)
개요
  • Prometheus는 독일 베를린에 본사를 둔 음악 유통 플랫폼 제공자인 SoundCloud사 를 중심으로 개발하는 시계열 데이터 베이스
  • Go 언어로 개발
  • 모니터링 클라이언트 노드에 Docker가 설치되어 있으면, 서버와 클라이언트 그리고 alertmanager 모두 컨테이너로 설치지원
  • 모니터링 노드에 설치된 Prometheus는 Web API로 연결되어 각 노드를 브라우저에서 직접 참조
특징
  • 데이터는 key-value 형태의 NoSQL제품인 LevelDB에 저장
  • Go / Java / Ruby / Python으로 작성된 클라이언트 라이브러리를 GihHub 에서 다운로드
  • Docker 모니터링 용도로 많이 사용됨
고려사항
  • 벤더에 의한 기술 지원은 없으며, 커뮤니티에서만 지원
  • Docker 확대와 함께 앞으로가 기대되는 제품
참고

Envoy (Service Proxy)

커뮤니티
라이센스
  • Apache License v2.0
개요
  • Envoy 는 Lyft가 개발 한 서비스 메쉬입니다.
  • Envoy는 클라우드 네이티브 웹 서비스를 위해 설계된 로드 밸런서입니다.
  • Envoy는 L7 proxy로 큰 현대적인 서비스 지향 아키텍처로 디자인되어 있습니다.
  • Kubernetes 마이크로서비스를 제공하는 Istio 의 핵심 컴포넌트로 주목을 받고 있습니다.
특징
  • 개발 프로그래밍 언어 : C++
고려사항
  • Envoy는 microservices 시스템을 만들 때 필요한 기능을 제공 해주는 side-car proxy.
  • 서비스 메쉬 통신 버스 : 서비스 메쉬의 각 서비스 간의 통신을 제어하는 ​​프록시. 서비스 디스커버리 및  트래픽 제어를합니다.
  • 에지 프록시 : 서비스의 개인 네트워크와 서비스 외부를 연결하는 프록시. 데이터 센터 및 Kubernetes 클러스터 외부에서 액세스를 수신합니다.
참고

CoreDNS (Service Discovery)

커뮤니티
라이센스
  • Apache License v2.0
개요
  • CoreDNS는 Go 언어로 작성된 DNS 서버입니다. 
  • 설정을 유연하게 관리 할 수있는 DNS 소프트웨어입니다. 
  • SkyDNS와 호환이 있고 etcd를 백엔드와 관련된 DNS 서버로 작동합니다. 
특징
  • 개발 프로그래밍 언어 : Go
고려사항
  • CoreDNS는 Kubernetes v1.13에서 기본 DNS 입니다.
참고

containerd (Container Runtime)

커뮤니티
라이센스
  • Apache License v2.0
개요
  • containerd 는 Docker가 기증 한 컨테이너 런타임입니다.
  • containerd는 gRPC 인터페이스를 가진 데몬 컨테이너의 라이프 사이클을 관리하고 있습니다. 
  • 현재는 Docker Engine이 containerd을 이용하는 형태로되어 있습니다. 
특징
  • 개발 프로그래밍 언어 : Go
고려사항
  • CoreDNS는 Kubernetes v1.13에서 기본 DNS 입니다.
참고
  •  containerd는 Docker 컨테이너 런타임으로 사용되고있어 사실상의 표준 컨테이너 런타임라고 할 수 있습니다. 
  • 또한 컨테이너 런타임의 표준 인 OCI (Open Container Initiative)에 준수도 있기 때문에 다양한 프로젝트에서 컨테이너 런타임으로 채용되고 있습니다.

Cotainerd 상세 소개

containerd는 Docker 1.11 이후 Docker 코어 컨테이너 런타임 입니다.

RunC 기반이며, 컨테이너 표준 인 OCI (Open Container Initiative)을 준수하고 있습니다.

containerd 1.1 버전은 Kubernetes를 기본적으로 지원하여, Containerd는 사실상 표준 컨테이너 런타임이라고 할 수 있습니다.

Kubernetes Containerd

Fluentd (Logging)

fluentd logo 200
커뮤니티
라이센스
  • Apache License v2.0
개요
  •  오픈 소스 기반으로 데이터 수집 및 데이터 로깅 도구라는 소프트웨어입니다.
  • fluentd은 Treasure Data가 개발하는 로그 수집 관리 도구
특징
  • C 언어와 Ruby로 개발
  • 여러 대의 서버를 운영하고있을 때 각각의 서버에 쌓이는 로그를 간단한 방법으로 통합
  • 설정이 간단하고 Batch가 아닌 실시간 Streaming으로 처리
고려사항
  • fluentd의 수많은 플러그인을 사용하여 로그를 기반으로한 다양한 유즈케이스에 활용
참고
  • Fluentd는 로그(데이터) 수집기(collector)다. 보통 로그를 수집하는 데 사용하지만, 다양한 데이터 소스(HTTP, TCP 등)로부터 데이터를 받아올 수 있습니다.
  • Fluentd로 전달된 데이터는 tagtimerecord(JSON) 로 구성된 이벤트로 처리되며, 원하는 형태로 가공되어 다양한 목적지(Elasticsearch, S3, HDFS 등)로 전달 합니다.

CLOUD NATIVE COMPUTING FOUNDATION 는?

2015 년 7 월에 발표된 2016 년 1 월에 정식 출범 한 Cloud Native Computing Foundation (이하 CNCF)는 혼돈스러운 컨테이너와 관련된 다양한 기술적인 문제들을 오픈소스로 해결하는 하는 것을 목표로하고 있습니다.

Cloud Native Computing Foundation 는 대표적으로 Kubernetes 와 Prometheus 와 같은 클라우드 네이티브 오픈소스 기술들을 추진하고 관리하는 단체입니다.

Cloud Native Computing Foundation - CNCF Projects

References & Related Links