2017-12-23 40 views
2

대형 온라인 응용 프로그램의 경우 k8s를 사용하여 실행하십시오. 규모는 일일 활동 사용자 500,000 일 수 있습니다.Kubernetes에서 Kafka를 사용하는 것이 좋은 방법입니까?

K8S 내부의 응용 프로그램은 메시징 기능을 필요 - 펍/하위를가 이러한 옵션은 다음과 같습니다

  • 카프카
  • RabbitMQ
  • 레디 스는

카프카

그것은 사육사가 필요 os에서 실행하는 것이 디스크 I/O에 달려 있습니다. 그래서 k8s 클러스터에 설치한다면 어떻게 될까요? 성능이 떨어질까요?

k8ka 클러스터 외부에 Kafka를 유지하려면 k8s 클러스터 내부의 응용 프로그램에서 Kafka를 연결하십시오. 그 성능은 어떻습니까? 그들은 다른 층에 있고 천천히 움직이지 않을 것입니까?

RabbitMQ

그것은 카프카보다 느린,하지만 매일 활동 사용자 50 만 응용 프로그램에 대한, 그것은 충분? 그렇다면 좋은 선택 일 수도 있습니다.

redis

다른 옵션입니다. 어쩌면 가장 간단한 것일 수도 있습니다. 하지만 인터넷에서 가끔 메시지를 잃을 수도 있습니다. 사실이라면 그건 끔찍한 일입니다.


그래서, 가장 중요한 것은 인이 사용 사례에 좋은 여부, K8S에 (도 사육사와 함께) 카프카를 사용할 수 있습니까?

답변

2

예, Kubernetes에서 Kafka를 실행하는 것은 좋습니다. 이 예를 확인하십시오 : https://github.com/Yolean/kubernetes-kafka. 여기에는 ZooKeeper와 Kafka가 StatefulSet으로 포함되어 있습니다.


추신. 귀하의 질문에 Kubernetes에서 서비스를 실행하면 즐겁습니다. Google에서 서비스 이름과 "kubernetes"를 검색하고 예제 목록을 찾을 수 있습니다. 많은 예가 여기에 있습니다 : https://github.com/kubernetes/charts.

+0

답변 해 주셔서 감사합니다. 내가 물어 보았을 때, 순수 OS를 사용하는 것과 동일한 성능과 도커를 사용하는 k8의 성능이 비슷합니까? – online

+0

kubernetes에는 항상 오버 헤드가 있다고 생각합니다. 나는 그것을 벤치마킹하지 않았지만 kubernetes는 오버 헤드가 있다고 읽었습니다. 나는 그것을 google 할 것이다. 개인적으로는,하지만 오버 헤드가 편리함을 감안할 때 떨어지지 않을 수 있음을 알았습니다. –

+0

Kafka Streams도 멋지다. –

1

당신은 또한 다음과 같은 프로젝트에 좀 걸릴 수 있습니다 :

https://github.com/EnMasseProject/barnabas

그것은뿐만 아니라는 Kubernetes와 OpenShift에서 카프카를 실행에 관하여이다. StatefulSet을 영구적 인 볼륨 또는 메모리에 배치하여 (목적을 개발하거나 테스트하기 위해) 배포 할 수 있습니다. Kafka Connect 및 Prometheus 메트릭에 대한 배포도 제공합니다.