Kubernetes
-
Kubernetes scale-out 중 pod port에 대한 고민Kubernetes 2023. 3. 29. 16:28
개요 이번 프로젝트에서 서버를 kubernetes 환경에 배포하여 구축하고 있었다. 부하가 많을 것을 예상하고 scale-out을 고려하고 있었는데 spring boot의 jar 파일로 배포되는 서버는 포트가 기본적으로 8080이고 포트 번호 8080으로 서버가 scale-out되면 포트가 중복되는 것이 아닌지 고민하게 되었다. 다른 사람들과 고민했을 때는 포트가 중복될 수 있기 때문에 랜덤 포트가 지정되도록 설정을 해야된다고 하기도 했다. 하지만 kubernetes 환경에서는 그럴 필요가 없었다. Kubernetes 네트워크 service pod는 kubernetes에 올라갈 때 IP가 랜덤하게 지정되고 리스타트 때마다 또 변하기 때문에 엔드포인트를 고정하기 어렵다. 게다가 여러 pod가 같은 애플리케..
-
Kafka streams로 kafka 내부 데이터 처리Kafka 2022. 1. 13. 14:16
Kafka streams Kafka Streams는 Stream API로 구축된 애플리케이션이고, 브로커와 별도로 구성된다. //Stream API : 컬렉션, 배열등의 저장 요소를 하나씩 참조하며 함수형 인터페이스(람다식)를 적용하며 반복적으로 처리할 수 있도록 해주는 기능 kafka 내부에서 메시지 파이프라인을 구성한다고 생각할 수 있다. 따라서 브로커의 특정 토픽을 구독하여 일련의 로직을 처리한 뒤에, 다시 다른 토픽으로 publish한다. 쉽게 말하면 kafka내부에 있는 데이터에 가공처리한 후 다시 다른 토픽이나 같은 토픽으로 넣어주는 역할을 한다. Kafka streams는 라이브러리로 제공되기 때문에 단순히 main 함수 내에서도 구현이 가능하고, 특정한 프레임워크에 종속되지 않을 수 있다...
-
Kafka connect로 kafka와 여러 서비스 연결하기Kafka 2022. 1. 12. 12:30
Kafka connect??? kafka connect는 kafka와 다른 데이터 시스템 사이에 데이터를 스트리밍해주는 오픈소스 툴이다. kafka connect는 쉽고 간단하게 메시지 파이프를 구성하도록 도와준다. 데이터베이스 전체를 읽을 수 있고, metrics 정보도 모을 수 있다. kafka connect 구성 connector connect 내부의 실제 메시지 파이프라인 connect에 connector를 구성할 땐 connect에 connector 관련 설정을 전달하면 됨 구성된 connector는 주기적으로 메시지를 확인하고, 새로운 메시지가 있으면 파이프라인을 통해 흘려 보낸다. Source connector 외부 애플리케이션에서 kafka로 데이터를 가져오는 역할 외부 애플리케이션 -> ..
-
Kubernetes 위에 kafka 구축 - strimziKafka 2022. 1. 11. 10:32
Kafka를 수동으로 운영하려면 수많은 구성 요소를 꼼꼼히 설정해야 하므로 일이 매우 복잡해진다. Strimzi에서 제공하는 오퍼레이터를 사용하여 Apache Kafka 설정을 순조롭게 원활히 배포한다. strimzi github page https://github.com/strimzi/strimzi-kafka-operator GitHub - strimzi/strimzi-kafka-operator: Apache Kafka running on Kubernetes Apache Kafka running on Kubernetes. Contribute to strimzi/strimzi-kafka-operator development by creating an account on GitHub. github.com ..