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입니다.

  • Git

2단계. kafka-connect 저장소 복제

필수 파일이 있는 다음 두 개의 저장소를 복제하십시오.

3단계. Kafka Connect 구성 작성

  1. 이 구성은 한 번만 설정해야 합니다. 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 항목을 편집하십시오.

  2. 그런 다음 다음 명령을 실행하십시오.

    다음 명령을 실행하여 시크릿을 작성하십시오.

    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-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 신임 정보 가져오기

  1. 대시보드에서 Object Storage 서비스를 찾으십시오.
  2. 서비스 타일을 클릭하십시오.
  3. 서비스 인증 정보를 클릭하십시오.
  4. 새 인증 정보를 클릭하십시오.
  5. 이름 및 역할과 같은 새 인증 정보에 대한 세부사항을 완료한 후 추가를 클릭하십시오. 새 인증 정보가 인증 정보 목록에 표시됩니다.
  6. 인증 정보 보기를 통해 이 인증 정보를 클릭하여 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