참고 블로그
https://potato-yong.tistory.com/126
https://coding-start.tistory.com/m/383
쿠버네티스 로깅 파이프라인
이번에 CKA 자격증 따면서 배운 쿠버네티스와
AWS 강의 들으며 흥미 돋은 Kafka와
EFK 조합을 사용하여 쿠버네티스 로깅 파이프라인을 구성해보려고 한다.
구성도
fluentd → kafka → elasticsearch → kibana → visualization
logstash 없어도 될듯 ..?
fluentd
- 여러 다양한 리소스에서 로그 및 이벤트를 수집하여 이를 여러 대상으로 전달하도록 설계
- 주로 컨테이너 로그 수집
- daemonset으로 생성
kafka
- helm을 사용하여 설치 (https://coding-start.tistory.com/m/383)
elk 구축 서버 cpu:2core, ram:4gb
1. helm을 사용해서 kafka 생성
2. elk 구성(deployment, service)
각 서비스별 최소 사양 확인
온디맨드 요금 !!
헬름 : 쿠버네티스의 package manager (필요시 설치)
vsc extensions terraform 설치하듯...
구성 전 고려사항
EKS IP
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/update-cluster.htmlAmazon
EKS에서 사용할 IP주소가 5개 이상 필요
EKS 서브넷에 owned ENI가 생성
서브넷 추가로 여러 개 할당
kafka in k8s
Kubernetes에 Apache Kafka를 배포하면 확장성, 리소스 활용도 및 이식성이 향상됩니다. Kubernetes의 동적 프로비저닝 및 확장, 고가용성 기능, 관리 용이성은 Kafka 클러스터 운영을 단순화합니다. 다른 서비스, 선언적 구성 및 커뮤니티 지원과의 통합을 통해 이 조합은 최신 DevOps 관행에 효과적이며 이벤트 중심 아키텍처의 민첩성을 촉진합니다.
/////////////////////////////
Apache kafka KRaft
https://hoing.io/archives/4029
https://syk531.tistory.com/89
kafka 2.8 버전에서 도입된 기능이다.
Zookeeper 대신 kafka cluster 메타데이터 관리하여 기존 zookeeper+kafka 이중 운영 간소화
kafka 자체에서 메타데이터 관리
/////////////////////////////
Broker Node
- kafka cluster의 모든 노드
- Kafka에서 데이터를 저장하고 처리하는 서버
- 이러한 브로커들은 토픽으로 구성된 메시지 스트림을 생성, 저장 및 전달하는 역할 수행 - 클러스터에 속한 모든 브로커들은 동일한 데이터를 복제하고 클러스터 전체에서 서로 통신
pod/my-kafka-controller
- kafka cluster의 컨트롤러 역할
- 클러스터의 상태 관리
service/my-kafka
- 클라이언트가 kafka cluster에 접근할 수 있도록 함.
- 클러스터의 외부로 노출됨
service/my-kafka-controller-headless
- kafka cluster 엔드포인트를 제공하는 Headless 서비스
- 개별 파드의 IP를 노출하여 클러스터 내 각각의 인스턴스에 직접 접근할 수 있도록 함
statefulset/my-kafka-controller
- kafka는 영구 볼륨이 있는 statefulset으로 배포
- 데이터를 저장 및 관리
- 파드를 관리하고 안정적인 호스트 이름과 스토리지 보장
- pod/my-kafka-controller은 statefulset이다.
서비스 엔드포인트(service/my-kafka)를 사용하여 kafka에 액세스하여 이벤트를 생성하고 사용할 수 있다.
'AWS > Project' 카테고리의 다른 글
[K8S 환경에 Kafka 및 EFK 배포] TroubleShooting (0) | 2024.04.19 |
---|---|
[K8S 환경에 Kafka 및 EFK 배포] EKS 구성 (0) | 2024.04.18 |
DocumentDB mongo셸로 DB 접근 및 Fail-over(장애 조치) (1) | 2024.02.09 |
온프레미스에서 VPC Endpoint를 사용하여 S3로 프라이빗 접근 (0) | 2024.01.13 |
여러 Account 및 VPC에서 S3 공유(로그 중앙화) (0) | 2024.01.05 |