2장. Kafka 브릿지용 3scale 배포


Kafka 브리지와 함께 3scale을 사용하려면 먼저 이를 배포한 다음 Kafka 브리지 API를 검색하도록 구성합니다.

이 시나리오에서는 Apache Kafka, Kafka, Kafka 브리지 및 3scale API Management 구성 요소에 대한 Streams가 동일한 OpenShift 클러스터에서 실행됩니다.

다음 3scale 구성 요소는 Kafka 브리지를 검색하는 데 도움이 됩니다.

  • 3scale APIcast는 HTTP 클라이언트가 Kafka Bridge API 서비스에 연결할 수 있도록 NGINX 기반 API 게이트웨이를 제공합니다.
  • 3scale toolbox는 Kafka Bridge 서비스의 OpenAPI 사양을 3scale로 가져오는 데 사용됩니다.
참고

3scale이 Kafka 브리지와 동일한 클러스터에 이미 배포된 경우 배포 단계를 건너뛰고 현재 배포를 사용할 수 있습니다.

사전 요구 사항

3scale 배포의 경우:

  • Red Hat 3scale API Management 지원 구성을 확인합니다.
  • 설치에는 system:admin 과 같은 cluster-admin 역할이 있는 사용자가 필요합니다.
  • 다음을 설명하는 JSON 파일에 액세스해야 합니다.

    • Kafka Bridge OpenAPI 사양(openapiv2.json)
    • Kafka 브리지의 헤더 수정 및 라우팅 정책(policies_config.json)

      GitHub 에서 JSON 파일을 찾습니다.

