Kubernetes 서비스를 사용하여 Event Streams을(를) IBM Cloud Object Storage에 연결
Kafka Connect 런타임을 Kubernetes Service 클러스터에서 실행하도록 합니다. 그런 다음 IBM Cloud® Object Storage 싱크 커넥터를 시작하여 Event Streams 토픽의 Kafka 데이터를 IBM Cloud® Object Storage 서비스 인스턴스에 아카이브합니다.
커넥터는 Kafka에서 메시지의 일괄처리를 이용하고 메시지 데이터를 클라우드 Object Storage 서비스의 버킷에 오브젝트로 업로드합니다.
1단계. 전제조건 설치
다음 소프트웨어 및 서비스가 설치되어 있는지 확인하십시오.
-
Event Streams 인스턴스 - 표준 또는 엔터프라이즈 플랜. 신임 정보를 작성해야 합니다.
-
하나 이상의 버킷이 있는 클라우드 Object Storage 서비스의 인스턴스.
-
IBM Cloud® Kubernetes Service 클러스터입니다. 테스트 목적으로 무료 클러스터를 프로비저닝할 수 있습니다.
클러스터에 대한 CLI 액세스도 필요합니다. 자세한 정보는 CLI 및 API 설치를 참조하십시오.
-
최신 버전의 Kubectl입니다.
2단계. kafka-connect 저장소 복제
필수 파일이 있는 다음 두 개의 저장소를 복제하십시오.
3단계. Kafka Connect 구성 작성
-
이 구성은 한 번만 설정해야 합니다. Event Streams에서는 나중에 사용하도록 저장합니다.
이벤트 스트림 샘플 프로젝트에서
kafka-connect/IKS directory, 파일을 편집하고connect-distributed.properties한 곳에서<BOOTSTRAP_SERVERS>바꾸고 *를<APIKEY>바꿉니다 Event Streams 신임 정보로 바꾸십시오.<BOOTSTRAP_SERVERS>을(를) 쉼표로 구분된 목록으로 제공하십시오. 올바르지 않은 경우 오류가 발생합니다.<APIKEY>이(가) 시스템의 일반 텍스트에 표시되지만 IBM Cloud® Kubernetes Service(으)로 푸시할 때 시크릿입니다.안정성과 확장성을 이유로 Kafka Connect가 여러 작업자를 실행할 수 있습니다. Kubernetes Service 클러스터에 둘 이상의 노드가 있으며 여러 연결 작업자를 원하는 경우
kafka-connect.yaml파일을 편집하고replicas: 1항목을 편집하십시오. -
그런 다음 다음 명령을 실행하십시오.
다음 명령을 실행하여 시크릿을 작성하십시오.
kubectl create secret generic connect-distributed-config --from-file=connect-distributed.properties다음 명령을 실행하여 configmap을 작성하십시오.
kubectl create configmap connect-log4j-config --from-file=connect-log4j.properties
4단계. Kafka Connect 배치
다음 명령을 실행하여 kafka-connect.yaml 파일에 구성을 적용하십시오.
kubectl apply -f ./kafka-connect.yaml
5단계. Kafka Connect가 실행 중인지 유효성 검증
Kafka Connect가 실행 중인지 확인하려면 다음 예제와 같이 포트 8083에서 kafkaconnect-service로 포트를 전달하십시오.
kubectl port-forward service/kafkaconnect-service 8083
포트 전달에 사용한 터미널을 연 상태로 두고 다음 단계에 다른 터미널을 사용하십시오.
그런 다음 Connect REST API를 http://localhost:8083에서 사용할 수 있습니다. API에 대한 자세한 내용은 다음을 참조하세요
Kafka Connect REST 인터페이스를 참조하세요.
따라서 이제 Kafka Connect 런타임이 Kubernetes Service에 배치되어 실행 중입니다. 그런 다음 Object Storage 커넥터를 구성하고 시작합니다.
6단계. cos-sink JSON 파일 구성
적어도 사용자 정보와 함께 필수 특성이 완성되도록 kafka-connect-ibmcos-sink/config/에 있는 cos-sink.json 파일을 편집하십시오. cos.object.deadline.seconds 시간, cos.interval.seconds, cos.object.records 구성 속성은 선택 사항으로 나열되어 있지만 이 속성 중 하나 이상을 기본값이 아닌 값으로
설정해야 합니다.
cos-sink.json 파일 특성
cos-sink.json 파일의 플레이스홀더를 고유 값으로 바꾸십시오.
| 파일 특성 | 설명 |
|---|---|
| cos.api.key | 필수. 클라우드 Object Storage 서비스 인스턴스에 연결하는 데 사용되는 API 키입니다. |
| cos.bucket.location | 필수. 클라우드 Object Storage 서비스 버킷의 위치입니다. 예를 들어, 지역 버킷 eu-gb 또는 글로벌 버킷 eu에 해당합니다. |
| cos.bucket.name | 필수. 데이터를 작성할 클라우드 Object Storage 서비스 버킷의 이름입니다. |
| cos.bucket.resiliency | 필수. 클라우드 Object Storage 버킷의 복원력입니다. cross-region, regional 또는 single-site 중 하나여야 합니다. |
| cos.service.crn | 필수. 클라우드 Object Storage 서비스 인스턴스의 CRN입니다. 올바른 CRN을 입력했는지 확인하십시오. 이는 이중 콜론으로 끝나는 자원 인스턴스 ID입니다 (예: crn:v1:staging:public:cloud-object-storage:global:a/8c226dc8c8bfb9bc3431515a16957954:b25fe12c-9cf5-4ee8-8285-2c7e6ae707f6::). |
| cos.endpoint.visibility | 선택사항입니다. 공용 인터넷을 통해 클라우드 Object Storage 서비스에 연결하려면 public 을 지정하십시오. IBM Cloud 네트워크 내부에서 실행되는 커넥터에서 연결하려면 프라이빗을 지정합니다(예: IBM Cloud Kubernetes Service 클러스터). 기본값은 공용입니다. |
| cos.object.deadline.seconds | 선택사항입니다. Kafka에서 첫 번째 레코드를 읽는 작업과 지금까지 읽은 모든 레코드를 Cloud Object Storage 오브젝트에 쓰는 작업 사이의 초 수(Connect Task 인스턴스에 대해 측정된 벽시계 시간)입니다. 이 속성은 주제에 대해 생성되는 Kafka 레코드 사이에 긴 일시 정지가 있는 상황에서 유용할 수 있습니다. 이 커넥터가 수신하는 레코드는 항상 지정된 시간 내에 Object Storage에 기록됩니다. |
| cos.object.interval.seconds | 선택사항입니다. Kafka에서 첫 번째 레코드를 읽는 작업과 지금까지 읽은 모든 레코드를 Cloud Object Storage 오브젝트에 쓰는 작업 사이의 초 수(Kafka 레코드의 시간소인으로 측정)입니다. |
| cos.object.records | 선택사항입니다. 오브젝트에 결합할 최대 Kafka 레코드 수입니다. |
IBM Cloud 콘솔을 사용하는 Object Storage 신임 정보 가져오기
- 대시보드에서 Object Storage 서비스를 찾으십시오.
- 서비스 타일을 클릭하십시오.
- 서비스 인증 정보를 클릭하십시오.
- 새 인증 정보를 클릭하십시오.
- 이름 및 역할과 같은 새 인증 정보에 대한 세부사항을 완료한 후 추가를 클릭하십시오. 새 인증 정보가 인증 정보 목록에 표시됩니다.
- 인증 정보 보기를 통해 이 인증 정보를 클릭하여 JSON 형식의 세부사항을 표시하십시오.
7단계. 해당 구성을 사용하여 커넥터 시작
다음 명령을 실행하여 이전 단계에서 제공한 구성으로 Object Storage 커넥터를 시작하십시오.
curl -X POST -H "Content-Type: application/json" http://localhost:8083/connectors --data "@./cos-sink.json"
8단계. 커넥터 모니터링
다음 위치로 이동하여 커넥터를 확인할 수 있습니다.
http://localhost:8083/connectors/cos-sink/status
커넥터의 상태가 실행되지 않는 경우 커넥터를 다시 시작하십시오.
9단계. 커넥터 삭제
다음 명령을 사용하여 커넥터를 삭제할 수 있습니다.
curl -X DELETE
http://localhost:8083/connectors/cos-sink