프로세스

  1. Red Hat 3scale 문서에 설명된 대로 3scale API Management를 설정합니다.

    1. 3scale API Management Operator를 사용하여 3scale API Manager 및 APIcast를 설치합니다.

      API Manager를 배포하기 전에 API Manager 사용자 정의 리소스의 wildcardDomain 속성을 OpenShift 클러스터를 호스팅하는 도메인으로 업데이트합니다.

      도메인은 URL에서 3scale 관리 포털(http[s]://<authentication_token>@3scale-admin.<cluster_domain> )에 액세스하는 데 사용됩니다.

    2. API Manager 사용자 정의 리소스의 상태를 확인하여 3scale이 성공적으로 배포되었는지 확인합니다.
  2. 3scale API Manager에 대한 권한 부여를 부여하여 Kafka Bridge 서비스를 검색합니다.

    oc adm policy add-cluster-role-to-user view system:serviceaccount:<my_bridge_namespace>:amp
    Copy to Clipboard Toggle word wrap

    이 명령은 지정된 네임스페이스(<my_bridge_namespace>)의 Kafka Bridge 리소스에 API 관리자(amp) 읽기 액세스(보기)를 부여합니다.

  3. 3scale API Management toolbox를 설정합니다.

    1. Red Hat 3scale 문서에 설명된 대로 3scale toolbox를 설치합니다.
    2. 3scale과 상호 작용할 수 있도록 환경 변수를 설정합니다.

      Kafka 브리지 구성 예

      export REMOTE_NAME=strimzi-kafka-bridge 
      1
      
      export SYSTEM_NAME=strimzi_http_bridge_for_apache_kafka 
      2
      
      export TENANT=strimzi-kafka-bridge-admin 
      3
      
      export PORTAL_ENDPOINT=$TENANT.3scale.net 
      4
      
      export TOKEN=<3scale_authentication_token> 
      5
      Copy to Clipboard Toggle word wrap

      1
      REMOTE_NAME 은 3scale 관리 포털의 원격 주소에 할당된 이름입니다.
      2
      SYSTEM_NAME 은 3scale toolbox를 통해 OpenAPI 사양을 가져와 생성된 3scale 서비스/API의 이름입니다.
      3
      TENANT 는 3scale 관리 포털의 테넌트 이름(https://$TENANT.3scale.net)입니다.
      4
      PORTAL_ENDPOINT 는 3scale 관리 포털을 실행하는 끝점입니다.
      5
      TOKEN 은 3scale toolbox 또는 HTTP 요청을 통한 상호 작용을 위해 3scale 관리 포털에서 제공하는 인증 토큰입니다.
    3. 3scale toolbox의 원격 웹 주소를 구성합니다.

      podman run -v /path/to/openapiv2.json:/tmp/oas/openapiv2.json registry.redhat.io/3scale-amp2/toolbox-rhel8:3scale2.14 3scale import openapi -d <admin_portal_url> /tmp/oas/openapiv2.json
      Copy to Clipboard Toggle word wrap

      3scale toolbox의 컨테이너 이미지를 지정합니다. 3scale의 컨테이너 이미지는 Red Hat Ecosystem Catalog 에서 사용할 수 있습니다.

      < admin_portal_url >을 3scale 관리 포털의 엔드포인트 경로로 바꿉니다(https://$TOKEN@$PORTAL_ENDPOINT/). 이제 toolbox를 실행할 때마다 3scale 관리 포털의 끝점 주소를 지정할 필요가 없습니다.

  4. Cluster Operator 배포에 3scale에서 Kafka Bridge 서비스에 필요한 레이블 및 주석 속성이 있는지 확인합니다.

    #...
    env:
    - name: STRIMZI_CUSTOM_KAFKA_BRIDGE_SERVICE_LABELS
        value: |
        discovery.3scale.net=true
    - name: STRIMZI_CUSTOM_KAFKA_BRIDGE_SERVICE_ANNOTATIONS
        value: |
        discovery.3scale.net/scheme=http
        discovery.3scale.net/port=8080
        discovery.3scale.net/path=/
        discovery.3scale.net/description-path=/openapi
    #...
    Copy to Clipboard Toggle word wrap

    그렇지 않은 경우 OpenShift 콘솔을 통해 속성을 추가하거나 Cluster Operator 및 Kafka 브리지를 재배포합니다.

  5. 3scale 관리 포털에서 Red Hat 3scale 설명서에 설명된 대로 OpenShift에서 Kafka Bridge API 서비스를 가져옵니다.
  6. Kafka Bridge 서비스의 기본 URL을 사용하도록 OpenAPI 사양(JSON 파일)에서 Host 필드를 편집합니다.

    예를 들면 다음과 같습니다.

    "host": "my-bridge-bridge-service.my-project.svc.cluster.local:8080"
    Copy to Clipboard Toggle word wrap

    호스트 URL에 다음이 포함되어 있는지 확인합니다.

    • Kafka 브리지 이름(my-bridge)
    • 프로젝트 이름(my-project)
    • Kafka 브리지용 포트(8080)
  7. 로컬 파일에서 업데이트된 OpenAPI 사양을 3scale toolbox로 가져옵니다.

    podman run -v /path/to/openapiv2.json:/tmp/oas/openapiv2.json registry.redhat.io/3scale-amp2/toolbox-rhel8:3scale2.14 3scale import openapi [opts] -d=<admin_portal_url> -t 3scale-kafka-bridge /tmp/oas/openapiv2.json
    Copy to Clipboard Toggle word wrap

    여기에서 OpenAPI 사양에서 이름을 생성하는 대신 시스템 이름을 3scale-kafka-bridge 로 지정합니다. /path/to/openapiv2.json 을 OpenAPI 사양 파일의 경로로 바꾸고 < admin_portal_url >을 3scale 관리 포털의 엔드포인트 경로로 바꿉니다.

  8. 서비스의 헤더 수정 및 라우팅 정책(JSON 파일)을 가져옵니다.

    1. 정책을 가져올 때 필요한 3scale에서 생성한 서비스의 ID를 찾습니다.

      export SERVICE_ID=$(curl -k -s -X GET "https://$PORTAL_ENDPOINT/admin/api/services.json?access_token=$TOKEN" | jq ".services[] | select(.service.system_name | contains(\"$SYSTEM_NAME\")) | .service.id")
      Copy to Clipboard Toggle word wrap

      여기에서는 요청에 jq 명령줄 JSON 구문 분석 도구를 사용합니다.

    2. 정책을 가져옵니다.

      3scale policies import -f /path/to/policies_config.json -d=<admin_portal_url> 3scale-kafka-bridge
      Copy to Clipboard Toggle word wrap

      /path/to/policies_config.json 을 정책 구성 파일의 경로로 바꾸고 < admin_portal_url >을 3scale 관리 포털의 엔드포인트 경로로 바꿉니다.

  9. 3scale 관리 포털에서 Kafka Bridge 서비스의 끝점 및 정책이 로드되었는지 확인합니다.
  10. 3scale Toolbox에서 애플리케이션 계획 및 애플리케이션을 생성합니다.

    인증을 위한 사용자 키를 얻으려면 애플리케이션이 필요합니다.

  11. (프로덕션 환경 단계) 프로덕션 게이트웨이에서 API를 사용하려면 구성을 승격합니다.

    3scale proxy-config promote $REMOTE_NAME $SERVICE_ID
    Copy to Clipboard Toggle word wrap
  12. API 테스트 툴을 사용하여 호출을 사용하여 APIcast 게이트웨이를 통해 Kafka 브리지에 액세스하여 소비자를 생성하고 애플리케이션에 대해 생성된 사용자 키를 확인할 수 있는지 확인합니다.

    예를 들면 다음과 같습니다.

    https//my-project-my-bridge-bridge-service-3scale-apicast-staging.example.com:443/consumers/my-group?user_key=3dfc188650101010ecd7fdc56098ce95
    Copy to Clipboard Toggle word wrap

    Kafka 브리지에서 페이로드가 반환되면 소비자가 성공적으로 생성되었습니다.

    {
      "instance_id": "consumer1",
      "base uri": "https//my-project-my-bridge-bridge-service-3scale-apicast-staging.example.com:443/consumers/my-group/instances/consumer1"
    }
    Copy to Clipboard Toggle word wrap

    기본 URI는 클라이언트가 후속 요청에서 사용할 주소입니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat